You are on page 1of 72

EMPLOYEE MANAGEMENT SYSTEM

A PROJECT REPORT
Submitted in partial fulfilment of the Requirements for the award of the Degree of
BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)

By

Akshay Sanjeevgir Gosavi


21
Under the esteemed guidance of
Mrs. Preeti Sarode

DEPARTMENT OF INFORMATION TECHNOLOGY

K. M. AGRAWAL COLLEGE
(Affiliated to University of Mumbai)
2022-2023
PROFORMA FOR THE APPROVAL PROJECT PROPOSAL

PNR No.:2020016401148142 Roll No:21

1. Name of the Student: Mr. Akshay Sanjeevgir Gosavi

2. Title of the Project: Employee Management System

3. Name of the Guide: Mrs. Preeti Sarode

4. Teaching experience of the Guide _____________________

5. Is this your first submission? Yes No

Signature of the Student Signature of the Guide


Date: ………………… Date: …………………….

Signature of the Coordinator


Date:………………….
K. M. AGRAWAL COLLEGE
DEPARTMENT OF INFORMATION TECHNOLOGY

(Affiliated to University of Mumbai)


2022-2023

CERTIFICATE
This is to certify that the project entitled, "Employee Management System", is bonafied
work of Akshay Gosavi bearing Seat No: 3228410 submitted in partial fulfilment of the
requirements for the award of degree of BACHELOR OF SCIENCE in INFORMATION
TECHNOLOGY from University of Mumbai.

____________________
Project Guide

_____________________ _____________________
Co-ordinator External Examiner
ABSTRACT

The Employee Management System is a program that facilitates the


management of employee data such as employee salary, ID, and name. The
system provides an intuitive interface that allows the administrator to add,
delete, update, and view employee data in a central database. This provides an
efficient way to manage employee information and helps to ensure data
accuracy. The Employee Management System can be configured to meet the
specific needs of the organization, with features such as custom fields,
reporting, and access controls. With real-time access to employee data, the
system enables the organization to make informed decisions about staffing,
compensation, and resource allocation.
With real-time access to employee data, the system enables the
organization to make informed decisions about staffing, compensation, and
resource allocation. This allows the organization to optimize its workforce and
increase productivity. Overall, the Employee Management System is a powerful
tool for managing employee data and promoting employee engagement. It can
save time and resources, allowing organizations to focus on their core objectives
and achieve their goals with ease.
ACKNOWLEDGEMENT

Before we describe in brief about our project, we would like to add a few
heartfelt words for the people who were very much helpful for us in developing
this project.
We are heartily thankful to Mrs. Preeti Sarode for giving us this opportunity to
develop the project. We give her our sincere salute for inspiring and motivating
us.
We would like to thanks whole teaching staff of Center, who have
contributed greatly for the success of this project. We would especially like to
express our gratitude to Preeti Sarode.
We would also like to pay our sincere thanks all those, who have co-
operated us, inspired us and have provided moral support directly or indirectly
for this project.

Your’s sincerely,
Akshay Gosavi
DECLARATION

I here by declare that the project entitled, “Employee management


system” done at K. M. Agrawal College Kalyan, has not been in any case
duplicated to submit to any other university for the award of any degree.
To the best of my knowledge other than me, no one has submitted to any
other university. The project is done in partial fulfilment of the
requirements for the award of degree of BACHELOR OF SCIENCE
(INFORMATION TECHNOLOGY) to be submitted as final semester
project as part of our curriculum.

Student Name: Mr. Akshay Sanjivgir Gosavi

Signature: ___________________
INDEX

Sr TABLE OF CONTENTS Page Sign


No no

Chapter 1 Introduction
1.1 Background

1.2 Objectives

1.3 Purpose, Scope, and Applicability

1.3.1 Purpose

1.3.2 Scope

1.3.3 Applicability

1.4 Achievements

1.5 Organisation of Report

CHAPTER 2: SURVEY OF TECHNOLOGIES

CHAPTER 3: REQUIREMENTS AND ANALYSIS

3.1 Problem Definition

3.2 Requirements Specification


Sr TABLE OF CONTENTS Page
No
Sign
no

3.3 Planning and Scheduling

3.4 Software and Hardware Requirements

3.5 Preliminary Product Description

3.6 Conceptual Models

Chapter 4: System Design


4.1 Basic Modules

4.2 Data Design

4.2.1 Schema Design

4.2.2 Data Integrity and Constraints

4.3 Procedural Design

4.3.1 Logic Diagrams

4.3.2 Data Structures

4.3.3 Algorithms Design

4.4 User interface design

4.5 Security Issues

4.6 Test Cases Design


Sr TABLE OF CONTENTS Page
No
Sign
no

Chapter 5: Results and Discussion

Chapter 6: Conclusion and Future Work

Chapter 7: References
Chapter 1
Employee Management System

1.1 Background

Employees are the backbone of any company therefore their management plays a
major role in deciding the success of an organization [1]. Human Resource
Management Software makes it easy for the employer to keep track of all records.
This software allows the administrator to edit employees, add new employees as
well as evaluate an employee’s performance. Employees can be managed efficiently
without having to retype back their information in the database. You can check to
see if there are duplicate positions/employees in the database. A flexible and easy to
use Employee Management software solution for small and medium sized
companies provides modules for personnel information management thereby
organization and companies are able to manage the crucial organization asset people
. The combination of these modules into one application assures the perfect platform
for re-engineering and aligning

After identifying the scope of the project, the feasibility study is needed to be carried
out. It is basically keeping the following points in mind.

Building the software for meeting the scope: This software has met the scope. As
there is no data involved in the system, processing on the file, and the behaviour of
this project is already identified and bundled in quantitative manner.

The processing of this software is very simple as it has been designed in php and it
has been well divided into several functions according to the need.

Technically feasible: This software is very much technically feasible. This software is
very much concerned with specifying equipment and the software will successfully
satisfy almost all the admin’s requirements. The technical need for this system may
vary considerably but might include:

a. The facility to produce output in a given time.

b. Response time under certain conditions.

c. Ability to process data at a particular speed.


Therefore, the basic input/output of data is identified. So, the project can easily be
build up and it will also be technically feasible.

State of Art: The project is very much within the state of art since the project is a
WINDOWS based; it uses very modern and common technique.

Beside it is very much modern and user friendly. It also works as middleware i.e.
only in between the user and the file. So, it is completely a state of art project.

Financially Feasible: The project is very much financially feasible. The


implementation and development cost of this software under the reach of any
college.

Moreover, it requires some training for the use. So, training cost can be neglected
and the resources of this software are very much available. It also reduces the labour
and extra cost to be paid for labour. So indeed, it is financially feasible.

Resources: As motioned earlier that the resources are easily available and the cost of
training is almost negligible. Sometimes situations may arise when it may not be so
much easy. For a person completely unaware of using a computer system could
result in a training cost or for a very small organization the purchase of a computer,
instalment of the system and other charges may lead to a difficult matter.

Employee Management System is a distributed application, developed to maintain


the details of employees working in any organization. It maintains the information
about the personal details of their employees. The application is actually a suite of
applications developed using Python.

It is simple to understand and can be used by anyone who is not even familiar with
simple employees system. It is user friendly and just asks the user to follow step by
step operations by giving him few options. It is fast and can perform many
operations of a company.
This software package has been developed using the powerful coding tools of
PYTHON at Front End and Microsoft Sqlite3 Server at Back End. The software is
very user friendly. The package contains different modules like Employee details.
This version of the software has multi-user approach.

1.2 Objective

In this world of growing technologies everything has been computerized. With large
number of work opportunities the Human workforce has increased. Thus there is a
need of a system which can handle the data of such a large number of Employees.
This project simplifies the task of maintaining records because of its user friendly
nature. The objective of this project is to provide a comprehensive approach towards
the management of employee information. This will be done by designing and
implementing an HR management system that will bring up a major paradigm shift
in the way that employee information is handled.

The objectives of this system include:

1. Design of a web based HR management system to fulfil requirements such as


project management, leave management, report generation to assist in
performance appraisal, ESS and employee trainings.

2. Well-designed database to store employee information.

3. A user friendly front-end for the user to interact with the system.

1.2 Purpose, Scope, and Applicability


The purpose of this document is to describe the functionality and specifications of
the design of a web application for Managing Employees and their payroll. The
expected audiences of this document are the developers and the admin of the web
application. Now with the help of this system the admin has the information on his
finger tips and can easily prepare a good record based on their requirements.

Finally, we can say that this system will not only automate the process but save the
valuable time of the manager or the admin, which can be well utilized buy his
institute. This will be an additional advantage and management of power based on
their free time from his normal duty.

1.3.2 Scope
It is cost effective as the user control the web application himself and does not go
for professional service.

It saves time as it speeds up every aspect of the employee database management


and payroll process with a range of automated features.

It is secure as the employee database and the payroll process is managed by the
admin in house rather than sending private information to a third party.

Validating procedures and checks restrict user from making mistakes.

The software is easy to use and is user friendly so no expertise is required.

The calculations are automated so no chance of error.


1.3.3 Applicability
The Admin gets logged in directly if he has the softwares required to run the
program. Admin can add new Employee, add new Department, add new Pay Grade
for the employees. Admin can set the ‘from’ and ‘to’ date worked by an employee in
a department with specific pay grade. The Admin can generate an automated
monthly salary of an employee. The admin can view all the past records of any
recorded employee.

1.4 Achievements
Project Achievement is a measurable and positive result that is received upon
successful completion of a project’s object (goal, deliverable, objective) or work item
(task, activity, stage). It can be also defined as the process of achieving a desired
outcome within a project under certain criteria that determine success and failure of
the project.

People involved in projects needs to apply their own skills, knowledge and
perseverance in order to reach some positive result. If something goes wrong and the
result is not positive (for example: broken objectives; overdue tasks; rejected
deliverables), this result is not actually an achievement but a failed attempt.
Achievements are always positive and have a favorable impact on related projects.

There are 6 basic steps to gain successful project achievements. The steps are:

 Have a SMART goal that explains what to achieve within a project


 Understand the goal in order to make the path to achievement shortened and
easier
 Estimate and acquire all necessary resources, such as time, knowledge, funds,
skills, etc.
 Put the goal in the effort and do the work
 Monitor and control performance
 Complete the goal and confirm it is successfully achieved.

1.5 Organisation of Report


• Introduction of Employee Management System

• Abstract of Employee Management System

• Objective of Employee Management System


• Scope of Employee Management System

• Software Requirement Specification (SRS) of Employee Management System


Hardware Requirements of Employee Management System

• Testing Strategy of Employee Management System All modules and description of


Employee Management System

• Software Requriements of Employee Management System Conclusion of


Employee Management System

• Dataflow Diagram (DFD) Zero Level DFD, 1st Level DFD, 2nd Level DFD of
Employee Management System

• Entity Relationship (ER) Diagram of Employee Management System

• Feasibility Study of Employee Management System

• All Screenshot of Employee Management System


Chapter 2: Survey of technology

What is Survey of technology?


It being not much of a surprise, technology survey refers to gathering insights on
software tools, internet services, relevant technical skills, etc. technology survey is
conducted to know how much the target audience knows about the technology and
its uses. For example, a company R wants to recruit new employees in his firm. He
first wants to know how much knowledge the people have who have applied for the
job. He will take a technology survey to get an idea about which ones of them are
techno-savvy and which ones are not.

Why technology surveys?


Well, the digitalization all over the world is no surprise for any of us. Many
companies ,businesses, and education systems are turning technology oriented since
the last few years. The pandemic has forced everyone to adapt to the new normal,
where the main challenge was to adapt to new technologies. All the businesses and
education is now running solely on technology. These times have already taught us
how important it is to have knowledge of various tools and services over the
internet. Given that, something else that we understood is that technology trends
change with light speed. And as businesses need to adapt to them quickly. If you
want to reach a techno-savvy crowd, you must stay on the trends. Your survey
needs to get into every nook and corner of the online channels so that it gets
distributed on a large scale. Technology survey is the best way to understand where
your customer-based stands on the ‘techno-savvy’ scale. And once you know this,
you can mold your strategies to meet their standards through the technology that
they are using. existing employee management system in the organization still uses
the ordinary classical methods which are merely based on pen-paper to record the
data of their employees.

Large quantities of registers are to be maintained for this purpose which results in
down right waste of time in generating reports or searching for employee’s records
and loss of data if any file is lost. It is also an arduous task for organizations as it is
an expensive process. However,

somewhere new technologies such as web based systems, Iot based systems are used
but they also are costly and difficult to implement at some places. The other
techniques that are in the market are dependent on facial recognition, biometric scan
or card punching. But all of these require an external device to be installed in the
working area, which is again a costly process and requires regular maintenance. This
project eliminates or reduces as much as possible the difficulties of the existing
system and avoids errors while entering data. In comparison to the existing system it
is cheaper, easy to implement, easy to use, no maintenance required, on time data
and saves lots of time.

Disadvantages:

- Require external device, which is costly and require heavy maintenance

- Needs an extra manual effort.

- Time consuming process.

- High risk of data got lost.

- Risk of making errors which entering data


A. System Analysis :

Employee management system to be developed such that it is capable of marking


attendance of each employee. Data of users should be secured and must be accessed
easily whenever required. Data to be structured such that it can be reused. Proper
management of holidays to be done, which is an important concern in calculating
salary of employees. Applications should be capable of giving salary, total working
hours, overtime, present days at the end of month in just a click.
B. Planning :

This section of development includes proper planning of steps and timeline


according to that. Itis necessary so that the development process goes smoothly and
gets completed on time. It includes planning of the process to execute the project and
make it achieve its targets and using such that it does not create any problem in
future.
C. Design Analysis :

Design analysis is a step in which each design of screen is planned and analysed
whether it would be capable of giving desired results. This step is repeated
whenever required. If something new or update is required that begins from here.
The most challenging part here was to make design. It give simple user experience. It
is an incremental step in which first designing is done such that it is capable of
implementing all the required functionalities and later on design can be made
attractive.
CHAPTER 3: REQUIREMENTS AND
ANALYSIS

3.1 Problem Definition


“Employee Management System” is designed to make the existing manual system
automatic with the help of computerised equipment and full-edged computer
software, fulfilling their requirements, so that their valuable data and information
can be stored for a longer period with easy access and manipulation of the same. The
required software is easily available and easy to work with. This web application can
maintain and view computerised records without getting redundant entries. The
project describes how to manage user data for good performance and provide better
services for the client.

The proposed project “Employee Management System” has been developed to


overcome the problems faced in the practicing of manual system. This software is
built to eliminate and in some cases reduce the hardships faced by the existing
system. Moreover this system is designed for particular need of the company to
carry out its operations in a smooth and effective manner.

This web application is reduced as much as possible to avoid errors while entering
data. It also provides error message while entering invalid data. It is user-friendly as
no formal knowledge is required to use the system.

Human resource challenges are faced by every organization which has to be


overcome by the organization. Every organization has different employee
management needs. Therefore I have design exclusive Employee Management
System that are adapted to the organization’s Managerial Requirements.

3.2 Requirements Specification


EMS should be able to work on a computer with the following minimum hardware
specifications:

OS: Windows XP/Vista/7/8 and Linux


CPU: Pentium III (700MHz) and above

Memory: 128 MB and above

Capacity: 4GB of hard drive

Others: Network interface card, mouse, keyboard, and monitor.

3.3 Planning and Scheduling


Project Planning and Scheduling’, though separate, are two sides of the same coin in
project management. Fundamentally, ‘Project planning’ is all about choosing and
designing effective policies and methodologies to attain project objectives. While
‘Project scheduling’ is a procedure of assigning tasks to get them completed by
allocating appropriate resources within an estimated budget and time-frame.

The basis of project planning is the entire project. Unlikely, project scheduling
focuses only on the project-related tasks, the project start/end dates and project
dependencies. Thus, a ‘project plan’ is a comprehensive document that contains the
project aims, scope, costing, risks, and schedule. And a project schedule includes the
estimated dates and sequential project tasks to be executed.

The project planning phase refers to:

 Developing a project to make it ready for investment


 Determines the jobs/tasks required to attain project objectives

Stages of Project Planning


The project planning stages are enlisted below:

1. Identifying the key project sponsors and stakeholders, to determine the basis
of project scope, budget, and time-frame for project execution.
2. Upon enlisting the stake-holder requirements, prioritizing/setting project
objectives.
3. Identifying the project deliverables required to attain the project objectives.
4. Creating the project schedule.
5. Identifying the project risks, if any, and develop suitable mitigation plans.
6. Communicating and presenting the project plan to stakeholders.

Benefits of Project Planning

 Route-Map: The project plan offers a road-way that gives direction to the
project from start to end.
 Documentation of Customer Requirements: A well-articulated project plan
enables the record of the requirements of the customers in a documented
form. This provides a precise direction instead of relying on assumptions,
which could be incorrect and may lead to project errors.
 Task Autonomy: Planning enables one to assign tasks to specific team
members and gives autonomy. The team feels a sense of responsibility and
ownership of the success or failure of a project. Consequently, it urges them to
work better or encourages them to bring inconsistent results.
 Resource Estimation: Planning is vital as in a way, it enables us to estimate
resources, costing and time. It gives a judgment of any delays if several
members are working on various projects at a time.
 Mitigation Plan: The project plan gives a way to forecast risks, if any, and plan
for mitigation strategies accordingly.
 Identification of Employee Capabilities: The planning phase enables to
identify employees with certain skill-sets or expertise. And as the tasks get
assigned, team members get trained on a lacking skill-sets or either upgraded
on the ones they possess.
 Strengths and Short-Comings of Previous Projects: Project plans also help to
analyze and improve or learn from the previous project records and facilitate
decision-making.

The project scheduling phase refers to:

 Estimation of human resource and material requisite at every stage of the


project; and approximate calculative time to complete each of these tasks.
 Indicates the start and end date of each project task and logical connectivity
among various project tasks/activities.

3.4 Software and Hardware Requirements


Software's Required:

Front End Not any special

Back End Microsoft Office Access

Languages used Python

Database Sqlite3

Operating System Windows XP or Higher Version


What is Python?
Python is an interpreted, object-oriented, high-level programming language with
dynamic semantics. Its high-level built in data structures, combined with dynamic
typing and dynamic binding, make it very attractive for Rapid Application
Development, as well as for use as a scripting or glue language to connect existing
components together. Python's simple, easy to learn syntax emphasizes readability
and therefore reduces the cost of program maintenance. Python supports modules
and packages, which encourages program modularity and code reuse. The Python
interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed.

What is SQL?

SQL is Structured Query Language, which is a computer language for storing,


manipulating and retrieving data stored in a relational database.
SQL is the standard language for Relational Database System. All the Relational
Database Management Systems (RDMS) like MySQL, MS Access, Oracle, Sybase,
Informix, Postgres and SQL Server use SQL as their standard database language.
Also, they are using different dialects, such as −

 MS SQL Server using T-SQL,


 Oracle using PL/SQL,
 MS Access version of SQL is called JET SQL (native format) etc.

What Is SQLite?
SQLite is an embedded, server-less relational database management system. It is an
in-memory open-source library with zero configuration and does not require any
installation. Also, it is very convenient as it’s less than 500kb in size, which is
significantly lesser than other database management systems.

Why Use SQLite?

 SQLite is an open-source software. The software does not require any license after
installation.

 SQLite is serverless as it doesn't need a different server process or system to


operate.

 SQLite facilitates you to work on multiple databases on the same session


simultaneously, thus making it flexible.

 SQLite is a cross-platform DBMS that can run on all platforms, including macOS,
Windows, etc.

 SQLite doesn't require any configuration. It needs no setup or administration.


Hardware Required:

Processor Pentium III or above

RAM 64 MB

HDD 10GB

3.5 Preliminary Product Description


This employee system management project is designed to help manage employee
data and information. The system will provide a central location for employee data
and information, and will allow managers and HR professionals to access and
update employee information as needed. The system will also provide tools for
tracking employee salary and top five employee.

We will be able to add, delete, view, update the data with ease, also we get a excel
sheet so that we can directly send to higher authority in case they need to do some
work or track the employee accordingly.
3.6 Conceptual Models

As you can see admin can add the data after that he can update/delete the data or he
can view the data in normal table format or he can also view a graph of it

In other words

Admin can add data to the table by clicking on the "Add Data" button.

Admin can update data in the table by clicking on the "Update Data" button.

Admin can delete data in the table by clicking on the "Delete Data" button.

Admin can view data in the table by clicking on the "View Data"

button. Admin can view a graph of the data by clicking on the "View Graph" button.
CHAPTER 4: SYSTEM DESIGN

4.1 Basic Modules


A module is a collection of source files and build settings that allow you to divide
your project into discrete units of functionality. Your project can have one or many
modules, and one module may use another module as a dependency. You can
independently build, test, and debug each module.

Additional modules are often useful when creating code libraries within your own
project or when you want to create different sets of code and resources for different
device types, such as phones and wearables, but keep all the files scoped within the
same project and share some code.

Add a new module to your project by clicking File > New > New Module.

Example is Given Below:

Android Studio offers a few distinct types of module:

Android app module

Provides a container for your app's source code, resource files, and app level
settings such as the module-level build file and Android Manifest file. When
you create a new project, the default module name is "app".

In the Create New Module window, Android Studio offers the following
types of app modules:

 Phone & Tablet Module

 Wear OS Module
 Android TV Module

 Glass Module

Each provides essential files and some code templates that are appropriate for
the corresponding app or device type.
Add
User

Delete
User Edit User
Data
Storage
Unit

View
graph for
top 5 View List
salaries

Fig. Employee System Management Module


1. The main unit is Data Storage Unit. All the data gets collected and gets
stored in it.

2. We can retrieve, edit or delete existing data by knowing the unique ID.

3. Each employee is given a unique ID so that it is easy to view, edit or delete


it.

4. Without the unique ID we cannot edit or delete a employee data.

5. We can view a graph for top five employee salaries.

6. Data is also generated in excel sheet in precised location.

4.2 Data Design

A Data Design Definition


Data design is also called as Data Dictionary. A Data Design is a collection of names,
definitions, and attributes about data elements that are being used or captured in a
database, information system, or part of a research project. It describes the meanings
and purposes of data elements within the context of a project, and provides
guidance on interpretation, accepted meanings and representation. A Data
Dictionary also provides metadata about data elements. The metadata included in a
Data Dictionary can assist in defining the scope and characteristics of data elements,
as well the rules for their usage and application.

4.2.1 Schema Design


What is Database Schema Design?
Database schema design refers to the practices and strategies for constructing a
database schema.You can think of database schema design as a “blueprint” for how
to store massive amounts of information in a database. The schema is an abstract
structure or outline that represents the logical view of the database as a whole. By
defining categories of data and relationships between those categories, database
schema design makes data much easier to retrieve, consume, manipulate, and
interpret.Database schema design organizes the data into separate entities,
determines how to create relationships between organized entities, and how to apply
the constraints on the data. Designers create database schemas to give other database
users, such as programmers and analysts, a logical understanding of the data.

1. Unique Id’s are highlighted in red. Its is automated generated ID by


system.
2. Each employee has a different unique id.
3. Salary has a bar highlighting the highest salaries accordingly.
4. Top five employee are automatically picked and sorted for the graph.
5. By viewing this data we can easily check the unique id and salary of a
employee.
6. We can also share this sheet to anyone if they nee to check anything.
4.2.2 Data Integrity and Constraints

Data integrity is the maintenance and the assurance of data accuracy and consistency

over its entire life-cycle.It is composed of three integrity constraints

called: entity integrity, referential integrity and domain integrity.When properly

applied, these constraints ensure that all data can be traced, connected, recovered and

searched, therefore improving the stability, the performance and the maintainability

of the database.

ID NAME SALARY
1 amitt 98000
2 sumit 14000
3 neha 9000
4 sHUBHAM 100001
5 Om 12000
6 john 8001
7 joe 15000
8 jony 17600
9 Aman 21000

Entity integrity

The entity integrity constraint states that relations must have a primary key that is

unique and not null.

Candidate keys

In order to choose a primary key, we must first identify all of the possible attributes
of a relation that match the primary key criteria, these attributes being then

called candidate keys.


ID NAME SALARY
1 amitt 98000
2 sumit 14000
3 neha 9000
4 sHUBHAM 100001
5 Om 12000
6 john 8001
7 joe 15000
8 jony 17600
9 Aman 21000
Here Candidate key is ID

On the contrary, choosing a person’s first name as candidate key would contradict
the entity integrity constraint, as searching for “amitt” or “Rohan” in the database
will not result in retrieving a specific record but probably dozens of them.

ID NAME SALARY
1 amitt 98000
2 amitt 14000
3 neha 9000
4 sHUBHAM 100001
5 Om 12000
6 john 8001
7 joe 15000
8 jony 17600
9 Aman 21000

Not Unique
4.3 Procedural Design

What is Procedural Programming?


Procedural Programming may be the first programming paradigm that a new
developer will learn. Fundamentally, the procedural code is the one that directly
instructs a device on how to finish a task in logical steps. This paradigm uses a linear
top-down approach and treats data and procedures as two different entities. Based
on the concept of a procedure call, Procedural Programming divides the program
into procedures, which are also known as routines or functions, simply containing a
series of steps to be carried out.

Simply put, Procedural Programming involves writing down a list of instructions to


tell the computer what it should do step-by-step to finish the task at hand.
4.3.1 Logic Diagrams

E-R Diagrams
What is ER Diagram?

ER Diagram stands for Entity Relationship Diagram, also known as ERD is a


diagram that displays the relationship of entity sets stored in a database. In other
words, ER diagrams help to explain the logical structure of databases. ER diagrams
are created based on three basic concepts: entities, attributes and relationships.
ER Diagrams contain different symbols that use rectangles to represent entities,
ovals to define attributes and diamond shapes to represent relationships.

At first look, an ER diagram looks very similar to the flowchart. However, ER


Diagram includes many specialized symbols, and its meanings make this model
unique. The purpose of ER Diagram is to represent the entity framework
infrastructure

1. Using employee data we can add, view user data and graph for top
five employee salary.

2. We can even manage data with the help of employee data.

3. We can also edit and delete data of employee with the help of unique
id.

4. Employee id i.e unique id is the key to all the data of employee in it.

5. Without unique id we cannot edit or delete data of a employee.

6. We can see the unique id with the help of view function.


Name

Unique ID Salary

Add

Unique ID
Salary of top 5
employees

Employee
Name View
Data Graph

Salary

Manage
Delete

Unique ID
Edit Salary

Unique ID
Name
Data Flow Diagrams / UML

What is a data flow diagram?

A data flow diagram (DFD) maps out the flow of information for any process or
system. It uses defined symbols like rectangles, circles and arrows, plus short text
labels, to show data inputs, outputs, storage points and the routes between each
destination. Data flowcharts can range from simple, even hand-drawn process
overviews, to in-depth, multi-level DFDs that dig progressively deeper into how the
data is handled. They can be used to analyze an existing system or model a new one.
Like all the best diagrams and charts, a DFD can often visually “say” things that
would be hard to explain in words, and they work for both technical and
nontechnical audiences, from developer to CEO. That’s why DFDs remain so
popular after all these years. While they work well for data flow software and
systems, they are less applicable nowadays to visualizing interactive, real-time or
database-oriented software or systems.

What are the different DFD levels and layers?


Levels or layers are used in DFDs to represent progressive degrees of detail about
the system or process. These levels include:

 Level 1: Also known as a "context diagram," this is the highest level and
represents a very simple, top-level view of the system being represented.

 Level 2: Still a relatively broad view of the system, but incorporates subprocesses
and more detail.
First Level Diagram :

Add Employee

Edit employee
View Admin data

Delete
Second Level Diagram:

Add Delete
Edit View Graph

View Data
Add New of Top five
Employee employees
Data Edit existing View Data of
Employee all employees
Delete
data using
Employee
ID
Data

Employee Data
1. Admin can add, edit, view and delete employee data.

2. When we select add data we have to put employee name, salary and id.

3. When we select edit we have to put the exact id we need to edit the data of and
then we have to put his name and salary for editing.

4. When we select view the data of all the employees is view in table format.

5. When we select delete we have to put only the id we want to delete the data of.

6. When we select graph a precised graph is shown for top five employees with
highest salaries.

Class Diagram

Class diagram is a static diagram. It represents the static view of an application. Class
diagram is not only used for visualizing, describing, and documenting different
aspects of a system but also for constructing executable code of the software
application.
Use Case Diagram

What is a use case diagram?

In the Unified Modeling Language (UML), a use case diagram can summarize the
details of your system's users (also known as actors) and their interactions with the
system. To build one, you'll use a set of specialized symbols and connectors. An
effective use case diagram can help your team discuss and represent:

 Scenarios in which your system or application interacts with people,


organizations, or external systems

 Goals that your system or application helps those entities (known as actors)
achieve

 The scope of your system


4.3.2 Data Structures

What is Data Structure:


A data structure is a storage that is used to store and organize data. It is a way of
arranging data on a computer so that it can be accessed and updated efficiently.
A data structure is not only used for organizing the data. It is also used for processing,
retrieving, and storing data. There are different basic and advanced types of data
structures that are used in almost every program or software system that has been
developed. So we must have good knowledge about data structures.
Classification of Data Structure:

Classification of Data Structure

 Linear data structure: Data structure in which data elements are arranged
sequentially or linearly, where each element is attached to its previous and next
adjacent elements, is called a linear data structure.
Examples of linear data structures are array, stack, queue, linked list, etc.
 Static data structure: Static data structure has a fixed memory size. It is
easier to access the elements in a static data structure.
An example of this data structure is an array.
 Dynamic data structure: In dynamic data structure, the size is not fixed. It
can be randomly updated during the runtime which may be considered
efficient concerning the memory (space) complexity of the code.
Examples of this data structure are queue, stack, etc.
 Non-linear data structure: Data structures where data elements are not placed
sequentially or linearly are called non-linear data structures. In a non-linear
data structure, we can’t traverse all the elements in a single run only.
Examples of non-linear data structures are trees and graphs.

4.3.3 Algorithms Design

What is an algorithm?
An Algorithm is a procedure to solve a particular problem in a finite number of
steps for a finite-sized input.
The algorithms can be classified in various ways. They are:

1. Implementation Method
2. Design Method
3. Design Approaches
4. Other Classifications
In this article, the different algorithms in each classification method are discussed.
Classification by Implementation Method: There are primarily three main
categories into which an algorithm can be named in this type of classification. They
are:

1. Recursion or Iteration: A recursive algorithm is an algorithm which calls itself


again and again until a base condition is achieved whereas iterative algorithms
use loops and/or data structures like stacks, queues to solve any problem.
Every recursive solution can be implemented as an iterative solution and vice
versa.
Example: The Tower of Hanoi is implemented in a recursive fashion
while Stock Span problem is implemented iteratively.
2. Exact or Approximate: Algorithms that are capable of finding an optimal
solution for any problem are known as the exact algorithm. For all those
problems, where it is not possible to find the most optimized solution, an
approximation algorithm is used. Approximate algorithms are the type of
algorithms that find the result as an average outcome of sub outcomes to a
problem.
Example: For NP-Hard Problems, approximation algorithms are used. Sorting
algorithms are the exact algorithms.
3. Serial or Parallel or Distributed Algorithms: In serial algorithms, one
instruction is executed at a time while parallel algorithms are those in which we
divide the problem into sub problems and execute them on different processors.
If parallel algorithms are distributed on different machines, then they are
known as distributed algorithms.

4.4 User interface design


What is User Interface Design?

User interface (UI) design is the process designers use to build interfaces in software
or computerized devices, focusing on looks or style. Designers aim to create
interfaces which users find easy to use and pleasurable. UI design refers to graphical
user interfaces and other forms—e.g., voice-controlled interfaces
User interfaces are the access points where users interact with designs. They come in
three formats:\Graphical user interfaces (GUIs)—Users interact with visual
representations on digital control panels. A computer’s desktop is a GUI.

1. Voice-controlled interfaces (VUIs)—Users interact with these through their voices.


Most smart assistants—e.g., Siri on iPhone and Alexa on Amazon devices—are VUIs.
2. Gesture-based interfaces—Users engage with 3D design spaces through bodily
motions: e.g., in virtual reality (VR) games.

GUI(Graphical User Interface)


4.5 Security Issues
There are a variety of security issues that can arise in project management. One issue
is data breaches, which can occur when confidential project information is released
to unauthorized individuals. This can happen through hacking or through careless
sharing of information.

Another security issue is unauthorized access to project resources. This can happen
when people who are not authorized to access certain project resources gain access
to them. This can be a problem if the unauthorized access leads to the resources
being compromised or misused.

Another security issue that can arise in project management is fraud. This can occur
when people falsify project information or commit other fraudulent activities. This
can be a problem if it leads to the project being over budget or behind schedule.

Finally, another security issue that can arise in project management is sabotage. This
can occur when someone deliberately tries to sabotage the project or when they
intentionally damage project resources. This can be a problem if it leads to the
project being delayed or cancelled.

If any employee has access to data he/she can change any data of anyone he want or
even delete it. So we must ensure that we give access to only limited and trust
worthy people.

4.6 Test Cases Design


The test case is defined as a group of conditions under which a tester determines
whether a software application is working as per the customer's requirements or not.
Test case designing includes preconditions, case name, input conditions, and expected
result. A test case is a first level action and derived from test scenarios.
It is an in-details document that contains all possible inputs (positive as well as
negative) and the navigation steps, which are used for the test execution process.
Writing of test cases is a one-time attempt that can be used in the future at the time of
regression testing
1.Adding New Employee
2.Viewing the added employee
Chapter 5
Result and Discussions

1. When we run Ems.py this is the first interface we get.


2. When we click add we get this interface where we can enter ID, Name, Salary of a
employee. Using this we can add new employee data and save it.
3. When we click view, we can see all the data and also the data we added recently.
4.When we back and click update we need to put employee ID and then we can
make changes to the existing data.
5. If we want to delete any data of a employee when he leaves the company we can
click the delete interface and type his ID which is unique after clicking delete his
data will be deleted.
6. We can also view the data in form of graphs i.e charts just as shown below. Using
this we can easily check which employee has the highest salary.
The Employee Management System was successfully developed and implemented
for use within the organization. The system provided a centralized database for
storing, managing, and tracking employee data, including name, salary, and ID.
With the Employee Management System, administrators were able to perform a
range of tasks such as adding, deleting, updating, and viewing employee data. The
system provided an efficient way to manage employee information, which helped to
ensure data accuracy.

The Employee Management System proved to be an effective tool for managing


employee data and promoting employee engagement within the organization. The
system saved time and resources, allowing administrators to focus on more
important tasks, such as strategic planning and decision-making.

The system provided a range of benefits, including increased efficiency, accuracy,


and security of employee data. Overall, the Employee Management System was a
valuable asset for the organization, helping to streamline operations and improve
employee engagement. The success of the system demonstrated the importance of
investing in technology to support effective management practices and achieve
organizational goals.
Gantt Chart
Source Code

#importing all the Libraries

from tkinter import *

from tkinter.messagebox import *

from tkinter.scrolledtext import *

import pandas as pd

import matplotlib.pyplot as plt

from sqlite3 import *

import csv

import os

#creating functions

def f1():

main_window.withdraw()

add_window.deiconify()

def f2():

add_window.withdraw()

main_window.deiconify()

def f3():

main_window.withdraw()

view_window.deiconify()

vw_st_data.delete(1.0,END)

info=""
con=None
try:

con=connect("ems.db")

cursor=con.cursor()

sql="select * from employee"

cursor.execute(sql)

data=cursor.fetchall()

con.commit()

for d in data:

info= info + "Id= " + str(d[0]) + "\t"+ " Name= " +str(d[1]) +
"\t\t"+ " Salary=Rs" + str(d[2]) + "\n"

vw_st_data.insert(INSERT,info)

except Exception as e:

showerror("Issue",e)

finally:

if con is None:

con.close()

def f4():

view_window.withdraw()

main_window.deiconify()

def f5():

main_window.withdraw()

update_window.deiconify()

def f6():
update_window.withdraw()
main_window.deiconify()

def f7():

main_window.withdraw()

delete_window.deiconify()

def f8():

delete_window.withdraw()

main_window.deiconify()

def chart():

data=pd.read_csv("empdata.csv") #reading data from csv file

d1=data.sort_values(by=["salary"],ascending=False) #sorting the


salary in descending order

d2=d1.head(5) #displaying only top 5 data

name=d2["name"].tolist()

salary=d2["salary"].tolist()

#ploting bar chart using matplotlib.pyplot

plt.bar(name,salary,width=0.5,color=["red","cyan","purple","gold","silver"])

plt.xlabel("Names of the Employee")

plt.ylabel("Salary in Rupees")

plt.title(" Top 5 Employee by Salary ")

plt.grid()

plt.show()

#################################creating main
window################
main_window=Tk()

main_window.title(" E.M.S ")

main_window.geometry("500x550+400+100")

main_window.iconbitmap("py.ico")

main_window.configure(bg="PaleGreen1")

#initializing font

f=("Ink Free",12,"bold")

#initializing y axis

y=15

#initializing Buttons

#BTN add

add_btn=Button(main_window,activeforeground="orange",activebackground="pink
",text="ADD",font=f,width=9,height=2,command=f1)

add_btn.pack(pady=y)

#btn view

view_btn=Button(main_window,text="VIEW",activeforeground="yellow",activeback
ground="purple",font=f,width=9,height=2,command=f3)

view_btn.pack(pady=y)

#btn update

update_btn=Button(main_window,activeforeground="cyan",text="UPDATE",height
=2,font=f,width=9,command=f5)

update_btn.pack(pady=y)
#btn delete

delete_btn=Button(main_window,activeforeground="yellow",activebackground="sil
ver",text="DELETE",font=f,width=9,height=2,command=f7)

delete_btn.pack(pady=y)

#btn charts

charts_btn=Button(main_window,activeforeground="yellow",activebackground="cy
an",text="CHARTS",font=f,width=9,height=2,command=chart)

charts_btn.pack(pady=y)

#Label Quote

fq=("Lucida Calligraphy",12)

quote_lab=Label(main_window,fg="blue",bg="yellow",text="Quote Of The Day:\n


When it comes to luck, Make your own\n -Bruce
Springsteen",font=fq,width=48,height=3,)

quote_lab.pack(pady=5)

#####################Add window
initialization##########################

add_window=Toplevel(main_window)
add_window.title("ADD EMPLOYEE")

add_window.geometry("500x550+400+100")

add_window.iconbitmap("py.ico")

add_window.configure(bg="LightSkyBlue1")

#Label name

aw_lab_id=Label(add_window,text="Enter ID",font=f,height=2,width=9)
aw_lab_id.pack(pady=y)
#Entry id

aw_ent_id=Entry(add_window,font=f,)

aw_ent_id.pack(pady=y)

#Label Name

aw_lab_name=Label(add_window,text="Enter Name",font=f,height=2)

aw_lab_name.pack(pady=y)

#Entry name

aw_ent_name=Entry(add_window,font=f,)

aw_ent_name.pack(pady=y)

#Label Salary

aw_lab_salary=Label(add_window,text="Enter Salary",font=f,height=2)

aw_lab_salary.pack(pady=y)

#Entry salary

aw_ent_salary=Entry(add_window,font=f,)

aw_ent_salary.pack(pady=y)

def save():

con=None

try:

id=aw_ent_id.get()

if len(id) == 0:
raise Exception("Id should not be Empty")
elif id.isnumeric()==0:

aw_ent_id.delete(0,END)

raise Exception("ID Should Be In In Positive Numbers ")

elif int(id) == 0:

aw_ent_id.delete(0,END)

raise Exception("ID Should Be In In Positive Numbers")

else:

id1=int(id)

name=aw_ent_name.get()

if len(name)==0:

raise Exception("Name Should not be empty")

elif name.isalpha()==0:

aw_ent_name.delete(0,END)

raise Exception("Only alphabets are allowed in Name")

elif len(name) < 2:

aw_ent_name.delete(0,END)

raise Exception("Name too short")

else:

name1=name

salary=(aw_ent_salary.get())

if len(salary)==0:

aw_ent_salary.delete(0,END)

raise Exception("Salary Should not be Empty")

elif salary.isnumeric()==0:
aw_ent_salary.delete(0,END)

raise Exception("Salary should be in Positive Numbers")

elif float(salary) < 8000:

aw_ent_salary.delete(0,END)

raise Exception("Salary should be greater than RS8000")

else:

salary1=float(salary)

con=connect ("ems.db")

cursor=con.cursor()

sql="insert into employee values('%d','%s','%f')"

cursor.execute(sql % (id1,name1,salary1))

con.commit()

showinfo("Record","Employee added Successfully")

#Exporting data into csv file

cursor=con.cursor()

cursor.execute("select * from employee")

with open("empdata.csv","w",newline='',encoding='utf-8') as csv_file:

csv_writer=csv.writer(csv_file)

csv_writer.writerow([i[0] for i in cursor.description])

csv_writer.writerows(cursor)

except IntegrityError:
showerror("Record","Employee Id Already present,Try Another One")
except Exception as e:

showerror("Issue",e)

finally:

if con is not None:

con.close()

aw_ent_id.delete(0,END)

aw_ent_name.delete(0,END)

aw_ent_salary.delete(0,END)

#Button save

aw_btn_save=Button(add_window,text="Save",font=f,height=2,width=6,activeforeg
round="yellow",activebackground="cyan",command=save)

aw_btn_save.pack()

#Button back

aw_btn_back=Button(add_window,activeforeground="yellow",activebackground="c
yan",text="Back",font=f,height=2,width=6,command=f2)

aw_btn_back.pack(pady=y)

#to close add window

add_window.withdraw()

###########################View
Emp##############################

view_window=Toplevel(main_window)
view_window.title("View Emp")

view_window.geometry("500x550+400+100")

view_window.iconbitmap("py.ico")

view_window.configure(bg="LightGoldenrod1")

#scroll text

vw_st_data=ScrolledText(view_window,width=44,height=19,font=f)

vw_st_data.pack(pady=y)

#btn back

vw_btn_back=Button(view_window,activeforeground="yellow",activebackground=
"red",text="Back",font=f,width=8,height=2,command=f4)

vw_btn_back.pack(pady=y)

#to close

view_window.withdraw()

###########################Update
Window#######################

update_window=Toplevel(main_window)

update_window.title("View Emp")

update_window.geometry("500x550+400+100")

update_window.iconbitmap("py.ico")

update_window.configure(bg="LightPink1")
#Label name

uw_lab_id=Label(update_window,text="Enter ID",font=f,height=2,width=9)

uw_lab_id.pack(pady=y)

#Entry id

uw_ent_id=Entry(update_window,font=f,)

uw_ent_id.pack(pady=y)

#Label Name

uw_lab_name=Label(update_window,text="Enter Name",font=f,height=2)

uw_lab_name.pack(pady=y)

#Entry name

uw_ent_name=Entry(update_window,font=f,)

uw_ent_name.pack(pady=y)

#Label Salary

uw_lab_salary=Label(update_window,text="Enter Salary",font=f,height=2)

uw_lab_salary.pack(pady=y)

#Entry salary

uw_ent_salary=Entry(update_window,font=f,)

uw_ent_salary.pack(pady=y)

def update():

con=None

try:
con=connect("ems.db")
cursor=con.cursor()

sql="update employee set name='%s',salary='%f' where id='%d' "

id=(uw_ent_id.get())

if len(id) == 0:

raise Exception("Id should not be Empty")

uw_ent_id.delete(0,END)

elif id.isnumeric()==0:

raise Exception("ID Should Be In Positive Numbers")

uw_ent_id.delete(0,END)

elif int(id) == 0:

raise Exception("ID Should Be In Positive Numbers")

uw_ent_id.delete(0,END)

else:

id1=int(id)

name=uw_ent_name.get()

if len(name)==0:

raise Exception("Name Should not be empty")

uw_ent_name.delete(0,END)

elif name.isalpha()==0:

raise Exception("Only alphabets are allowed in Name")

uw_ent_name.delete(0,END)

elif len(name) < 2:

raise Exception("Name too short")

uw_ent_name.delete(0,END)

else:

name1=name

salary=(uw_ent_salary.get())
if len(salary)==0:
raise Exception("Salary Should not be Empty")

uw_ent_salary.delete(0,END)

elif salary.isnumeric()==0:

raise Exception("Salary should be in Numbers")

uw_ent_salary.delete(0,END)

elif float(salary) < 8000:

raise Exception("Salary should be greater than RS8000")

uw_ent_salary.delete(0,END)

else:

salary1=float(salary)

cursor.execute(sql % (name1,salary1,id1))

if cursor.rowcount == 1:

con.commit()

showinfo("Record","Record Updated Successfully")

else:

showerror("Record","Record does not exists")

#Exporting data into csv file

cursor=con.cursor()

cursor.execute("select * from employee")

with open("empdata.csv","w",newline='',encoding='utf-8') as csv_file:

csv_writer=csv.writer(csv_file)

csv_writer.writerow([i[0] for i in cursor.description])

csv_writer.writerows(cursor)

dirpath=os.getcwd()+"/empdata.csv"

except Exception as e:

showerror("Issue",e)
con.rollback()
finally:

if con is not None:

con.close()

uw_ent_id.delete(0,END)

uw_ent_name.delete(0,END)

uw_ent_salary.delete(0,END)

#Button save

uw_btn_save=Button(update_window,activeforeground="yellow",activebackground
="green",text="Save",font=f,height=2,width=6,command=update)

uw_btn_save.pack()

#Button back

uw_btn_back=Button(update_window,activeforeground="gold",activebackground=
"red",text="Back",font=f,height=2,width=6,command=f6)

uw_btn_back.pack(pady=y)

#to close add window

update_window.withdraw()

###########################delete window#################

delete_window=Toplevel(main_window)

delete_window.title("Delete Emp")

delete_window.geometry("500x550+400+100")

delete_window.iconbitmap("py.ico")

delete_window.configure(bg="AntiqueWhite2")
#Label name

dw_lab_id=Label(delete_window,text="Enter ID",font=f,height=2,width=9)

dw_lab_id.pack(pady=y)

#Entry id

dw_ent_id=Entry(delete_window,font=f,)

dw_ent_id.pack(pady=y)

def delete():

con=None

try:

con=connect("ems.db")

cursor=con.cursor()

sql="delete from employee where id='%d' "

id=(dw_ent_id.get() )

if len(id) == 0:

raise Exception("Id should not be Empty")

dw_ent_id.delete(0,END)

elif id.isnumeric()==0:

raise Exception("ID Should Be In Numbers only")

dw_ent_id.delete(0,END)

elif int(id) == 0:

raise Exception("Id should be Number")

dw_ent_id.delete(0,END)

else:

id1=int(id)

cursor.execute(sql % (id1))
if cursor.rowcount == 1:
con.commit()

showinfo("Record","Employee Deleted Successfully")

else:

showwarning("Record","Employee-ID does not Exists")

#Exporting data into csv file

cursor=con.cursor()

cursor.execute("select * from employee")

with open("empdata.csv","w",newline='',encoding='utf-8') as csv_file:

csv_writer=csv.writer(csv_file)

csv_writer.writerow([i[0] for i in cursor.description])

csv_writer.writerows(cursor)

dirpath=os.getcwd()+"/empdata.csv"

except Exception as e:

showerror("Issue",e)

con.rollback()

finally:

if con is not None:

con.close()

dw_ent_id.delete(0,END)

#Button save

dw_btn_save=Button(delete_window,activeforeground="red",activebackground="cy
an",text="Delete",font=f,height=2,width=6,command=delete)

dw_btn_save.pack()
#Button back

dw_btn_back =
Button(delete_window,activeforeground="red",activebackground="cyan",text="Back
",font=f,height=2,width=6,command=f8)

dw_btn_back.pack(pady=y)

#to close window

delete_window.withdraw()

main_window.mainloop()
Chapter 6
Conclusion and Future Work

Conclusion:

In conclusion, the system proved to be an effective tool for managing employee data,
improving communication, and increasing transparency within the organization.
The system was well-received by employees, and it helped to streamline operations
and improve employee engagement.

Limitations:

Although the Employee Management System proved to be effective, there were


some limitations to the system. One limitation was that the system relied on admins
to input employee’s data, which could lead to errors or incomplete information.
Additionally, the system was only accessible to authorized users within the
organization, which limited its potential for collaboration with external stakeholders.

Future Work:

Looking ahead, there are several areas where the Employee Management System
could be further developed and improved. One area of focus could be on expanding
the system's functionality to include additional features such as performance
analytics, training and development tracking, and employee recognition programs.
Another potential area for future work could be to integrate the system with other
organizational systems. Finally, continued efforts should be made to ensure that the
system is user-friendly and accessible to all employees within the organization,
regardless of their technical proficiency.
Chapter 7
References

Books

1. Think Python – Allen Downey (O’Reilly)

2. Python for Everybody: Exploring Data Using Python 3 – Charles Severance

Websites

1. https://docs.python.org

2. https://www.w3schools.com

3. https://www.github.com

4. https://www.stackoverflow.com

You might also like