Skip to content

mapfeiffer/project-time-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Project time tracker

A tool to track working time on projects with role management and create project reports.

It is based on Kaido-Kit (https://github.com/siubie/kaido-kit) with Laravel & Filament and was an application test.

PHP Version Laravel Version Filament Version

✨ Features

  • Creating projects for which time can be booked ☑️

  • Booking working hours in quarter-hour increments: Always round upwards. One minute => 15 minutes. ☑️

  • Enter times in the format “Xh Ym”, where X and Y are integers ☑️

  • Entering times in machine hour format (0.25 - 1 for one hour) ☑️

  • Assigning times to days ☑️

  • Subsequent processing of bookings ☑️

  • “Month-end closing” where a summary is generated and the times are then unchangeable ☑️

  • Verification of the implementation using automated tests

  • Rights differentiation between administrators and users (users cannot perform monthly closings or delete projects) ☑️

🚀 Quick Start

Before beginning with the installation, you will need the following

  • Docker
  • Composer

Clone the repository

  • Open your terminal or command prompt
  • Navigate to the directory where you want to save the project
  • Use the git clone command followed by the repository URL
git clone https://github.com/mapfeiffer/project-time-tracker.git
cd project-time-tracker

Copy example env file to .env

cp .env.example .env 

Install composer packages

composer install

Sail build & start

./vendor/bin/sail up -d 

Login into laravel container

./vendor/bin/sail bash 

Run mpm install and build

npm install && npm run build 

Run setup. Includes creating users, roles and example data

composer setup

Create an App key

php artisan key:generate

Using

  • Go to login page (http://localhost/) and login as "admin@admin.com" with password "password".
  • Or use one of the developer accounts. ("developer1@admin.com" and "password").
  • As an administrator, you can create projects and reports.
  • As a developer, you can add time periods to projects and edit/delete them.
  • As an administrator, you can change access for any user. For example, you can give a user administrator permissions.

🧪 Testing

Run browser tests with dusk

php artisan dusk:install 
php artisan dusk 

Run PHPUnit test

php artisan test tests/Unit/CheckPeriodTraitTest.php

🧹 Code style and static code analysis

Run Laravel Pint

./vendor/bin/pint

Run PHPStan

./vendor/bin/phpstan analyse app

About

Example app for tracking project based times. It shows an easy Laravel with Filament implementation with user roles and export of time sheets.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors