Skip to main content

Welcome to SGIVU

SGIVU is a cloud-native vehicle inventory management SaaS platform designed for automotive dealerships and vehicle sales businesses. Built on a modern microservices architecture, SGIVU provides comprehensive tools for managing vehicles, clients, purchases, sales, and leveraging machine learning for intelligent business insights.

What is SGIVU?

SGIVU (Sistema de Gestión de Inventario de Vehículos Unidos) is an enterprise-grade platform that centralizes all aspects of vehicle inventory operations:
  • Vehicle Management: Complete catalog management for cars and motorcycles with advanced search, status tracking, and image management via AWS S3
  • Client Management: Unified management of individual and corporate clients with detailed profiles and transaction history
  • Purchase & Sales Contracts: End-to-end contract lifecycle management with reporting capabilities (PDF, Excel, CSV)
  • User & Role Management: Granular permission system with OAuth 2.1/OIDC authentication
  • Machine Learning: Predictive analytics for demand forecasting and business intelligence
  • Multi-tenant Ready: Designed for scalability with centralized configuration and service discovery

Who is SGIVU For?

Auto Dealerships

Manage inventory across multiple locations with real-time tracking and intelligent demand forecasting

Vehicle Sales Businesses

Streamline purchase and sales operations with automated contract generation and reporting

Fleet Managers

Track vehicle status, maintenance schedules, and optimize fleet utilization

Enterprise Organizations

Scale operations with microservices architecture and centralized authentication

Key Capabilities

Authentication & Security

  • OAuth 2.1 / OpenID Connect implementation with JWT tokens
  • BFF (Backend for Frontend) pattern via API Gateway
  • Granular role-based access control with custom permissions
  • Session management with Redis for horizontal scalability
  • Service-to-service authentication for internal communication

Architecture Highlights

SGIVU follows cloud-native best practices with:
  • Spring Boot 4.0.1 & Java 21 for backend services
  • Angular 21 for the frontend SPA
  • FastAPI & Python 3.12 for ML services
  • PostgreSQL for data persistence
  • Redis for session storage
  • Docker & Docker Compose for containerization

Observability

  • Health checks via Spring Boot Actuator
  • Distributed tracing with Zipkin
  • Metrics collection with Micrometer
  • Centralized logging for troubleshooting

Technology Stack

Frontend:
  • Angular 21, TypeScript
  • Bootstrap 5, Chart.js
  • RxJS for reactive programming
Backend:
  • Spring Boot 4.0.1, Spring Cloud
  • Spring Security (OAuth2/OIDC)
  • Spring Data JPA
  • Flyway (database migrations)
Machine Learning:
  • FastAPI, Uvicorn
  • scikit-learn, XGBoost
  • pandas, numpy
Infrastructure:
  • Docker, Docker Compose
  • Nginx reverse proxy
  • AWS (S3, EC2/ECS/EKS, RDS, ALB)
  • Redis 7
Observability:
  • Spring Boot Actuator
  • Micrometer, Zipkin
  • Health checks & metrics

Quick Start

1

Clone the Repository

git clone https://github.com/stevenrq/sgivu.git
cd sgivu
2

Set Up Environment Variables

cp infra/compose/sgivu-docker-compose/.env.example .env
# Edit .env with your configuration
3

Launch the Complete Stack

cd infra/compose/sgivu-docker-compose
./run.bash --dev
4

Access the Application

The development environment uses Docker Compose with mounted volumes for hot-reloading during development.

Main Endpoints

ServicePortEndpointDescription
Frontend4200http://localhost:4200Angular SPA
Gateway8080http://localhost:8080API Gateway (BFF)
Auth9000http://localhost:9000OAuth2/OIDC Server
Config8888http://localhost:8888Centralized Configuration
Discovery8761http://localhost:8761Eureka Service Registry
ML8000http://localhost:8000Machine Learning API
Zipkin9411http://localhost:9411Distributed Tracing (optional)

Next Steps

Architecture

Dive deep into the microservices architecture and communication patterns

Features

Explore comprehensive feature documentation
Security Notice: Default credentials and secrets are provided for development only. Never use default secrets in production environments. Move all secrets to a secret manager (AWS Secrets Manager, HashiCorp Vault, etc.).

Build docs developers (and LLMs) love