docu: added information on architecture and progress

This commit is contained in:
Jean Jacques Avril 2025-01-04 19:07:52 +00:00
parent 01a603b8d4
commit f25815e617
No known key found for this signature in database
2 changed files with 58 additions and 2 deletions

View File

@ -7,7 +7,7 @@ designed to manage and track work hours efficiently. The system showcases a
backend developed in both Go and Dart with functional programming principles, backend developed in both Go and Dart with functional programming principles,
and a React frontend to provide an interactive user experience. and a React frontend to provide an interactive user experience.
## Features ## Features (longterm Goal)
- User management: Registration, login, profile updates. - User management: Registration, login, profile updates.
- Time tracking: Start/stop time tracking, manual entry, break management. - Time tracking: Start/stop time tracking, manual entry, break management.
@ -21,6 +21,13 @@ and a React frontend to provide an interactive user experience.
The project follows Domain-Driven Design (DDD) and Clean Architecture principles The project follows Domain-Driven Design (DDD) and Clean Architecture principles
to ensure a modular, maintainable, and scalable codebase. The system is to ensure a modular, maintainable, and scalable codebase. The system is
structured into well-defined layers with separation of concerns. structured into well-defined layers with separation of concerns.
The backend logic is divided in four primary layers:
1. Domain-Layer: This layer contains only interfaces and definitions. Objects within can be regarded as contracts.
2. Infrastructure-Layer: This layer contains implementations that rely on external sourcs. (e.g. database, configuration files)
3. Application-Layer: All businesslogic is implemented within the application layer. This Layer defines how the applogic behaves and how the server responds.
4. Interface-Layer: Analogous to the Infrastructure-Layer, this Layer defines the external interface of the application.
![alt text](docs/media/architecture.png)
### Technology Stack ### Technology Stack
@ -34,7 +41,7 @@ structured into well-defined layers with separation of concerns.
- **Databases**: PostgreSQL for primary data storage, Redis for caching and - **Databases**: PostgreSQL for primary data storage, Redis for caching and
real-time updates. real-time updates.
## Directory Structure ### Directory Structure
- `backend-go/`: Go backend implementation. - `backend-go/`: Go backend implementation.
- `backend-dart/`: Dart backend implementation. - `backend-dart/`: Dart backend implementation.
@ -45,6 +52,7 @@ structured into well-defined layers with separation of concerns.
## Getting Started ## Getting Started
### Prerequisites ### Prerequisites
All prerequistes are already bundled with the devcontainer
- Node.js (for the React frontend) - Node.js (for the React frontend)
- Go (for the Go backend) - Go (for the Go backend)
@ -131,6 +139,54 @@ attribute was injected in the dom `data-lt-installed="true"`
![alt text](docs/media/image.png) ![alt text](docs/media/image.png)
## Roadmap
1. Phase: Initialize
- Definition with Spec
- Initialize Repository
2. Phase: Initial Setup
- Frontend with NextJS and Deno
- Backend
- Dart
- Go
- Dev-Container
3. Phase: Implement backends (first Iteration)
Goal: Implement working MVPs in GO and Dart to showoff functional programming in both languages
- Frontend foundation (basic setup, not connected to backend)
- Backend foundation
- Dart
- Go
- Domain
- Entities
- Repositories
- DataSources
- Application (Business Logic)
- Services (Endpoints)
- DTOs
- Authentication with JWT Token
- Simple Authorization
- Dart Testing
- Rpository Tests
- API Handler Tests
progress is currently here
3. Phase: Web UI (second Iteration)
- Introduce Permission System
- Reporting for TimeEntries (with MapReduce...)
- Frontend
- Timetracker
- Manage Projects
- Manage TimeEntries
- Manage Tasks
- View Reports
Ideas for Advanced Features and further Iterations
- Exports (Excel, PDF)
- Maybe Billing
- Multitennant
## Resources ## Resources
### Zen of Go ### Zen of Go

BIN
docs/media/architecture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB