IP project file
IP project file
SR NO. TOPIC
1. INTRODUCTION
2. MEANING
3. PROPOSED SYSTEM
4. PHASES OF
DEVELOPMENT
5. OBJECTIVE
6. FRONT END
7. BACK-END
8. TABLE
9. INPUT
10. OUTPUT
11. LIMITATIONS
12. CONCLUSION
1
INTRODUCTION:
Every office has employees, even from the small ones to
multi-national companies. Not a few years ago, every
records of each employee would be logged in a book. Well
not now because everyone knows how tedious of a job it
is to maintain a log on paper. To make the receptionist’s
job easier I connote a new digital platform which provides
an impetus to record keeping.
MEANING:
The main purpose of a logbook is to keep track of
employees, their departments, numbers, age and of
course their salary. The new system I bring to table skips
all the repetitious hassle and makes clocking in and out of
work easy and efficient.
PROPOSED SYSTEM:
1. Digitalizes the log keeping system.
2. Helps to shorten time required for the entry
3. Stores employee information
4. Provides an income review
5. Human error is avoided
PHASES OF SOFTWARE
DEVELPOMENT LIFE CYCLE:
Software developments projects typically include
initiation, planning design, development, testing
implementation and maintenance phases. However, the
phases may be divided differently depending on the
organization involved. For example, initial project
activities may be designed as request, requirements -
definition and planning phases or initiation or concept-
development and planning faces. End users of the system
under development should be involved in driving the
output of each face to ensure the system is being built to
deliver the needed functionality.
OBJECTIVES:
The objective of this project is to replace the old updated
record keeping system with the new computerized
approach which seeks to help us in the following ways:
1. As the system is digitalized it makes data entry quick.
2. We can store employee information for future
reference.
3. As it stores the entries in the database it is not miss
place or miss match them.
4. The program also provides a visualize income review of
the employee in the form of a bar graph.
BACK-END DESIGN:
The back and refers to parts of a computer application or
a program’s code that allows it to operate but cannot be
accessed by a user. In the computer world the back end
refers to any part of a website or software program that a
user cannot see. This part is not at all recognized by the
user but it is the most important one. If the coding is not
done right the entire software slows down and glitches.
Most data and operating Syntax are restored and exist in
the back end of a computer csv which is used as a
database. Amazon is a good example of back and
development in action. You go on Amazon and search for
a new shirt. A back-end developer uses server-side
language to pull all the information about shirts from a
database that information is the process in an application
and return to the user through front end language.
TABLE
INPUT
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("C:\\Users\Documents\Book1.csv", index_col= 0 )
print(df)
def min_salary() :
print("The minimum salary awarded by us is :- ",
df.empSalary.min())
def spec_no_rows() :
noRows = int(input("How many rows would you like to skip from
the top? : ")) + 1
specdf = pd.read_csv("C:\\Users\Documents\Book1.csv", skiprows
= noRows, header=None)
print(specdf)
def max_age() :
print("Our oldest employee is :- ", df.empAge.max(), " years old")
def min_age() :
print("Our youngest employee is :- ", df.empAge.min(), "years old")
def view_column() :
columnLabel = input("Name of column from left you would like to
view : ")
print(df.loc[:,columnLabel])
def view_columnrange() :
firstColumn = input("Name of first column you would like to see : ")
secondColumn = input("Name of last column you would like to see :
")
print(df[:, firstColumn:secondColumn])
def view_row() :
rowLabel = input("Name of row from top you would like to view : ")
print(df.loc[rowLabel, :])
def view_rowrange() :
firstRow = input("Name of first row you would like to see : ")
secondRow = input("Name of last row you would like to see : ")
print(df[firstRow:secondRow, : ])
def transpose() :
print(df.T)
def size() :
print(df.size)
def columns() :
print(list(df.columns))
def shape() :
print(df.shape)
def index() :
print(list(df.index))
def minmax_x() :
x = int(input('''Of what would would you like to see max/min of
>>>>1 for salary
>>>>2 for age : '''))
minmax = int(input("1 For max and 2 for min : "))
if minmax == 1 :
if x == 1 :
max_salary()
elif x == 2 :
max_age()
else :
print("Invalid number")
elif minmax == 2 :
if x == 1 :
min_salary()
elif x == 2 :
min_age()
else :
print("Invalid number")
else :
print("Invalid number")
def view_x() :
x = int(input('''What would you like to view?
>>>>1 for row
>>>>2 for column : '''))
if x == 1 :
howMany = int(input('''1 for singular
2 for range
3 for from top how many to skip : '''))
if howMany == 1 :
view_row()
elif howMany == 2 :
view_rowrange()
elif howMany == 3 :
spec_no_rows()
else :
print("Invalid Number")
if x == 2 :
howMany = int(input("1 for singular , 2 for range : "))
if howMany == 1 :
view_column()
elif howMany == 2 :
view_columnrange()
else :
print("Invalid Number")
def table_details() :
x = int(input('''What table details would you like to see?
>>>>1 for size
>>>>2 for shape
>>>>3 for column labels
>>>>4 for index labels: '''))
if x == 1 :
size()
elif x == 2 :
shape()
elif x == 3 :
columns()
elif x == 4 :
index()
else :
print("Invalid number")
#Saving to table
def add_data() :
axis = int(input("1 to add new row, 2 to add new column : "))
if axis == 1 :
rowEmpCode = input("Code of employee : ")
rowEmpName = input("Name of employee : ")
rowEmpLastName = input("Last Name of employee : ")
rowEmpAge = int(input("Age of employee : "))
rowEmpPackage = int(input("Salary of employee : "))
rowEmpData = [rowEmpName, rowEmpLastName, rowEmpAge,
rowEmpPackage]
df.loc[rowEmpCode] = rowEmpData
df.to_csv("C:\\Users\Documents\Book1.csv", index=True)
elif axis == 2 :
columnLabel = input("Name for you new column : ")
columnData = list(input("Data for new column : "))
df.assign(columnLabel=columnData)
df.to_csv("C:\\Users\Documents\Book1.csv", index=True)
else :
print("Invalid Number")
def del_data() :
axis = int(input("1 for row, 2 for column : "))
if axis == 1 :
codeRow = int(input("Code of employee : "))
df.drop(codeRow)
elif axis == 2 :
colLabel = input("Name of column you would like to drop : ")
df.drop(colLabel, axis=1)
def new_emp_age() :
empCode = int(input("Code of employee you would like to change:
"))
newEmpAge = int(input("New code for employee : "))
df.loc[empCode, 'empAge'] = newEmpAge
def new_emp_name() :
empCode = int(input("Code of employee you would like to change:
"))
newEmpName = int(input("New name of employee : "))
df.loc[empCode, 'empName'] = newEmpName
def new_emp_lastname() :
empCode = int(input("Code of employee you would like to change:
"))
newEmpLastName = int(input("New last name of employee : "))
df.loc[empCode, 'empLastName'] = newEmpLastName
def new_emp_salary() :
empCode = int(input("Code of employee you would like to change:
"))
newEmpSalary = int(input("New Salary for employee : "))
df.loc[empCode, 'empSalary'] = newEmpSalary
def new_emp_code() :
oldEmpCode = int(input("Code of employee you want to change : "))
newEmpCode = int(input("New Code of employee : "))
x = list(df.index)
a = [newEmpCode if i == oldEmpCode else i for i in x]
df.index = a
df.index.name = "empCode"
def mod_data() :
x = int(input('''What data would you like to change? :
>>>>1 for code of employee
>>>>2 for name of employee
>>>>3 for last name of employee
>>>>4 for age of employee
>>>>5 for salary of employee : '''))
if x == 1 :
new_emp_code()
elif x == 2 :
new_emp_name()
elif x == 3 :
new_emp_lastname()
elif x == 4 :
new_emp_age()
elif x == 5 :
new_emp_salary()
else :
print("Invalid Number")
def savetable() :
df.to_csv("C:\\Users\Documents\Book1.csv", index=True)
#Plotting graphs
def bar_codevssalary() :
plt.bar(list(df.index), df.empSalary)
plt.show()
def hbar_codevssalary() :
plt.barh(list(df.index), df.empSalary)
plt.show()
def bar_namevssalary() :
plt.bar(df.empName, df.empSalary)
plt.show()
def hbar_namevssalary():
plt.barh(df.empName, df.empSalary)
plt.show()
def bar_lastnamevssalary() :
plt.bar(df.empLastName, df.empSalary)
plt.show()
def hbar_lastnamevssalary() :
plt.barh(df.empLastName, df.empSalary)
plt.show()
def bar_agevssalary() :
plt.bar(df.empAge, df.empSalary)
plt.show()
def hbar_agevssalary() :
plt.barh(df.empAge, df.empSalary)
plt.show()
def bar() :
chBar = int(input("What would you like as your x axis? 1 for code, 2
for name, 3 for last name, 4 for age: "))
chBaro = int(input("1 for vertical,2 for horizontal : "))
if chBar == 1 and chBaro == 1:
bar_codevssalary()
elif chBar == 1 and chBaro == 2 :
hbar_codevssalary()
elif chBar == 2 and chBaro == 1 :
bar_namevssalary()
elif chBar == 2 and chBaro == 2 :
hbar_namevssalary()
elif chBar == 3 and chBaro == 1 :
bar_lastnamevssalary()
elif chBar == 3 and chBaro == 2 :
hbar_lastnamevssalary()
elif chBar == 4 and chBaro == 1 :
bar_agevssalary()
elif chBar == 4 and chBaro == 2 :
hbar_agevssalary()
else :
print("Invalid Entry")
def line_codevssalary() :
plt.plot(list(df.index), df.empSalary)
plt.show()
def line_namevssalary() :
plt.plot(df.empName, df.empSalary)
plt.show()
def line_lastnamevssalary() :
plt.plot(df.empLastName, df.empSalary)
plt.show()
def line_agevssalary() :
plt.plot(df.empAge, df.empSalary)
plt.show()
def line() :
chline = int(input("What would you like as your x axis? 1 for code, 2
for name, 3 for last name, 4 for age: "))
if chline == 1 :
line_codevssalary()
elif chline == 2 :
line_namevssalary()
elif chline == 3 :
line_lastnamevssalary()
elif chline == 4 :
line_agevssalary()
else :
print("Invalid Entry")
while True:
print("Employee Management System")
chMain = int(input('''Press 1 To customize the reading of the table
2 to edit the table
3 to get graphs based on the table
4 to save table
5 to exit: '''))
if chMain == 1 :
chRead = int(input('''Press 1 to see max or min
2 to view row(s) or column(s)
3 to transpose
4 for table details: '''))
if chRead == 1 :
minmax_x()
elif chRead == 2 :
view_x()
elif chRead == 3 :
transpose()
elif chRead == 4 :
table_details()
else :
print("Invalid Number")
elif chMain == 2 :
chEdit = int(input('''Press 1 to save table
2 to add new data
3 to delete data
4 to modify data: '''))
if chEdit == 1 :
savetable()
elif chEdit == 2 :
add_data()
elif chEdit == 3 :
del_data()
elif chEdit == 4 :
mod_data()
else :
print("Invalid Number")
elif chMain == 3 :
chGraph = int(input('''What graph would you like to see?
>>>>1 for bar
>>>>2 for line : '''))
if chGraph == 1 :
bar()
elif chGraph == 2 :
line()
else :
print("Invalid Entry")
elif chMain == 4 :
savetable()
elif chMain == 5 :
break
else :
print("Invalid Entry")
OUTPUT
LIMITATIONS:
Although my program has many perks,
unfortunately it also has a few down sides
such as:
• It needs more customization to full fill the
need of every office.
• Since it is computerized, it is easily
hackable.
• The employee personal data can be late and
be used for phishing attacks.
CONCLUSION:
This new and improved yet imperfect digital
system we can completely restructure the
current out on employee management system
.it will not only help us in speeding up the
process but will also reduce the workload and
the tedious process of Record Keeping of
countless employees in every office.