Just another boring Timesheet Django Application
Django application to keep track of working hours and paychecks
This time no ML related cool stuff but just an old good management application. The motivation for this project came from the fact that I just wanted to get rid of a bunch of Excel spreadsheets I was using to do this tasks
Business Understanding
The idea is to have a calendar representation for the working day/non working days, specific working hours type and the paychecks
I am referring to the italian legislation regarding working day/non working days and the types of working hours:
Day Types:
- Working Day — WOD
- Non Working Day — NWD
Non working days in Italy (example 2020):
- New Year’s Day (Capodanno) — 01/01/2020
- Epiphany (Epifania) — 06/01/2020
- Easter Monday (Lunedì di Pasqua) — 13/04/2020
- Liberation Day (Liberazione dal nazifascismo) — 25/04/2020
- Labour Day (Festa del lavoro) — 01/05/2020
- Republic Day (Festa della Repubblica) — 02/06/2020
- Assumption of Mary (Assunzione di Maria) — 15/08/2020
- All Saint’s Day (Ognissanti) — 01/11/2020
- Saint Ambrose Patron of Milan (Sant’Ambrogio Patrono di Milano) — 07/12/2020 (only valid for Milan)
- Immaculate Conception (Immacolata Concezione) — 08/12/2020
- Christmas Day (Natale di Gesù) — 25/12/2020
- St. Stephen’s Day (Santo Stefano) — 26/12/2020
Hours Type:
- Office Working Hours — WOH
- Extra Working Hours — EWO
- Vacation Hours — VAC
- PAR Hours — PAR
- CIGO Hours — CIG
- Mild Illness Hours — IND
- Sick Leave Hours — SIC
- Generic Permit Hours — GPH (e.g. Blood donation)
- Smart Working Hours — SMA
The paycheck is paid on a monthly base and the common working hours per day are 8 (40 working hours per week given 5 working days)
Deploy
In the application home (first picture) we have a list of already created Years and we can also Add or Delete a new Year. When creating a new year all days are initialized using the vacation days and the weekend as non working days and by setting to 8 WOH (Office Working Hour) the working days
We can also use a Massive edit feature to update massively a range of days to the same configuration. At the bottom there is a reporting section were it is possible to select the Years we want to consider and have a summary of the Day Type, Working Hours Type and Paychecks. By default the current Year is used as filter
By clicking on of the years in the list in the top of the homepage we can see a detailed view of the year in which we can change the Day Type for a given day clicking on WOD or NWD
By clicking on of the month number in the left of the Year view we can see a detailed calendar view in which we can change the composition of the Working Day by clicking on the identifier of the current hours
Outro
I hope the story was interesting and thank you for taking the time to read it. The code for this project can be found in this github repository and on my Blogspot you can find the same post in Italian. Let me know if you have any question and if you like the content that I create feel free to buy me a coffee.