A modern web application built for small teams, freelancers and start-ups to efficiently track time, manage projects, and gain valuable insights into their work patterns. Built with Laravel, Inertia.js, Svelte, and PostgreSQL.
- Overview
- Features
- Technical Architecture
- Requirements
- Getting Started
- Usage Guide
- Project Structure
- Contributing
- License
This application streamlines time tracking through an intuitive clock-in/clock-out system. Users can:
- Track daily and weekly working hours with precision
- Associate time sessions with specific projects or administrative tasks
- Generate comprehensive reports for time analysis
- Break down work sessions into specific activities (optional)
The system separates time logs from activity breakdowns, allowing users to record their work sessions while maintaining the flexibility to allocate time to specific tasks later.
- Secure authentication system
- Role-based access control (Admin/Employer/Freelancer/Employee)
- Create and manage multiple projects
- Organize tasks within projects
- Handle standalone administrative tasks
- Track project-specific time and budget allocations
- Intuitive clock in/out interface
- Automatic session duration calculation
- Project-specific or task-specific time logging
- Activity breakdown options
- Daily and weekly time summaries
- Project-based time analysis
- Custom date range filtering
- Detailed activity breakdowns
- Visual data representations
- Backend: Laravel 11+
- Frontend: Svelte 5
- Middleware: Inertia.js 2.0
- Database: PostgreSQL 17
- Authentication: Laravel Breeze
- Clone the repository:
git clone https://github.com/EmilienKopp/qadran.git
cd qadran
- Install dependencies:
composer install
npm install # or pnpm install
- Configure environment:
cp .env.example .env
php artisan key:generate
docker compose up
- Update
.env
with your PostgreSQL credentials:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=54329
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
- Set up the database:
php artisan migrate
php artisan db:seed # Optional: adds demo data
npm run start
- Start the Laravel server:
php artisan serve
- Compile frontend assets:
npm run dev
- Start db server:
docker compose up
-
Project Selection
- Choose a project from your dashboard
- Use "Admin" for general tasks
-
Clock Operations
- Click "Clock In" to start a session
- Work on your tasks
- "Clock Out" when finished or switching projects
-
Activity Breakdown (Optional)
- Split completed sessions into specific activities
- Tag activities with relevant task IDs
- Add notes or descriptions
-
Access the dashboard for:
- Daily/weekly hour summaries
- Project-specific time allocation
- Activity breakdowns
-
Generate custom reports:
- Filter by date range
- Select specific projects
- Export data in various formats
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your PR:
- Follows the existing code style
- Includes appropriate tests
- Updates documentation as needed
- Describes the changes in detail
See the LICENSE file for details.
For additional support or questions, please open an issue in the repository.