Time Tracking and Management System
Overview
The Time Tracking and Management System is a comprehensive web application designed to manage and track work hours efficiently. The system showcases a backend developed in both Go and Dart with functional programming principles, and a React frontend to provide an interactive user experience.
Features
- User management: Registration, login, profile updates.
- Time tracking: Start/stop time tracking, manual entry, break management.
- Project management: Create and manage projects.
- Reporting: Generate daily/weekly reports and export as PDF/CSV.
- Real-time updates using WebSockets.
- Role-based access control (RBAC) with a permission system.
Architecture
The project follows Domain-Driven Design (DDD) and Clean Architecture principles to ensure a modular, maintainable, and scalable codebase. The system is structured into well-defined layers with separation of concerns.
Technology Stack
- Frontend: React, Axios/Fetch API, WebSockets, Styled Components.
- Backend (Go):
- GORM for ORM, go-redisfor caching.
- gorilla/websocketand- gorilla/muxfor WebSocket and HTTP handling.
 
- GORM for ORM, 
- Backend (Dart):
- driftor- aqueductfor ORM,- redis_clientfor Redis integration.
- shelf_web_socketfor WebSocket handling.
 
- Databases: PostgreSQL for primary data storage, Redis for caching and real-time updates.
Directory Structure
- backend-go/: Go backend implementation.
- backend-dart/: Dart backend implementation.
- frontend-react/: React frontend implementation.
- docs/: Documentation files, including LaTeX source for specifications and design diagrams.
Getting Started
Prerequisites
- Node.js (for the React frontend)
- Go (for the Go backend)
- Dart (for the Dart backend)
- PostgreSQL and Redis servers
Installation
- Clone the repository:
git clone https://inf-git.th-rosenheim.de/studavrije7683/ws24-kp-avril.git cd ws24-kp-avril
Requirements
- PNPM: npm install -g pnpm
Description
				
					Languages
				
				
								
								
									Dart
								
								85.7%
							
						
							
								
								
									Go
								
								13.8%
							
						
							
								
								
									Dockerfile
								
								0.3%
							
						
							
								
								
									Shell
								
								0.2%