docu: added information on architecture and progress
This commit is contained in:
parent
01a603b8d4
commit
f25815e617
60
README.md
60
README.md
@ -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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### 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"`
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
## 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
BIN
docs/media/architecture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
Loading…
x
Reference in New Issue
Block a user