Logo Lanfrica

fistonuzabumwana/tekeraheza-backend

Domaine:

digital infrastructure

Type de record:

software
Créateur:
fis
Hôte:
Digital Management System for LPG Gas Distribution in Rwanda # Tekeraheza Digital Management System - Backend The core processing engine for the Tekeraheza LPG Gas Distribution Management System. Built with Spring Boot 3.2.1, this backend provides a robust, secure, and scalable REST API for managing gas distribution operations in Rwanda. ## 🚀 Key Features * **Secure Authentication**: JWT-based auth with support for standard login, Google OAuth2, and Two-Factor Authentication (Email OTP & Authenticator App). * **Role-Based Access Control (RBAC)**: Fine-grained permissions for ADMIN, MANAGER, STAFF, DELIVERY_PERSONNEL, and CUSTOMER roles. * **Order Lifecycle Management**: Full tracking from pending to confirmed, processing, out-for-delivery, and completed. * **Inventory & Stock Tracking**: Real-time management of LPG cylinders (by size/brand), warehouses, and automated low-stock alerts. * **Delivery Coordination**: Integration for route assignment and status tracking for delivery personnel. * **Comprehensive Reporting**: Generate and export reports in PDF and Excel formats (Apache POI & OpenPDF). * **Notification Engine**: Multi-channel notifications via Email (Thymeleaf templates) and in-app alerts. * **GraphQL Support**: Enhanced querying capabilities for specific data modules. ## 🛠️ Technology Stack * **Framework**: Spring Boot 3.2.1 * **Language**: Java 17 * **Database**: PostgreSQL (Persistence), H2 (Testing) * **Migration**: Flyway * **Security**: Spring Security + JJWT (0.12.3) * **API Documentation**: SpringDoc OpenAPI / Swagger UI * **Mapping**: MapStruct 1.5.5 * **Utilities**: Lombok, Apache POI ## 🏗️ Getting Started ### Prerequisites * JDK 17 or higher * Maven 3.6+ * PostgreSQL 14+ ### Setup 1. **Clone the repository** 2. **Configure Environment**: Update `src/main/resources/application.yml` with your database credentials and API keys. ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/tekeraheza username: your …