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.