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
- Client-side voice commands for quick navigation
- Hands-free browsing experience
- Commands for page navigation, scrolling, and voice assistant control
- Keyboard shortcut: Ctrl/Cmd + Shift + C
- Support for natural language patterns
- 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
.envwith 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 datanpm 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
The application includes client-side voice commands for hands-free navigation and control. These commands use the Web Speech Recognition API and work entirely in the browser without requiring server communication.
- Button: Click the "Voice Command" button in the Voice Assistant widget (bottom-right corner)
- Keyboard: Press
Ctrl + Shift + C(orCmd + Shift + Con Mac) - Speech: Say "help" to see all available commands
Navigation Commands:
- "go to projects" / "open projects"
- "go to organizations" / "open organizations"
- "go to rates" / "open rates"
- "go to reports" / "open reports"
- "go to settings" / "open settings"
- "go to profile" / "my profile"
Browser Navigation:
- "go back" / "back"
- "go forward" / "forward"
- "refresh" / "reload page"
Scrolling:
- "scroll down" / "page down"
- "scroll up" / "page up"
- "scroll to top" / "go to top"
- "scroll to bottom" / "go to bottom"
Voice Assistant Control:
- "start voice listening" / "enable voice"
- "stop voice listening" / "disable voice"
Help:
- "help" / "show commands" - Display all available voice commands
Voice commands require a modern browser with Web Speech Recognition API support:
- Google Chrome (recommended)
- Microsoft Edge
- Safari (partial support)
- Firefox (limited support)
If your browser doesn't support voice commands, the feature will be hidden automatically.
- 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.