# General Overview

## Technology Stack

### Backend
- Go with fp-go
- PostgreSQL with ORM (GORM or Bun)
- Swagger/OpenAPI
- JWT-based Authentication

### Frontend
- Next.js with fp-ts
- React and Tailwind CSS
- Responsive Webdesign
- Progressive Web App (PWA)

## Multi-Tenancy & Roles
- **Multi-Tenancy**: Isolation of data per company (tenant).
- **Roles**: Admin, Company-Admin, Manager, Auditor, User.

## Data Models
- **Company** (Tenant)
- **User** (with roles, hourly rate)
- **Customer**
- **Project** (with customer reference)
- **Activity** (billing rate)
- **Booking** (time, user, project, activity, optional description, billability 0-100%)

## Functional Requirements
### Version 1
- Master data management (customers, projects, activities, users)
- Time tracking with start/stop function and parameter inheritance from the last booking
- Clear dashboard with recent bookings and tracker
- Aggregated reports by period, project, customer, employee with PDF export
- Graphical dashboards (diagrams)

### Version 2
- Project management with sprints, tasks
- Kanban boards for task management
- Direct linking of tasks with time bookings
