This laravel application is designed to track time recorded against a project, with the project having a set amount of time available for use.
A general break down of the application components:
- A project represents a distinct group of work items, orders, and time entries.
- A project will have orders - these are the amount of hours that the project customer has authorized for use with the project.
- A project will have one or more tasks, called work items.
- Each work item will have one or more time entries recorded against it.
- There are 5 types of users:
- Super Admin - unrestricted access (no permissions checks).
- Admin - complete access.
- Read Only Admin - ready only access to everything.
- Customer - ready only access to any project assigned as the customer. They may run reports for said projects.
- Engineer - access to any project assigned as an engineer but can only track time to work items assigned to them.
- Project Manager - access to any project assigned as a project manager and can create/edit work items and time entries.
- PHP: 8.2+
- Node: 18+
- MySQL: 8+
- Clone the project
git clone https://github.com/robertdeboer/tracker.git
- Install dependencies
composer install
npm ci
- Initialize the application
cp .env.example .env
php artisan key:generate
- Build the UI
npm run build
- Create the local environment via docker
./vendor/bin/sail up -d
- Initialize the database
./vendor/bin/sail artisan migrate --force
- Initialize the system permissions
./vendor/bin/sail artisan app:permissions
You may now access the application at http://localhost
After a fresh install, you will have to register the first user. They will automatically be
registered as a Super Admin. Any other users may be added manually via
the System
-> Users
table.