2024-11-13 19:09:04 +01:00
2024-11-13 16:43:32 +01:00
2024-11-13 19:09:04 +01:00
2024-11-13 19:09:04 +01:00
2024-11-27 16:12:23 +01:00
2024-11-13 18:50:53 +01:00
2024-11-13 18:50:53 +01:00
2024-11-13 18:50:53 +01:00
2024-11-13 19:09:04 +01:00
2024-11-13 16:43:32 +01:00

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-redis for caching.
    • gorilla/websocket and gorilla/mux for WebSocket and HTTP handling.
  • Backend (Dart):
    • drift or aqueduct for ORM, redis_client for Redis integration.
    • shelf_web_socket for 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

  1. 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
Timwetracker api tool to compare both languages
Readme 179 MiB
Languages
Dart 85.7%
Go 13.8%
Dockerfile 0.3%
Shell 0.2%