Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

DEW RECRUITMENT PROCESSING SYSTEM

An Industrial Internship Report

submitted by

SANYA TANEJA

(16BCE2059)

in partial fulfillment for the award of the degree of

BACHELOR OF TECHNOLOGY

in

COMPUTER SCIENCE AND ENGINEERING

SCHOOL OF COMPUTER SCIENCE AND ENGINEERING

JUNE,2018
DECLARATION BY THE CANDIDATE

I hereby declare that the Industrial Internship report entitled “DEW


RECRUITMENT PROCESSING SYSTEM” submitted by me to Vellore
Institute of Technology, Vellore in partial fulfillment of the requirement for
the award of the degree of Bachelor of Technology in Computer Science
and Engineering is a record of bonafide industrial training undertaken by
me under the supervision of Mr. Vivek Pandey, Dew Solutions Private
Limited. I further declare that the work reported in this report has not been
submitted and will not be submitted, either in part or in full, for the award of
any other degree or diploma in this institute or any other institute or
university.

Signature of the student

Name: Sanya Taneja


Reg. Number: 16BCE2059

ii
School of Computer Science and Engineering

BONAFIDE CERTIFICATE

This is to certify that the Industrial Internship report entitled “DEW


RECRUITMENT PROCESSING SYSTEM” submitted by SANYA
TANEJA (16BCE2059) to Vellore Institute of Technology, Vellore in
partial fulfillment of the requirement for the award of the degree of Bachelor
of Technology in Computer Science and Engineering is a record of
bonafide Industrial Internship undertaken by him/her under my supervision.
The training fulfills the requirements as per the regulations of this Institute
and in my opinion meets the necessary standards for submission. The
contents of this report have not been submitted and will not be submitted
either in part or in full, for the award of any other degree or diploma in this
institute or any other institute or university.

Signature of Supervisor

MR. VIVEK PANDEY


External Project Guide
Dew Solutions Pvt. Ltd.
Date: 04-07-18

Internal Examiner (s) External Examiner (s)


iii
iv
ACKNOWLEDGEMENT

I would like to use this opportunity to express my deepest gratitude and special thanks to
Mr. Vivek Pandey (External Project Guide), who in spite of being extraordinarily busy
with his duties, took time out to hear, guide and ensure my training meets my expectations.
His pioneered experience of “16” years in Dew Solutions Pvt. Ltd. was motivation beyond
words for me. His permission for me to train in arguably one of the best startups is an
opportunity I am ever so grateful for.

My deepest thanks to Ms. Chestha Khilauria (HR Manager) who day in and out ensured
my mere knowledge in field of Web Development only increased with the best standards
possible. I choose this moment to acknowledge her contribution gratefully.

I perceive this opportunity as a big milestone in my educational development. I will strive


to use gained skills and knowledge in the best possible way, and I will continue to work
on their improvement, in order to attain desired career objectives. Hope to not let my
mentors down!

Place : Vellore

Date : 17.10.2018

Sanya Taneja (16BCE2059)

v
TABLE OF CONTENTS

CHAPTER NO. TITLE PAGE NO.

TRAINING CERTIFICATE iv

ACKNOWLEDGEMENT v

LIST OF FIGURES vii

CHAPTERS

1 SYNOPSIS 1

2 ABOUT THE ORGANIZATION 2

2.1 General 2

2.2 Clients and Projects 3


SKILL SET INCULCATED BY THE CURRICULUM
3 4
KNOWLEDGE ACQUIRED FROM IN-PLANT TRAINING
4 5
APPLICATION OF GAINED KNOWLEDGE IN/DURING THE
5 SESSION 8

5.1 Home Page 8

5.2 Sign Up Page 9

5.3 Welcome Mail 11

5.4 Login Page 12

5.5 Forgot Password 12

5.6 Update Profile Page 14

5.7 View Profile 17


COMPARISON OF COMPETENCY LEVELS BEFORE AND
6 AFTER THE TRAINING AND SELF EVALUATION 21

7 Appendices 22

vi
List of Figures

1) Figure 1: Home Page-1


2) Figure 2: Home Page-2
3) Figure 3: Sign Up Page-1
4) Figure 4: Sign Up Page-2
5) Figure 5: New user added to the database
6) Figure 6: Welcome Mail Sample
7) Figure 7: Login Page View
8) Figure 8: Forgot Password Page
9) Figure 9: Forgot Password Email for retrieval of Password
10) Figure 10: Educational Details Update Form-1
11) Figure 11: Educational Details Update Form-2
12) Figure 12: Educational Details Update Form-3
13) Figure 13: Footer of Educational Details Page
14) Figure 14: Job Details Update Form-1
15) Figure 15: Job Details Update Form-2
16) Figure 16: View Educational Profile-1
17) Figure 17: View Educational Profile-2
18) Figure 18: View Educational Profile-3
19) Figure 19: View Job Profile-1
20) Figure 20: Upload Personal Documents-1
21) Figure 21: Upload Personal Documents-2

vii
CHAPTERS

1. SYNOPSIS

This report is a short description of my 30-day internship carried in partial fulfilment


of the requirement for the award of the degree of Bachelor of Technology in Computer
Science and Engineering. The internship was carried out within the organization
named “Dew Solutions Private Limited.” I was assigned a project on Web development
which dealt with creating an application for the organization to store the employee’s data.

My work consisted of building an e-commerce website from scratch, adding features to


the website, and cooperating with other developers in successfully adding the required
features to the website, keeping in mind the issues faced in big industries like security,
authentication etc. In the period of Internship, I was able to enhance my knowledge on the
concepts used in Web Development such as HTML, CSS, Bootstrap, PHP, JavaScript,
jQuery, JAVA and also understand various client requirements and problems faced
through various assignments, live projects and the continuous guidance of my trainer at
the organization. Also, I was able to enhance my communication skills and face the
workload in a real-time scenario working place. I also understood how a team works and
realized the importance of dealing with sensitive data. I was able to implement in
knowledge VIT as I have Internet and Web Programming this semester. My internship
helped me grasp the concepts easily.

The following chapter contains a description of the organization. The details about
training is mentioned in the chapters following that.

1
2. ABOUT THE ORGANIZATION

2.1 General

Dew Solutions was founded in 2010 by graduates from IITs and RECs; all with
expertise in distributed software development and years of experience servicing the U.S.
market.

Dew Solutions specializes in a suite of Application Development that is mission critical


for business and enterprise, for clients across the world. They have a long-standing
partnership with many big enterprises to which they have provided offshore outsourcing
services that minimize time to market and help manage resources, cost, and technology
risk.

Their prime objectives are 'satisfaction of our clients' and 'excellent and prompt services'
which is not only given in words but their deeds prove it. They complement the client
with some of the brightest technical minds in their fields, possessing expertise in
enterprise class architectures, tools and technologies. They invest a great deal in
developing and maintaining a culture that fosters openness and flexibility to encourage
employees to think creatively.

They work as an end to end technology partner, i.e. on close quarters with the client that
enables better understanding of the project and the need of the clients. In addition, they
help develop top quality applications and develop effective strategies to cope with
technology challenges during the project development life cycle.

Their experience and expertise have led it to become the trusted specialist of outsourced
software development for clients in the U.S, U.K and Singapore. Their commitment to
100% customer satisfaction has resulted in rapid growth and an impressive list of
satisfied ISV and enterprise clients. They have provided services to all kinds of
professional, educational, technical, and industrial organizations in the short span since
they started the company.

2
2.2 Clients and Projects

It offers the following client services:

• Web Development
• Mobile Development
• Cloud Support
• Quality Assurance
• Design Consultancy
• Product Consultancy
• Big Data
• Data Science
• Internet of Things
• Devops

Some major projects going on in the company:

• Car Bookings- MakeMyTrip: MakeMyTrip car bookings enables customers to


rent a cab or book self-drive cars online with options like airport/railway
transfers, point to point transfers, intercity transfers across 30,000 locations
worldwide.

• TataCLiQ: Tata CLiQ's online shopping App offers certified authentic products
with great deals and is available for both Android and iOS devices. It is India's
only Omni-channel marketplace online shopping App. The App lists 400+ Indian
and International brands with 1000's of products across Electronics, Fashion and
Footwear.

• Max Health: The fastest and easiest way to book an appointment with your Max
Hospital doctor, view your lab reports or get health updates - 'Max My Health'
from Max Healthcare makes managing your health needs simple and convenient!

3
3. SKILL SET INCULCATED BY THE CURRICULUM

I did my internship after completing 2 years in college. In these two years I had done
many projects and as semesters passed on, I gained new skillsets. The following were
my skillset:

• Basic C programming
• Basic C++ programming
• Database Management- SQL
• Data Structures and Algorithms
• Microprocessor and Interfacing- ALP programming
• Internet of Things- Arduino Programming
• Operating System
• Basic HTML, CSS

The University also made available Technical Clubs and Chapters of which I am a part
of Association of Computing Machinery, VIT. It has also helped me enhance my
practical coding and designing abilities in building websites for actual use.

4
4. KNOWLEDGE ACQUIRED FROM IN-PLANT TRAINING

During the course of the Internship I was introduced to the concepts of Web
Development. This is the first time when we I worked on an end to end system and thus
learnt about its different components involved.

Web Development involves creating websites for the Internet. It can be a basic static
website or a complex web-based internet application. I worked on my website from
scratch, from creating the layouts using HTML, CSS and Bootstrap to working on the
Java code in Eclipse using Maven Framework. Java is a general-purpose computer-
programming language that is concurrent, class-based, object-oriented, and specifically
designed to have as few implementation dependencies as possible.

Eclipse is an integrated development environment used in computer programming, and


is the most widely used Java IDE. It contains a base workspace and an extensible plug-in
system for customizing the environment.

The Eclipse IDE provides excellent support for the Maven. This tooling manages the
project dependencies and updates the class path of the project dependencies in the
Eclipse IDE. Maven has dependency management and can work even with transitive
dependencies. It has powerful builds because of its default plugins. It allows debugging
and collaboration features as well.

I further learnt how to work with JavaScript to program the behavior of the web pages
and its library jQuery to make JavaScript programming easier. JavaScript, often
abbreviated as JS, is a high-level, interpreted programming language. It is a language
which is also characterized as dynamic, weakly typed, prototype-based and multi-
paradigm. Alongside HTML and CSS, JavaScript is one of the three core technologies of
the World Wide Web. Query is a cross-platform JavaScript library designed to simplify
the client-side scripting of HTML. It is free, open-source software using the permissive

5
MIT License. Web analysis indicates that it is the most widely deployed JavaScript
library by a large margin.

For the backend development for storage of data, I used MySQL Workbench. MySQL
Workbench is a visual database design tool that integrates SQL development,
administration, database design, creation and maintenance into a single integrated
development environment for the MySQL database system.

Additionally, I learnt how to work on technical functionalities such as in the Login page,
if the user selects ‘Forgot Password’, how will the system retrieve the password. This
was done using the Encrypt/ Decrypt algorithm. Further, file handling was used to
collect the images/ files uploaded by the employees. Also, the feature of email handling
was taught to me, i.e. how to send the welcome mail or forgot password mail to
candidates.

My project guide encouraged us to work like in an industrial setup wherein we should


focus on having separate modules for every function so that if any person leaves, the
other can continue easily.

The project was deployed on local host (8080 port) using the Eclipse Tomcat Server.
Tomcat is a web server and a Servlet/Java Server Pages container. It is designed to
execute Java servlets and render web pages that use Java Server page coding. It is often
used as an application server for strictly web-based applications but does not include the
entire suite of capabilities that a Java EE application server would supply. Accessible as
either a binary or a source code version, Tomcat's been used to power a wide range of
applications and websites across the Internet.

Overall it also exposed me to a professional culture. It being run by dedicated and


experienced people I was guided well and was given help whenever and wherever
required. I was also introduced to other departments like sales, law, accounts, product

6
design who offered me valuable insights about their work and help me understand the
work flow that they follow and how it differs from the major technological companies.

Collaborating with fellow developers is something that I had never done before. This
internship mandated collaboration with other designers and website builders. The project
was put up on GitHub repository where we all pushed our work and subsequently pulled
the required changes. It was then easy to work, allowing us to work on different modules
without having to share the code individually.

7
5. APPLICATION OF GAINED KNOWLEDGE IN/DURING THE
SESSION

Highlights of the website:


1. Recruitment Data Processing Portal
2. Employees can enter data about them which can be accessed by the authorities
for any information retrieval.
3. User-friendly interface
4. Add important documents like Passport, Aadhar Card which can be easily
downloaded.
5. Forgot Password option to receive earlier password.
6. Automatic mail sender in case of new employee data entered.

5.1 Home Page

➢ I used the template of Dew Solutions Private Limited website as the home
page. I understood how dynamic moving content is created.

Figure 1: Home Page-1

8
Figure 1: Home Page-2

5.2 Sign Up Page

➢ Created structure of the page using HTML and CSS.


➢ Converted the form data to JavaScript objects and further to JSON. When
exchanging data between a browser and a server, the data can only be text.
JSON is text, and we can convert any JavaScript object into JSON, and send
JSON to the server.
➢ Created a database table entry ‘users’ for this data entered by users. Then
matched the names of database and HTML for access to the data. Added
appropriate queries to add data in to the table and extract it subsequently to
be displayed in ‘View Profile Page’.

9
Figure 3: Sign Up Page-1

Figure 4: Sign Up Page-2

10
Figure 5: New user added to the database

5.3 Welcome Mail

➢ Used the feature of email handling to send emails to entered user id by


my own email id, i.e. whenever a user creates a new account, welcome
mail is sent to that id.

Figure 6: Welcome Mail Sample

11
5.4 Login Page

➢ The user needs to add the validated email id along with password. The
system checks this information with the data in the database. If it
matches, the user is allowed to log in and update/view profile. Otherwise
the user has an option to recover the password using Forgot Password
option.

Figure 7: Login Page View

5.5 Forgot Password

➢ If the user forgets the password, he/she can enter the required email id
and a mail will be sent with the required password. The user can check
and further log in to the account. This is done using popular and widely
adopted symmetric encryption algorithm -Advanced Encryption Standard
(AES). It is Symmetric key symmetric block cipher. It has 128-bit data
and 128/192/256-bit keys.

12
Figure 8: Forgot Password Page

Figure 9: Forgot Password Email for retrieval of password

13
5.6 Update Profile Page

➢ Created page using HTML, CSS. Added JavaScript for converting to


JSON. Saved the data in the backend and finally added code for retrieval
of the data to be displayed on ‘View Profile Page’.

Figure 10: Educational Details Update Form-1

Figure 11: Educational Details Update Form-2

14
Figure 12: Educational Details Update Form-3

Figure 13: Footer of the Educational Details Page

15
Figure 14: Job Details Update Form-1

Figure 15: Job Details Update Form-2

16
5.7 View Profile

➢ Retrieved the data entered by user from the database using basic MySQL
queries and displayed it on the page, adding appropriate code in HTML
file.
➢ Appropriate buttons for updating Educational and Job Profile added,
which will take back to the original form page with pre-entered data,
which can be changed and saved. It will be reflected in View Profile
instantly.
➢ Also, created the option to upload resume, profile picture, passport and
Aadhar by browsing from gallery.

Figure 16: View Educational Profile-1

17
Figure 17: View Educational Profile-2

Figure 18: View Educational Profile-3

18
Figure 19: View Job Profile-1

Figure 20: Upload Personal Documents-1

19
Figure 21: Upload Personal Documents-2

20
6. COMPARISON OF COMPETENCY LEVELS BEFORE AND
AFTER THE TRAINING AND SELF EVALUATION

• Enhanced my understanding of integration of academic knowledge and practice.


• Learnt how to create a website.
• I am well versed with the concepts used in Web Development.
• I have learnt a lot about web development but realized its beginning of a very big
journey and now I am motivated to go for higher studies.
• I was able to improve my analytic skills.
• I got an experience of working in a professional environment.
• I got to know how the corporate world works and what are the day-to-day
challenges faced.
• I understood my tasks and responsibilities.
• I understood the type of problems that are presented by clients regarding the end
to end development.
• I learnt how to efficiently deal with client queries without wasting more time and
energy into it.
• I learnt the standards to be followed while dealing with sensitive data.

21
APPENDICES

Code:

Functions for Job page created (UserDao.java)

package com.dew.training.dao;

public interface UserDao {

public User getUserByEmail(String email);

public void updatejob(JobInfo jobInfo) throws Exception;

public JobInfo addJobProfile(JobInfo jobInfo);

public JobInfo getJobInfo(int userId);

public void getPassword(String Password);

public User getUserByUserId(int userId);

public void updateFileExtension(String extension, FileType fileType, int userId);


}

Implementation of Job Page created (UserDaoImpl.java)

private class JobInfoRowMapper implements RowMapper<JobInfo>{


public JobInfo mapRow(ResultSet rs,int rowNum)throws SQLException{
JobInfo jobInfo=new JobInfo();

jobInfo.setUser_id(rs.getInt("user_id"));
jobInfo.setJob_profile_id(rs.getInt("job_profile_id"));
jobInfo.setBio(rs.getString("bio"));
jobInfo.setIndustry(rs.getString("industry"));
jobInfo.setFunctionalArea(rs.getString("functional_area"));
jobInfo.setRole(rs.getString("role"));
jobInfo.setWorkLocation(rs.getString("work_location"));
jobInfo.setJobType(JobType.get(rs.getInt("job_type")));

jobInfo.setEmploymentType(Preference.get(rs.getInt("employ_type")));

22
jobInfo.setSkills(rs.getString("skills"));
jobInfo.setMaritalStatus(rs.getString("marital"));

return jobInfo;
}
}

@Override
public JobInfo addJobProfile(final JobInfo jobInfo) {
final String sql = "INSERT INTO job_profile
(bio,industry,functional_area,role,work_location,job_type,employ_type,skills,marital,us
er_id)"
+ " VALUES(?,?,?,?,?,?,?,?,?,?)";
KeyHolder keyHolder = new GeneratedKeyHolder();
getJdbcTemplate().update(new PreparedStatementCreator() {

@Override
public PreparedStatement
createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement statement =
connection.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
statement.setString(1,
jobInfo.getBio()); // values from form are converted to varchar for database
usage
statement.setString(2,
jobInfo.getIndustry()); // insert into db
statement.setString(3,
jobInfo.getFunctionalArea());
statement.setString(4,
jobInfo.getRole());
statement.setString(5,
jobInfo.getWorkLocation());
statement.setInt(6,
jobInfo.getJobType().getValue());
statement.setInt(7,
jobInfo.getEmploymentType().getValue());
statement.setString(8,
jobInfo.getSkills());
statement.setString(9,
jobInfo.getMaritalStatus());

statement.setInt(10,jobInfo.getUser_id());
return statement;
}
},keyHolder);

23
jobInfo.setJob_profile_id(keyHolder.getKey().intValue());
return jobInfo;
}

@Override
public void updatejob(JobInfo jobInfo) throws Exception {
// TODO Auto-generated method stub
String sql = "UPDATE job_profile set bio= ?,industry=
?,functional_area= ?,role= ?,work_location= ?,job_type= ?,employ_type= ?,"
+ "skills= ?,marital= ? WHERE job_profile_id = ?";

getJdbcTemplate().update(sql,jobInfo.getBio(),jobInfo.getIndustry(),jobInfo.getF
unctionalArea(),jobInfo.getRole(),
jobInfo.getWorkLocation(),
jobInfo.getJobType().getValue(), jobInfo.getEmploymentType().getValue(),
jobInfo.getSkills(),jobInfo.getMaritalStatus(),
jobInfo.getJob_profile_id());
}

UserService.java

package com.dew.training.service;

public interface UserService {

public User getUserByEmail(String email);

public JobInfo updatejobProfile(JobInfo jobInfo) throws Exception;

public User getUserByUserId(int userId);

public void uploadFile(MultipartFile file, FileType fileType, int userId);

public JobInfo getJobInfo(int userId);

public void sendForgotPassword(String email);


}

UserServiceImpl.java

@Override
public JobInfo updatejobProfile(JobInfo jobInfo) throws Exception {
// TODO Auto-generated method stub

24
JobInfo info=userDAO.getJobInfo(jobInfo.getUser_id());
if(info.getJob_profile_id()>0) {
jobInfo.setJob_profile_id(info.getJob_profile_id());
userDAO.updatejob(jobInfo);
}

else
jobInfo =userDAO.addJobProfile(jobInfo);
return jobInfo;
}
@Override
public JobInfo getJobInfo(int userId) {
// TODO Auto-generated method stub
return userDAO.getJobInfo(userId);
}

Front-end of Job Profile View

<html>
<body>
<%@ include file ="includes/header.jsp" %>

<div class="container" style="padding-top: 150px;">


<div class="row">
<div class=" col-md-12 mx-auto">
<h2>Update your Job Profile</h2><br>
<div class="myform form">
<form id="updateJob">

<div class="form-group">
<label for="bio"> Describe
your professional background </label>
<textarea name="bio"
rows="5" cols="5" class="form-control" id="bio" placeholder="${jobInfo.bio
}"></textarea>
</div>
<div class="form-group">
<label
for="industry">Industry</label>
<select name="industry"
id="industry" class="form-control" aria-describedby="emailHelp">
<option>Select</option>
<option
value="Accounting/Finance" selected="${jobInfo.industry eq 'Accounting/Finance'
}">Accounting/Finance</option>

25
<option
value="Advertising/PR/MR/Events" selected="${jobInfo.industry eq
'Advertising/PR/MR/Events' }">Advertising/PR/MR/Events</option>
</select>
</div>
<%@ include file ="includes/footer.jsp" %>
<%@include file="includes/include-js.jsp"%>
</body>
<script type="text/javascript">
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
function updateJobInfo(){
var formData=$("#updateJob").serializeObject();
console.log(formData);
var url=$("#baseUrl").val()+"/updateJobInfo";
$.ajax({
url : url,
type : 'POST',
data:JSON.stringify(formData),
dataType : "json",
contentType : "application/json",
success : function(data) {
console.log(data)
if(data.status==='success')
window.location.href=$("#baseUrl").val()+"/user/myProfile"
else
alert("Error while adding/updating details")
}
});
}
</script>
</html>

26

You might also like