The OJT Timesheet System (often referred to as OJT Timetracker) is a specialized web application designed to automate the logging, tracking, and reporting of internship hours. It replaces traditional paper-based logs with a centralized digital platform, ensuring accuracy for both students and supervisors.
- 🔐 User Authentication
Secure login for Interns and Supervisors/Admins.
- ⚙️ Time Logging Engine
Features for "Clock In" and "Clock Out" with automated duration calculation.
- 📝 Task Documentation
Mandatory "Accomplishments" field for each entry to provide context.
- 📊 Dashboard Analytics
Real-time visualization of total hours completed versus academic requirements.
- 📄 PDF/CSV Export
Generation of formal reports ready for submission.
- Backend: PHP (PDO) for secure database interactions.
- Database: MySQL for persistent storage of logs and user data.
- Infrastructure: Containerized using Docker and Docker Compose for a consistent development environment.
├── app/ │ ├── Controllers/ │ ├── Models/ # Database interactions (new) │ ├── Middleware/ # Auth checks, CSRF, etc. (new) │ └── Core/ # Router, Database class, Container ├── bootstrap/ │ └── app.php # Initializes the app (replaces some includes) ├── config/ # Database credentials and app settings (new) ├── public/ │ ├── assets/ # CSS, JS, Images │ ├── index.php # Entry point │ └── .htaccess ├── resources/ │ └── views/ # All .view.php files ├── routes/ │ └── web.php # Clean route definitions ├── storage/ # Logs and file uploads (new)
**Note on every controllers *** Index.php - should always be the landing/view page *** Show.php - view controller for the resources *** Create.php - add item/record on the db *** Destroy.php - delete item/record on the db *** Edit.php - update item/record on the db