docu:: fixes
This commit is contained in:
parent
9a6c66adfc
commit
8ebcfeca0b
94
README.md
94
README.md
@ -1,18 +1,16 @@
|
|||||||
# ⏰ ActaTempus - Time Tracking and Management System
|
# ⏰ ActaTempus: Time Tracking and Management System
|
||||||
|
|
||||||
## 🌟 Overview
|
## 🌟 Overview
|
||||||
|
|
||||||
**ActaTempus** is a modern, comprehensive web application designed to efficiently manage and track work hours. It features:
|
**ActaTempus** is a sophisticated web application designed for efficient work hour management and tracking. Featuring a dual backend developed in **Go** and **Dart** alongside a modern **Next.js frontend**, ActaTempus emphasizes functional programming principles and streamlined user experience.
|
||||||
- A **backend** developed in both Go and Dart, following **functional programming principles**.
|
|
||||||
- An interactive **React frontend** for an intuitive user experience.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Features (Long-Term Goals)
|
## 🚀 Features (Long-Term Goals)
|
||||||
|
|
||||||
✅ **User Management**: Registration, login, and profile updates
|
✅ **User Management**: Registration, login, profile updates
|
||||||
✅ **Time Tracking**: Start/stop tracking, manual entries, and break management
|
✅ **Time Tracking**: Start/stop tracking, manual entries, and break management
|
||||||
✅ **Project Management**: Create and manage projects
|
✅ **Project Management**: Create and manage projects, tasks, and time entries
|
||||||
✅ **Reporting**: Generate daily/weekly reports and export as PDF/CSV
|
✅ **Reporting**: Generate daily/weekly reports and export as PDF/CSV
|
||||||
✅ **Role-Based Access Control (RBAC)**: Fine-grained permission system
|
✅ **Role-Based Access Control (RBAC)**: Fine-grained permission system
|
||||||
|
|
||||||
@ -20,20 +18,20 @@
|
|||||||
|
|
||||||
## 🏗️ Architecture
|
## 🏗️ Architecture
|
||||||
|
|
||||||
This system follows **Domain-Driven Design (DDD)** and **Clean Architecture** principles to ensure a modular, maintainable, and scalable codebase.
|
ActaTempus adheres to **Domain-Driven Design (DDD)** and **Clean Architecture** principles for a scalable and maintainable codebase.
|
||||||
It is structured into **four primary layers**:
|
The system is divided into **four primary layers**:
|
||||||
|
|
||||||
1️⃣ **Domain Layer**:
|
1️⃣ **Domain Layer**:
|
||||||
- Contains contracts and interface definitions.
|
- Contracts, definitions, and interfaces only.
|
||||||
|
|
||||||
2️⃣ **Infrastructure Layer**:
|
2️⃣ **Infrastructure Layer**:
|
||||||
- Implements external sources like databases and configurations.
|
- Database and external service integrations (e.g., Prisma with PostgreSQL).
|
||||||
|
|
||||||
3️⃣ **Application Layer**:
|
3️⃣ **Application Layer**:
|
||||||
- Implements business logic and server responses.
|
- Business logic, services, and response handling.
|
||||||
|
|
||||||
4️⃣ **Interface Layer**:
|
4️⃣ **Interface Layer**:
|
||||||
- Defines the external-facing API.
|
- External communication interfaces.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -42,25 +40,25 @@ It is structured into **four primary layers**:
|
|||||||
## 🛠️ Technology Stack
|
## 🛠️ Technology Stack
|
||||||
|
|
||||||
### 🎨 Frontend:
|
### 🎨 Frontend:
|
||||||
- **React**: User Interface
|
- **Next.js**: React framework for SSR and SPA capabilities
|
||||||
- **Axios/Fetch API**: HTTP requests
|
- **Deno**: Lightweight, secure runtime for development tooling
|
||||||
- **WebSockets**: Real-time updates
|
- **Dependencies**:
|
||||||
- **Styled Components**: CSS-in-JS
|
- `fp-ts`: Functional programming in TypeScript
|
||||||
|
- `@reactivex/rxjs`: Reactive programming
|
||||||
|
- `clsx`: Conditional class handling
|
||||||
|
- `lucide-react`: Icon library
|
||||||
|
- `next-intl`: Internationalization
|
||||||
|
|
||||||
### ⚙️ Backend:
|
### ⚙️ Backend:
|
||||||
#### Go:
|
#### Go:
|
||||||
- **GORM**: ORM for PostgreSQL
|
- **Prisma-Go**: PostgreSQL ORM integration with Prisma
|
||||||
- **go-redis**: Redis integration
|
|
||||||
- **gorilla/websocket** & **mux**: WebSocket & HTTP routing
|
|
||||||
|
|
||||||
#### Dart:
|
#### Dart:
|
||||||
- **drift/aqueduct**: ORM for database access
|
- **Prisma-Dart**: PostgreSQL ORM adapter for Dart
|
||||||
- **redis_client**: Redis integration
|
|
||||||
- **shelf_web_socket**: WebSocket handling
|
|
||||||
|
|
||||||
### 📦 Databases:
|
### 📦 Database:
|
||||||
- **PostgreSQL**: Main data storage
|
- **PostgreSQL**: Primary database
|
||||||
- **Redis**: Caching and real-time updates
|
- **Prisma**: Shared ORM schema across Dart and Go backends
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -69,8 +67,8 @@ It is structured into **four primary layers**:
|
|||||||
```
|
```
|
||||||
backend-go/ # Go backend implementation
|
backend-go/ # Go backend implementation
|
||||||
backend-dart/ # Dart backend implementation
|
backend-dart/ # Dart backend implementation
|
||||||
frontend-react/ # React frontend
|
frontend-next/ # Next.js frontend
|
||||||
docs/ # Documentation and design diagrams
|
docs/ # Documentation, specs, and design diagrams
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -79,12 +77,12 @@ docs/ # Documentation and design diagrams
|
|||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
💡 All dependencies are pre-configured in the **devcontainer**. If you're setting up manually, ensure you have:
|
All dependencies are bundled with the **devcontainer**. For manual setup, ensure you have:
|
||||||
- [Docker](https://www.docker.com/)
|
- [Docker](https://www.docker.com/)
|
||||||
- Node.js (Frontend)
|
- Node.js
|
||||||
- Go (Go backend)
|
- Go
|
||||||
- Dart (Dart backend)
|
- Dart
|
||||||
- PostgreSQL and Redis
|
- PostgreSQL
|
||||||
|
|
||||||
### 🔧 Installation
|
### 🔧 Installation
|
||||||
|
|
||||||
@ -95,20 +93,23 @@ docs/ # Documentation and design diagrams
|
|||||||
```
|
```
|
||||||
|
|
||||||
2. **Use the devcontainer**:
|
2. **Use the devcontainer**:
|
||||||
Ensure the repository is on a **Unix-native file system** (e.g., WSL on Windows). Launch with Visual Studio Code:
|
Place the repository on a **Unix-native file system**.
|
||||||
|
Otherwise you will experience severe performance issues.
|
||||||
|
Launch it with Visual Studio Code:
|
||||||
```bash
|
```bash
|
||||||
code .
|
code .
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🖥️ Running the Software
|
## 🖥️ Running ActaTempus
|
||||||
|
|
||||||
### Frontend
|
### Frontend
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd frontend-react
|
cd frontend-next
|
||||||
deno run dev # Starts UI on port 3000
|
# Install dependencies (if not using devcontainer)
|
||||||
|
deno task dev # Starts the UI on port 3000
|
||||||
```
|
```
|
||||||
|
|
||||||
### Backend (Go)
|
### Backend (Go)
|
||||||
@ -129,7 +130,7 @@ dart run bin/backend_dart.dart # Starts on port 8080
|
|||||||
|
|
||||||
## 🗄️ Database Management
|
## 🗄️ Database Management
|
||||||
|
|
||||||
We use **Prisma ORM** for consistent database schema management across both backends.
|
ActaTempus uses **Prisma ORM** for database schema management and code generation across both backends.
|
||||||
|
|
||||||
### Deploy the Schema
|
### Deploy the Schema
|
||||||
|
|
||||||
@ -153,9 +154,9 @@ bunx prisma generate
|
|||||||
|
|
||||||
## 🔧 Known Issues
|
## 🔧 Known Issues
|
||||||
|
|
||||||
### 🐛 Browser Extensions Cause Hydration Issues
|
### 🐛 Browser Extensions and Hydration
|
||||||
|
|
||||||
Certain extensions (e.g., Grammarly) inject DOM attributes that cause SSR mismatches:
|
Some browser extensions (e.g., Grammarly) inject DOM attributes that cause SSR mismatches:
|
||||||
- Example: `<data-lt-installed="true">`
|
- Example: `<data-lt-installed="true">`
|
||||||
- Disable such extensions if issues occur.
|
- Disable such extensions if issues occur.
|
||||||
|
|
||||||
@ -167,18 +168,18 @@ Certain extensions (e.g., Grammarly) inject DOM attributes that cause SSR mismat
|
|||||||
|
|
||||||
### Phase 1: **Initialize**
|
### Phase 1: **Initialize**
|
||||||
- ✅ Define specifications
|
- ✅ Define specifications
|
||||||
- ✅ Initialize repository
|
- ✅ Set up repository
|
||||||
|
|
||||||
### Phase 2: **Setup**
|
### Phase 2: **Setup**
|
||||||
- ✅ Frontend (NextJS, Deno)
|
- ✅ Frontend (Next.js, Deno)
|
||||||
- ✅ Backends (Dart & Go)
|
- ✅ Backends (Dart & Go)
|
||||||
- ✅ Dev-container
|
- ✅ Devcontainer
|
||||||
|
|
||||||
### Phase 3: **MVP Development**
|
### Phase 3: **MVP Development**
|
||||||
- Build foundational backends in Go & Dart.
|
- Build foundational backends in Go & Dart
|
||||||
- Implement:
|
- Implement:
|
||||||
- ✅ Domain layer (Entities, Repositories)
|
- ✅ Domain layer (Entities, Repositories)
|
||||||
- ✅ Business logic (Services, DTOs, JWT Authentication)
|
- ✅ Application logic (Services, DTOs, JWT Authentication)
|
||||||
- ✅ Basic authorization
|
- ✅ Basic authorization
|
||||||
|
|
||||||
### Phase 4: **Web UI**
|
### Phase 4: **Web UI**
|
||||||
@ -187,11 +188,6 @@ Certain extensions (e.g., Grammarly) inject DOM attributes that cause SSR mismat
|
|||||||
- Project management
|
- Project management
|
||||||
- Reporting
|
- Reporting
|
||||||
|
|
||||||
### Future Iterations
|
|
||||||
- 📊 Report exports (Excel, PDF)
|
|
||||||
- 💳 Billing integration
|
|
||||||
- 🏢 Multi-tenant support
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🌐 Resources
|
## 🌐 Resources
|
||||||
|
Loading…
x
Reference in New Issue
Block a user