Trekker System

GPS tracking system.


1 Technical Design

  • Purpose: Explains the design implementation of the layers.
  • Contents:
  • System layers designs. (Shared and Not shared)
  • API specifications (including endpoints, payloads, and authentication).

1.1 System Architecture

  • Purpose: Provides an overview of the system’s architecture.
  • Contents:
  • High-level diagram of the system architecture.
  • Description of system layers, and their interactions.

1.2 Deployment and Infrastructure

  • Purpose: Describes how to deploy and maintain the system.
  • Contents:
  • Deployment scripts and instructions.
  • Details of the hosting environment (e.g., servers, cloud infrastructure).
  • Configuration management tools and processes using Ansible.
  • Network and URL settings using Traefik.
  • Backup and disaster recovery procedures.

1.3 Operations and Maintenance

  • Purpose: Provides guidance for maintaining and troubleshooting the system.
  • Contents:
  • System monitoring and alerting setup (e.g., Grafana, Prometheus).
  • Logs management and analysis.
  • Common issues and troubleshooting steps.
  • Upgrade and patching procedures.

2. User Documentation

  • Purpose: Provides guidance to end-users or administrators.
  • Contents:
  • User guides and manuals for software interfaces.
  • Workflow diagrams and how-to guides.
  • Role-based access and permissions setup.

Components

  • Portal: Management portal for onboarding and deactivate project/client.
  • Contact Tracing: Tracks interactions for health or security purposes.
  • SnapManhour (Deprecated): Generate ManhourSnapshot records from HeadcountSnapshot every 6 hours.
  • CouchDB: Tenant-specific NoSQL database for document storage.
  • Trekker Application: The primary client-facing application.
  • Mariadb Schema: Main storage of raw GPS data from Trekker application.
  • Keycloak Realm: Isolates system users, which can include attributes like roles, credentials, and permissions
  • Snapheadcount: Shared headcount management service written in Go.
  • Georest: Provides location-based data services, including APIs for positions and geofences, implemented in Go.
  • Cloud Config: Centralized configuration management service.
  • Trekker WebUI: Shared user interface for managing Trekker services, developed in Go.
  • Keycloak: Identity and access management system for authentication and authorization.
  • NATS MQ/Streaming: High-performance message queue and streaming system for inter-service communication.
  • MariaDB: A shared database service that supports multiple tenants, possibly configured for master-master replication.
  • TrekkerTree: A hierarchical data management service for structuring resources and relationships.
  • Docker: Containerization platform for deploying and managing services.
  • Traefik: Reverse proxy and load balancer for routing tenant and service-specific traffic.
  • Grafana + Prometheus: Monitoring and visualization tools for observing system performance and generating alerts.