Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚗 VehicleService - Microservicio de Gestión de Vehículos

Status Version License

📋 Descripción

VehicleService es un microservicio para la gestión de vehículos desarrollado en .NET 9 siguiendo los principios de Clean Architecture. Este servicio está diseñado para manejar el catálogo de vehículos, información técnica, disponibilidad y operaciones relacionadas con la flota vehicular.

🛠️ Stack Tecnológico

🔧 Tecnologías Utilizadas

C# .Net ASP.NET Core OpenAPI REST API

🗄️ Base de Datos (Planificado)

Entity Framework SQL Server

🐳 DevOps (Futuro)

Docker Kubernetes

🏗️ Arquitectura

El proyecto sigue los principios de Clean Architecture y está organizado en las siguientes capas:

📁 VehicleServiceEcoF/
├── 🌐 VehicleService.API/          # Capa de presentación (REST API endpoints)
├── 🧠 VehicleService.Application/  # Lógica de aplicación y casos de uso
├── 🎯 VehicleService.Domain/       # Entidades de dominio y reglas de negocio
├── 🔧 VehicleService.Infrastructure/ # Implementaciones técnicas
└── 💾 VehicleService.Persistence/  # Acceso a datos

✨ Características Planificadas

  • 🚗 Catálogo de Vehículos: Gestión completa de información vehicular
  • 🔍 Búsqueda Avanzada: Filtros por marca, modelo, año, tipo, etc.
  • 📊 Estados de Vehículos: Disponible, en mantenimiento, alquilado, etc.
  • 🛠️ Historial de Mantenimiento: Registro de servicios y reparaciones
  • 📝 Especificaciones Técnicas: Detalles completos de cada vehículo
  • 🏷️ Categorización: Tipos de vehículo (sedán, SUV, camión, etc.)
  • 🔄 API RESTful: Endpoints claros y documentados
  • 📖 Documentación OpenAPI: Swagger integrado

📡 Endpoints API (En Desarrollo)

Gestión de Vehículos

GET    /api/vehicles          # Listar todos los vehículos
GET    /api/vehicles/{id}     # Obtener vehículo por ID
POST   /api/vehicles          # Crear nuevo vehículo
PUT    /api/vehicles/{id}     # Actualizar vehículo
DELETE /api/vehicles/{id}     # Eliminar vehículo

Búsqueda y Filtros

GET    /api/vehicles/search   # Búsqueda con filtros
GET    /api/vehicles/brands   # Listar marcas disponibles
GET    /api/vehicles/models   # Listar modelos por marca

Estados y Disponibilidad

GET    /api/vehicles/available     # Vehículos disponibles
PUT    /api/vehicles/{id}/status   # Actualizar estado
GET    /api/vehicles/maintenance   # Vehículos en mantenimiento

🚀 Inicio Rápido

Requisitos Previos

.NET 9 Visual Studio

🛠️ Desarrollo Local

  1. Clona el repositorio

    git clone https://github.com/Thetander/VehicleServiceEcoF.git
    cd VehicleServiceEcoF
  2. Restaura los paquetes NuGet

    dotnet restore
  3. Ejecuta el proyecto

    dotnet run --project src/VehicleService.API
  4. Accede a la documentación API

    HTTP:  http://localhost:5231
    HTTPS: https://localhost:7081
    OpenAPI: https://localhost:7081/openapi/v1.json
    

🧪 Testing

# Ejecutar todos los tests
dotnet test

# Con cobertura de código
dotnet test --collect:"XPlat Code Coverage"

🔧 Configuración

Configuración por Defecto

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

Puertos por Defecto

  • 5231: HTTP (desarrollo)
  • 7081: HTTPS (desarrollo)

🗄️ Modelo de Datos (Planificado)

Entidades Principales

// Vehículo principal
public class Vehicle
{
    public int Id { get; set; }
    public string Make { get; set; }      // Marca
    public string Model { get; set; }     // Modelo
    public int Year { get; set; }         // Año
    public string VIN { get; set; }       // Número de identificación
    public VehicleType Type { get; set; } // Tipo de vehículo
    public VehicleStatus Status { get; set; } // Estado actual
    // ... más propiedades
}

// Tipos de vehículo
public enum VehicleType
{
    Sedan,
    SUV,
    Truck,
    Van,
    Motorcycle,
    Bus
}

// Estados del vehículo
public enum VehicleStatus
{
    Available,
    Rented,
    Maintenance,
    OutOfService
}

📊 Roadmap

✅ Fase 1 - Fundación (Actual)

  • Estructura del proyecto Clean Architecture
  • API básica con .NET 9
  • Configuración inicial OpenAPI

🔄 Fase 2 - Core Features (En Desarrollo)

  • Implementar entidades de dominio
  • Configurar Entity Framework
  • Endpoints CRUD básicos
  • Validaciones de negocio

📋 Fase 3 - Features Avanzadas

  • Sistema de búsqueda y filtros
  • Gestión de estados
  • Historial de mantenimiento
  • Integración con AuthService

🚀 Fase 4 - Producción

  • Dockerización
  • CI/CD Pipeline
  • Monitoring y Logging
  • Documentación completa

📖 Documentación

  • OpenAPI/Swagger: Disponible en /openapi/v1.json
  • Archivo HTTP: Incluido en VehicleService.API.http para testing
  • Arquitectura: Sigue Clean Architecture principles

🛡️ Seguridad (Planificado)

  • 🔐 Integración con AuthService para autenticación
  • 🛡️ Autorización basada en roles
  • ✅ Validación de entrada en todos los endpoints
  • 🔍 Auditoría de operaciones críticas

🧪 Testing Strategy

Tipos de Test Planificados

  • Unit Tests: Lógica de dominio y aplicación
  • Integration Tests: APIs y base de datos
  • Performance Tests: Carga y rendimiento
  • Contract Tests: Interacción con otros servicios

🤝 Contribuir

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Estándares de Código

  • Seguir convenciones de C# y .NET
  • Mantener cobertura de tests > 80%
  • Documentar APIs con XML comments
  • Seguir principios SOLID

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

👨‍💻 Autor

Thetander

🔗 Servicios Relacionados

  • 🔐 AuthService: Autenticación y autorización
  • 💰 EconomyService: Gestión financiera y precios
  • 📊 ReportingService: Reportes y analíticas

📞 Soporte

Si tienes alguna pregunta o problema, por favor abre un issue en GitHub.


¡No olvides darle una estrella al proyecto si te ha sido útil!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages