Professional Documents
Culture Documents
Internship Report on
V.SHARAVANI [1VE15CS118]
Under the Guidance
Of
CERTIFICATE
This is to Certify that the Internship work prescribed by the Visvesvaraya
Technological University, Belagavi entitled “Employee leave management
system” was carried out at Evolet Technologies (NASSCOM), Bengaluru by
V.SHARAVANI [1VE15CS118] is a bonafide student of VII Semester,
Computer Science & Engineering, Sri Venkateshwara College of
Engineering.
This is in partial fulfilment for the award of Bachelor of Engineering in the
Visvesvaraya Technological University, Belagavi during the academic year
2019-2020. It is certified that all corrections/suggestions indicated for
internship work internal assessment have been incorporated in the report. The
internship report has been approved as it satisfies the academic requirements in
the respect of internship work prescribed for the said degree.
The satisfaction that accompanies that the successful completion of any task would be
incomplete without the mention of the people whose ceaseless cooperation made it possible,
whose constant guidance and encouragement crown all efforts with success.
I express my sincere gratitude to Dr. SURESHA , Principal, SVCE, Bengaluru for providing
the required facility.
I am extremely thankful to Dr. S C LINGA REDDY, HOD of CSE, SVCE, Bengaluru for
providing support and encouragement.
I would also like to express my deep sense of gratitude to Mr.Prakar, Evolet Technologies,
Bengaluru, for her valuable suggestions and encouragement in bringing out our project in
right direction.
V.SHARAVANI [1VE15CS118]
ABSTRACT
Introduction
Evolet Technologies is a global IT solutions company in Bangalore and Coimbatore. These
company provides a full cycle customized end to end web solution that incorporates software
development, web designing, web development, SEO (Search Engine Optimization), digital
marketing and diverse software services to our customers.
These company provide end to end services in the areas of software development, web
designing, web development, SEO – Search Engine Optimization and other Software training
solutions and services. With our industry experience and technical expertise the company
offer quality driven delivery model that is progressive in nature. These company take full
advantage of the web and make it work for us.
Team Tests
These are specially designed to provide assistance in the process of evaluating individual
performance of each team member working at Evolet Technologies. Various talents and skills
of each team member are analysed through adaptive online talent tests (yTests). The test
scores provide a blueprint of a team member’s thinking ability, presence of mind, time
management skills as well the ability to perform optimally under pressures. The psychometric
test helps the members in self-retrospection and the analysis can be used to shape better
working.
Services
IT, Software Services, Mobile App development,Python, Web designing, Web development,
Digital Marketing, Product development and services.
CONTENTS
Chapter no. Page no.
1. Introduction 1
1.1 : Introduction 1
1.2 : Objectives 2
2. Python 3
3. Software and Hardware Requirements 8
3.3 : Software Requirements 8
3.4 Hardware Requirements 8
4. Design 9
4.1 :System Design 9
4.2 : Flow Chart 11
4.3: UML 14
4.2 : Notation and meta models 14
4.3 : PERT Chart 15
4.4 : GANTT Chart 16
5. Implementation 18
5.1 : Technical Design 18
5.2 : Test specification and planning 18
5.3 : Programming and testing 18
5.4 : User training 18
5.5 : Acceptance test 18
5.6 : Installation phase 18
5.7 : System installation 19
5.8 : Review Phase 19
5.9 : Development recap 19
5.10 : Post implementation review 19
5.11 : Source Code 19
6. Testing 27
7. Snapshot 30
8. Conclusion 40
9. Future Scope of the project 41
References 42
Employee Leave Management System
CHAPTER 1
INTRODUCTION
The "Employee Leave Management System" has been developed to override the problems
prevailing in the practicing manual system. This software is supported to eliminate and in some
cases reduce the hardships faced by this existing system. Moreover this system is designed for the
particular need of the company to carry out operations in a smooth and effective manner.
The application is reduced as much as possible to avoid errors while entering the data. It also
provides error message while entering invalid data. No formal knowledge is needed for the user to
use this system. Thus by this all it proves it is user-friendly. Employee Leave Management System ,
as described above, can lead to error free, secure, reliable and fast management system. It can assist
the user to concentrate on their other activities rather to concentrate on the record keeping. Thus it
will help organization in better utilization of resources.
Every organization, whether big or small, has challenges to overcome and managing the information
of Leave, Employee, Payroll, Leave Type, Salary. Every Employee Leave Management System has
different Employee needs, therefore we design exclusive employee management systems that are
adapted to your managerial requirements. This is designed to assist in strategic planning, and will
help you ensure that your organization is equipped with the right level of information and details for
your future goals. Also, for those busy executive who are always on the go, our systems come with
remote access features, which will allow you to manage your workforce anytime, at all times. These
systems will ultimately allow you to better manage resources.
CHAPTER-2
PYTHON
2.1 Introduction to python
2.2 History
Python was conceived in the late 1980s, and its implementation was started in December 1989 by
Guido van Rossum at CWI in the Netherlands as a successor to the ABC language (itself inspired by
SETL) capable of exception handling and interfacing with the Amoeba operating system. Van
Rossum is Python's principal author, and his continuing central role in deciding the direction of
Python is reflected in the title given to him by the Python community, benevolent dictator for life
(BDFL).
2.3 Datatype and Variable
Data types determines whether an object can do something or whether it just would not make sense.
Other programming languages often determine whether an operation makes sense for an object by
making sure the object can never be stored somewhere where the operation will be performed on the
object. Python does not do that instead it stores the type of an object with the object, and checks
when the operation is performed whether that operation makes sense for that object. python has
many native data types. Here are the important ones:
2.3.2 Variables:
Variables are nothing but reversed memory location to store values. This means that when you
create a variable you reverse some space in memory. By signing different data types to variables,
you can store integers, decimals or characters in these variables .variable names can be arbitrarily
long. They can contain both letters and numbers, but they cannot start with a number. It is legal to
use uppercase letters, but it is a good idea to begin variable with a lower case letters. The underscore
can appear in the name. It is often used in names with multiple words such as my _name so on.
Examples:
2.3.3 String:
A String is a sequence of characters. you can access the characters one at a time with the bracket
operator
>>> fruit='banana'
>>>letter=fruit[1]
>>>print(letter)
The second statement extracts the character at index position 1 from the fruit variable and assigns it
to the letter variable.
The letter in the bracket is called an index. The index indicates which character in the sequence you
want.
String slices: A segment of a string is called a slice. Selecting a slice is similar to selecting a character.
>>>s='Monty Python'
>>>print(s[0:5])
Monty
2.4 Tuples:
A tuple is a sequence of immutable python objects. Tuples are sequences, just like lists. The
differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples use
parenthesis, whereas lists use square brackets .Creating a tuple is as simple as putting different
comma
– separated values. Optionally you can put these comma- separated values between parenthesis also.
Tup1=(‘physics’,’chemistry’,1997,2000);
Tup2=(1,2,3,4,5)
To access values in tuples, use the square brackets for slicing along with the index or indices to
obtain value variable at that index.
Tup1=(‘physics’,’chemistry’,1997,2000);
Tup2=(1,2,3,4,5)
Print”tup1[0]”,tup1[0]
Print”tup2[1.5]”,tup2[1.5]
2.5 List:
The list is the most versatile datatype available in python which can be written as a list of comma-
separated values between square brackets. Important things about a list is that items in a list need not
be of the same type.
To access values in lists, use the square brackets for slicing along with the index or indices to obtain
value available at the index.
2.6 File handling in python:
Python to support file handling and allows users to handle files to read and write files, along with
many other file handling options, to operate on files. The concept of file handling has stretched over
various other languages, but the implementation is either complicated or lengthy, but alike other
concepts of python. Python treats file differently as text or binary and this is important. Each line of
code includes a sequence of characters and they form text file. Each line of a file is terminated with
a special character called the EOL or end of line character like comma{,} or new line character. It
ends the current line and tells the interpreter a new one has begun. We use open function in python
to open a file in a read or write mode. As explained above, open() will return a file object. To return
a file object, we use open() function along with two arguments that accepts file name and the mode,
whether to read or write. So the syntax being :open(filename,model). There are three kinds of mode.
2.7 Advantages
1. Presence of Third Party Modules: The Python Package Index (PyPI) contains numerous third-
party modules that make Python capable of interacting with most of the other languages and
platforms.
2. Extensive Support Libraries: Python provides a large standard library which includes areas like
internet protocols, string operations, web services tools and operating system interfaces.
3. Open Source and Community Development: Python language is developed under an OSI-
approved open source license, which makes it free to use and distribute, including for
commercial purpose
2.8 Application
1. GUI-Based Desktop Applications: Python has simple syntax, modular architecture, rich text
processing tools and the ability to work on multiple operating systems which make it a
desirable choice for .
2. Web Frameworks and Web Applications: Python has been used to create a variety of web-
frameworks including CherryPy, Django, TurboGears, Bottle, Flask etc. ...
CHAPTER -3
REQUIREMENTS
RAM 128 MB
Hard disk 20 GB
DESIGN
In this phase, a logical system is built which fulfils the given requirements. Design phase of
software development deals with transforming the clients’s requirements into a logically working
system. Normally, design is performed in the following in the following two steps:
The general tasks involved in the design process are the following:
Relational Database Management System (RDBMS) : This is an RDBMS based project which is
currently using MySQL for all the transaction statements. MySQL is an opensource RDBMS
System.
RDBMSs have become a predominant choice for the storage of information in new databases used
for financial records, manufacturing and logistical information, personnel data, and much more since
the 1980s. Relational databases have often replaced legacy hierarchical databases and network
databases because they are easier to understand and use. However, relational databases have been
challenged by object databases, which were introduced in an attempt to address the object-relational
impedance mismatch in relational database, and XML databases.
4.2 Flow Diagrams
Project Planning:
1) Within the organization: How the project is to be implemented? What are various
constraints (time, cost, staff)? What is market strategy?
2) With respect to the customer: Weekly or timely meetings with the customer with
presentation on status reports. Customers feedback is also taken and further modification and
developments are done. Project milestones and deliverables are also presented to the
customer.
For a successful software project, the following steps can be followed:
Select a project
o Identifying project’s aims and objectives
o Understanding requirements and specification
o Methods of analysis, design and implementation
o Testing techniques
o Documentation
Budget allocation
o Exceeding limits within control
Project Estimates
o Cost
o Time
o Size of code
o Duration
Resource Allocation
o Hardware
o Software
o Previous relevant project information
o Digital Library
Risk Management
o Risk avoidance
o Risk detection
Project Scheduling:
An elementary Gantt chart or Timeline chart for the development plan is given below. The plan
explains the tasks versus the time (in weeks) they will take to complete.
Requirement Gathering
Analysis
Design
Coding
Testing
Implement
W1 W2 W3 W4 W1 W2 W3 W4 W1 W2 W3 W4
The notation is the graphical stuff; it is the syntax of the modeling language. For instance, class
diagram notation defines how items are concepts such as class, association, and multiplicity is
represented. These are:
Class Diagram: The class diagram technique has become truly central within object-oriented
methods. Virtually every method has included some variation on this technique. Class diagram is
also subject to the greatest range of modeling concept. Although the basic elements are needed by
everyone, advanced concepts are used less often. A class diagram describes the types of objects in
the system and the various kinds of static relationship that exist among them. There are two
principal kinds of static relationship:
Association
Subtype
Class diagram also show the attributes and operations of a class and the constraints that apply to the
way objects are connected.
Association: Association represent between instances of class. From the conceptual perspective,
association represents conceptual relations between classes. Each association has two roles. Each
role is a direction on the association. A role also has multiplicity, which is a indication of how many
object may participate in the given relationship.
Generalization: A typical example of generalization evolves the personal and corporate customer
of a business. They have differences but also many similarity. The similarities can be placed in
generalization with personal customer and corporate customer sub type.
Aggregation: aggregation is the part of relationship. It is like saying a car has engine and wheels
as its parts. This sounds good, but difficult thing is considering, what is the difference is aggregation
and association.
Interaction: interaction diagrams are models that describes how groups of objects collaboration in
some behavior.
Typically, an interaction diagram captures the behavior a single use cases. The diagram
shows a number of example objects and the messages that are passed between these objects in use
cases. These are following approaches with simple use case that exhibits the following behavior.
Objects can send a message to another. Each message is checks with given stock item. There
are two diagrams: Sequence and Collaboration diagram.
Package Diagram: One of the oldest questions in software methods is: how do you break down
a large system into smaller systems? It becomes difficult to understand and the changes we make to
them3.3
PERT chart is organized for events, activities or tasks. It is a scheduling device that shows
graphically the order of the tasks to be performed. It enables the calculation of the critical path. The
time and cost associated along a path is calculated and the path requires the greatest amount of
elapsed time in critical path.
Implementation
Write User Manual
4.6 GANTT CHART
It is also known as Bar chart is used exclusively for scheduling purpose. It is a project controlling
technique. It is used for scheduling. Budgeting and resourcing planning. A Gantt is a bar chart with
each bar representing activity. The bars are drawn against a time line. The length of time planned
for the activity. The Gantt chart in the figure shows the Gray parts is slack time that is the latest by
which a task has been finished.
1-19 MAY 10 20-3 JUNE 10 6-25 JUNE 10 26-15 JULY 10 JULY 16 AUG 31
Specification
CODE DATABASE
PART
IMPLEMENTATION
The use case model for any system consists of “use cases”. Use cases represent different
ways in which the system can be used by the user. A simple way to find all the use case of a system
is to ask the questions “What the user can do using the system?” The use cases partition the system
behavior into transactions such that each transaction performs some useful action from the users’
point of view.
The purpose of the use case to define a piece of coherent behavior without reveling the
internal structure of the system. An use case typically represents a sequence of interaction between
the user and the system. These interactions consists of one main line sequence is represent the
normal interaction between the user and the system. The use case model is an important analysis and
design artifact (task).Use cases can be represented by drawing a use case diagram and writing an
accompany text elaborating the drawing.
In the use case diagram each use case is represented by an ellipse with the name of use case
written inside the ellipse. All the ellipses of the system are enclosed with in a rectangle which
represents the system boundary. The name of the system being moduled appears inside the
rectangle. The different users of the system are represented by using stick person icon. The stick
person icon is normally referred to as an Actor. The line connecting the actor and the use cases is
called the communication relationship. When a stick person icon represents an external system it is
annotated by the stereo type<<external system>>.
CHAPTER 5
IMPLEMENTATION
This phase of the systems development life cycle refines hardware and software specifications,
establishes programming plans, trains users and implements extensive testing procedures, to
evaluate design and operating specifications and/or provide the basis for further modification.
This activity builds upon specifications produced during new system design, adding detailed
technical specifications and documentation.
This activity prepares detailed test specifications for individual modules and programs, job streams,
subsystems, and for the system as a whole.
This activity encompasses actual development, writing, and testing of program units or modules.
This activity encompasses writing user procedure manuals, preparation of user training materials,
conducting training programs, and testing procedures.
A final procedural review to demonstrate a system and secure user approval before a system becomes
operational.
In this phase the new Computerized system is installed, the conversion to new procedures is fully
implemented, and the potential of the new system is explored.
5.7 System Installation
The process of starting the actual use of a system and training user personnel in its operation.
This phase evaluates the successes and failures during a systems development project, and to
measure the results of a new Computerized Transystem in terms of benefits and savings projected at
the start of the project.
A review of a project immediately after completion to find successes and potential problems in
future work.
A review, conducted after a new system has been in operation for some time, to evaluate actual
system performance against original expectations and projections for cost-benefit improvements.
Also identifies maintenance projects to enhance or improve the system.
urlpatterns = [
url(r'^employee-record$', views.employeelisting,
HttpResponse
def index(request):
return render(request,'login.html')
def employeelisting(request):
cursor = connection.cursor()
cursor.execute(
employeelist = dictfetchall(cursor)
context = {
"employeelist": employeelist
def getData(id):
cursor = connection.cursor()
dataList = dictfetchall(cursor)
return dataList[0];
def dictfetchall(cursor):
return [
dict(zip(columns, row))
context = {
"fn": "update",
"employeedetails": getData(employeeId),
if (request.method == "POST"):
cursor = connection.cursor()
cursor.execute("""
UPDATE employee_employee
SET employee_user=%s, employee_password=%s, employee_first_name=%s,
employee_middle_name=%s,
WHERE employee_id=%s""", (
request.POST['employee_user'],
request.POST['employee_password'],
request.POST['employee_first_name'],
request.POST['employee_middle_name'],
request.POST['employee_last_name'],
request.POST['employee_gender'],
request.POST['employee_address'],
request.POST['employee_village'],
request.POST['employee_mobile'],
request.POST['employee_email'],
request.POST['employee_dob'],
request.POST['employee_nationalty'],
employeeId
))
context["employeedetails"] = getData(employeeId)
return redirect('employeelisting')
else:
def add(request):
context = {
"fn": "add",
};
if (request.method == "POST"):
cursor = connection.cursor()
cursor.execute("""
""", (
request.POST['employee_user'],
request.POST['employee_password'],
request.POST['employee_first_name'],
request.POST['employee_middle_name'],
request.POST['employee_last_name'],
request.POST['employee_gender'],
request.POST['employee_address'],
request.POST['employee_village'],
request.POST['employee_mobile'],
request.POST['employee_email'],
request.POST['employee_dob'],
request.POST['employee_nationalty']))
return redirect('employeelisting')
cursor = connection.cursor()
if(getUser.user_password == request.POST['password']):
request.session['authenticated'] = True
request.session['user_id'] = getUser.user_id
request.session['user_name'] = getUser.user_name
return redirect('/users/dashboard')
else:
context['error'] = True
else:
return [
dict(zip(columns, row))
def listing(request):
return render(request,'dashboard.html')
def forgot(request):
return render(request,'forgotpass.html')
def logout(request):
request.session['authenticated']= False
request.session['user_id'] = False
request.session['user_name']= False
return redirect('/')
def changepassword(request):
if (request.method == "POST"):
try:
addUser = user(
user_password = request.POST['user_new_password']
)
addUser.save(update_fields=["user_password"])
except Exception, e:
return render(request,'change-password.html'
else:
return render(request,'change-password.html')
return render(request,'change-password.html')
CHAPTER 6
SOFTWARE TESTING
The unit testing done included the testing of the following items:
After completing the Unit testing of all the modules, the whole system is integrated with all its
dependencies in that module. While System Integration, We integrated the modules one by one and
tested the system at each step. This helped in reduction of errors at the time of the system testing.
The System Testing done included the testing of the following items:
After the completion of system testing, the next following phase was the Acceptance Testing.
Clients at their end did this and accepted the system with appreciation. Thus, we reached the final
phase of the project delivery.
There are other six tests, which fall under special category. They are described
below:
Peak Load Test: It determines whether the system will handle the volume of activities that occur
when the system is at the peak of its processing demand. For example, test the system by
activating all terminals at the same time.
Storage Testing: It determines the capacity of the system to store transaction data on a disk or in
other files.
Performance Time Testing: it determines the length of time system used by the system to process
transaction data. This test is conducted prior to implementation to determine how long it takes to
get a response to an inquiry, make a backup copy of a file, or send a transmission and get a
response.
Recovery Testing: This testing determines the ability of user to recover data or re-start system
after failure. For example, load backup copy of data and resume processing without data or
integrity loss.
Procedure Testing: It determines the clarity of documentation on operation and uses of system by
having users do exactly what manuals request. For example, powering down system at the end of
week or responding to paper-out light on printer.
Human Factors Testing: It determines how users will use the system when processing data or
preparing reports.
CHAPTER 7
SNAPSHOTS
Home Page:
Home page is the main page for this Employee leave management .It is the start page shown when
the application starts up.
Our project is only a humble venture to satisfy the needs to manage their project work.
Several user friendly coding have also adopted. This package shall prove to be a powerful package
in satisfying all the requirements of the school. The objective of software planning is to provide a
frame work that enables the manger to make reasonable estimates made within a limited time frame
at the beginning of the software project and should be updated regularly as the project progresses.
A description of the background and context of the project and its relation to work already
done in the area.
Made statement of the aims and objectives of the project.
The description of Purpose, Scope, and applicability.
We define the problem on which we are working in the project.
We describe the requirement Specifications of the system and the actions that can be done on
these things.
We understand the problem domain and produce a model of the system, which describes
operations that can be performed on the system.
We included features and operations in detail, including screen layouts.
We designed user interface and security issues related to system.
Finally the system is implemented and tested according to test cases.
FUTURE SCOPE OF THE PROJECT:
In a nutshell, it can be summarized that the future scope of the project circles around
maintaining information regarding:
We can add printer in future.
We can give more advance software for Employee Leave Management System including
more facilities
We will host the platform on online servers to make it accessible worldwide
Integrate multiple load balancers to distribute the loads of the system
Create the master and slave database structure to reduce the overload of the database queries
Implement the backup mechanism for taking backup of codebase and database on regular
basis on different servers
The above mentioned points are the enhancements which can be done to increase the
applicability and usage of this project. Here we can maintain the records of Employee and Leave.
Also, as it can be seen that now-a-days the players are versatile, i.e. so there is a scope for
introducing a method to maintain the Employee Leave Management System. Enhancements can be
done to maintain all the Employee, Leave, Company, Payroll, Salary.
We have left all the options open so that if there is any other future requirement in the system
by the user for the enhancement of the system then it is possible to implement them.In the last we
would like to thanks all the persons involved in the development of the system directly or indirectly.
We hope that the project will serve its purpose for which it is develop there by underlining success
of process.
REFERENCES
Google for problem solving
http://www.pythonworld.com/pythonworld/jw-01-1998/jw-01-Credentialreview.html
Database Programming with JDBC and Python by O'Reilly
Head First Python
http://www.jdbc-tutorial.com/
Python and Software Design Concepts by Apress
https://www.tutorialspoint.com/python/
http://www.pythontpoint.com/python-tutorial
https://docs.oracle.com/javase/tutorial/
http://www.wampserver.com/en/
http://www.Django.net/
http://www.tutorialspoint.com/mysql/
httpd.apache.org/docs/2.0/misc/tutorials.html