A comprehensive HR employee management and timekeeping system. Digitize timesheets, handle time-off requests, and automate standard onboarding procedures.
Abbreviated list of functionality:
- Employee management
- Linked employee accounts
- Track clock-in/clock-out times
- Finalize timesheets with automated notifications
- Manage leave/time-off requests
Coming Soon:
- Automate onboarding procedures with push notifications of hired/terminated employees
- Pre-built reports and employee insights
- Company/department closures and scheduling with notifications
- Supervisor/Department tracking
Install both Composer and NPM dependencies.
composer install
npm install
Create a copy of the .env.example
file and rename it to .env
. Update the database credentials and application key.
cp .env.example .env
Run the database migrations and seeder.
php artisan migrate --seed
php artisan run:factories # Optional: Seed the database with dummy data
php artisan cache:clear # Clear the temporary DB cache
Build frontend the assets
npm run dev
Run the backend service
php artisan serve
Open your browser and navigate to http://localhost:8000. You can log in with the following credentials (default):
- Email:
[email protected]
- Password:
password
- App Settings and Controls
- Navigation search bar (e.g. Employees, Timesheets, ...)
- Create a user account for a employee
- Department assignments
- Supervisor tracking (e.g. Joan reports to Barry)
- Internal comments / Notes
- Profile picture display
- PTO cap and limit tracking
- General profile editing
- Employee Communication (e.g. Timesheets, Free form emails, PTO Rejections)
- Time-Off Tracking / Requests
- Editing timesheet options (e.g. Period/Pay type)
- Time card tracking
- Time unit calculation by Day/Hours (including 1/4, 1/2, 3/4 days)
- Exporting (PDF/Email)
- Report Center
- Statistics/Graphs on pages
- Employee Statistics
- Overview Statistics
- Block a user from logging in if their associated employee is not active
- Heavy query caching (i.e. employees, timesheets)
- Fix factories for tables with unique constraints (Timesheets, Timesheet Days)
- Implement lang file for long/duplicated messages
- When employees are terminated, reject all open PTO requests
- PHP 8+
- Laravel 9.X+
- MySQL
- Bootstrap 5.X+