Project Description

The Fuel Pass System is a microservices-based application designed to streamline and manage fuel distribution efficiently across various fuel stations. The system includes multiple integrated services such as vehicle registration, fuel quotas, fuel station management, and notifications. Built with Spring Boot, PostgreSQL, and Docker, this application provides a modular approach, allowing each service to operate independently within a microservices architecture.

Project Architecture

The project utilizes a range of Spring Boot services, each dedicated to a specific functionality, including:

  1. API Gateway - A centralized service to handle and route requests, ensuring secure and efficient access to all services.
  2. Vehicle Service - Manages vehicle registration and verification by integrating with the Motor Traffic Department, with data stored in a dedicated PostgreSQL database.
  3. Fuel Station Service - Allows fuel stations to register and manage fuel stocks, verifying stations with the Motor Traffic Department before approval.
  4. Fuel Quota Service - Sets and updates fuel quotas for vehicles based on availability, accessible only by the Fuel Station Service to prevent unauthorized access.
  5. Notification Service - Sends notifications (email and SMS) to users, leveraging JavaMailSender and Twilio integration for communication.
  6. Admin Service - Monitors data changes, generates reports, and provides administrative capabilities for oversight.

Key Features

  • Microservices Architecture: Each service operates independently, simplifying scaling, maintenance, and deployment.
  • Eureka Discovery Service: Enables service discovery, allowing dynamic routing between services for efficient communication.
  • Dockerized Deployment: All services and databases are containerized with Docker, making the system easy to deploy, scale, and manage in any environment.
  • Centralized Configuration Management: Configurations for all services are managed through a dedicated configuration server.
  • Tracing and Monitoring: Using Zipkin and Micrometer, the system provides end-to-end tracing and monitoring, helping detect and resolve issues quickly.

Technology Stack

  • Backend: Spring Boot, Java 21
  • Database: PostgreSQL, each service has a dedicated database instance to ensure data security and integrity.
  • Configuration and Discovery: Spring Cloud Config, Eureka Discovery Service
  • Tracing and Monitoring: Zipkin, Micrometer for distributed tracing
  • Containerization: Docker for scalable, isolated deployment across all services

Use Case

The Fuel Pass System is designed to enhance the efficiency of fuel distribution by managing fuel quotas for registered vehicles, facilitating fuel station registrations, and notifying users of important updates. The API Gateway serves as a secure entry point for users, while internal services ensure that data integrity and service performance remain high. This system is ideal for government bodies or organizations managing large-scale fuel distributions and quotas.

Github Repo