Sistema completo de gestión para talleres automotrices con API backend en .NET y frontend web en HTML/CSS/JavaScript.
AutoTallerManager es una solución integral para administración de talleres mecánicos. Incluye una API REST robusta y una interfaz web moderna para gestionar citas, órdenes de servicio, productos, proveedores, facturas, cotizaciones, vehículos y usuarios.
Estructura principal:
Api/- API ASP.NET Core con controladores, filtros, middleware, autenticación JWT, Swagger y SignalR.Application/- Lógica de negocio, contratos, DTOs, servicios y mapeos.Domain/- Entidades, enums y objetos de valor del dominio.Infrastructure/- Acceso a datos, configuración de EF Core, repositorios, servicios y migraciones.Tests/- Pruebas unitarias e integración.
- Autenticación y autorización JWT.
- PostgreSQL como base de datos.
- Migraciones EF Core y semilla automática de datos.
- Swagger para documentación y pruebas de API.
- Rate limiting por rutas.
- SignalR para notificaciones en tiempo real.
- Respuesta unificada con filtros y manejo global de errores.
- .NET SDK 10
- PostgreSQL 12 o superior
- Navegador web moderno (Chrome, Firefox, Edge, Safari)
- Servidor web local (Live Server, Python, Node.js, etc.)
- Git
- Visual Studio / VS Code o editor compatible
- Clonar el repositorio:
git clone https://github.com/corredor29/AutoTallerManager_ProyectNET.git
cd AutoTallerManager_ProyectNET- Crear y configurar la base de datos PostgreSQL:
CREATE DATABASE AutoTaller;- Ajustar la cadena de conexión en
Api/appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=AutoTaller;Username=postgres;Password=TuPassword"
}- Restaurar paquetes NuGet:
dotnet restore- Compilar el proyecto:
dotnet build- Ejecutary flujo de trabajo
https://localhost:5001/swagger(o puerto configurado)
http://localhost:5500(o puerto configurado)
- JWT: revisa
Api/appsettings.jsonen la secciónJwt. Cambiar la clave en producción. - Rate limiting: revisa
Api/appsettings.jsonen la secciónRateLimiting. - CORS: la política
AllowFrontpermite orígenes locales (localhost:5500, 127.0.0.1:5500, localhost:3000). - Database: Configura la conexión a PostgreSQL en
ConnectionStrings.
- API URL: configura el endpoint de la API en
js/api.js - Autenticación: los tokens JWT se almacenan en localStorage
- Notificaciones en tiempo real: conecta con SignalR hub en
/hubs/notifications - Contraseña:
Admin123!
- Autenticación - Login y registro de usuarios
- Dashboard - Resumen de actividades
- Clientes - Gestión de clientes y contactos
- Vehículos - Registro y seguimiento de vehículos
- Citas - Programación de citas y mantenimiento
- Órdenes de servicio - Gestión de trabajos y servicios
- Partes - Inventario de repuestos
- Órdenes de compra - Solicitudes a proveedores
- Facturas - Gestión de facturas y cobros
- Cotizaciones - Presupuestos y cotizaciones
- Proveedores - Gestión de proveedores
- Usuarios - Administración de usuarios del sistema
- Auditoría - Registro de cambios del sistema
Al iniciar, el proyecto migrará automáticamente la base de datos y sembrará datos iniciales como estados, roles, métodos de pago, tipos de servicio y un usuario administrador predeterminado.
La API estará disponible en https://localhost:5001 (o el puerto configurado).
- Clonar o descargar el proyecto frontend:
git clone https://github.com/corredor29/Proyect.net-Front.git
cd Proyect.net-Front-mainApi/Controllers- endpoints HTTP RESTApi/Middleware- middleware personalizado (excepciones, logging)Api/Filters- filtros (respuesta unificada)Infrastructure/Context- contexto de EF CoreInfrastructure/Data- migraciones y seederInfrastructure/Repositories- acceso a datosApplication/Contracts- interfaces de repositorios y serviciosApplication/Services- lógica de negocioDomain/Entities- modelos de dominioDomain/ValueObjects- objetos de valor
index.html- página de loginDashboard.html- dashboard principalregister.html- registro de usuariospages/- páginas de módulos (clientes, vehículos, citas, etc.)js/api.js- cliente centralizado para llamadas a APIjs/*.js- lógica de cada módulocss/- estilos (main.css, login.css)
- Seguridad: Cambia la clave JWT, contraseña de admin y credenciales de BD en producción
- CORS: Ajusta los orígenes permitidos según el despliegue
- Variables de entorno: usa
appsettings.Production.jsonpara no exponer secretos - Notificaciones: SignalR está configurado para notificaciones en tiempo real
- Rate Limiting: está habilitado para proteger endpoints críticos
- JWT: revisa
Api/appsettings.jsonen la secciónJwt. - Rate limiting: revisa
Api/appsettings.jsonen la secciónRateLimiting. - CORS: la política
AllowFrontpermite orígenes locales comunes para desarrollo.
Para ejecutar las pruebas unitarias:
dotnet test Tests\AutoTallerManager.Tests.csproj