This will be a simple page / site that will be used internally on a private network. The project must be written in PHP. A file database (flat file database) is preferred and bids with that database style will be considered first. If not possible the next database system preferred will be MySQL
The project will be for online employee time clock / tracking system. It will be build as two sections. The Employee section and the Admin section.
Special requirements. Since this project will run on an internal system and every employee is handed a static IP. The site must recognize the employee based on the ip address the website recognizes it is coming from. The admin section must have a place where we can add an employee account and what IP address they will be using.
The employee will have no login as the website will know who the employee is based on the IP address it recognizes. The Admin section does not need any security as I will add it.
The structure should be something such as
domain.com/timeclock for the employee
domain.com/timeclock/admin for the admin
The admin will be able to add and delete employee profiles, manually enter times, delete times, add times.
The date and time should be based on the server time.
When an employee visits the site and the system recognizes the IP they will be presented with a page that has their name a button labelled "Record Time" and a link to view their time sheet. If the system does not recognize them they should get a message not authorize or forward to a notauthorize.html page.
The action of the "Record Time" will clock them in or clock them out based on the next
The time clock page structure should be broken into 2 weeks at a time.
With data table such as
date - type code - adjustments - in - out - total
The type code will determined type of punch. When an employee uses the "Record Time" button to record the in / out time the type code will be "Punched". The admin will have the ability to enter a Medical, Vacation, Absent, PTO, or Manual type code and enter an amount of time to be adjusted. The adjustment will either add or subtract time from the overall total amount.
The initial total amount will be taken by adding the time from the in and the out.
Example of how the data table should work is included in the files. Feel free to ask for any clarification.
The admin pay periods should be able to get adjusted either by a config file or in the admin. We should be able to enter the the start date and how many weeks. In case we change to a weekly, bi-monthly, or monthly pay period down the road.
The employees should have the ability to view passed record time either by a drop down menu on the same page where the "Record Time" button is located.