Someone had a similar question yesterday, they were tracking player times in a game, the same principals should apply.
Basically you would need a table for employees with EmployeeID (an autoentered, unique serial number), thier name and any other info specific to each employee you would want to have. Then maybe a project table with a ProjectID field (an autoentered, unique serial number), if you want to track hours by project, and a join table between the two with the ProjectID, EmployeeID, a date (autoentered creation date), a timein and a timeout fields with a calculation field to get the elapsed time. The Employee table is related to the join table by employeeID and to the project table by projectID, select "allow creation of records via this relationship" on the join table side. When an Employee punches in he selects the project and creates a record in the join table having the EmployeeID, ProjectID and timein. Then when he punches out he enters the timeout and the elapsed time is calculated.
You can then do finds on employee and a date range to see total hours worked and what projects he worked on, or search on a project to see all the man-hours for that project and what employees did that work. How you set up your reports depends on what info you want and how you would like it displayed.
And it is possible to use this type of system with scanners that read either a magnetic strip or barcode on the employee's ID card if you choose to use such with your system.
If interested, search this forum using Barcode as the keyword and you should find several threads that discuss barcode scanners. (And the same methods work with mag stripe readers.)