Compare commits
2 Commits
890da06f71
...
c6352e1e39
| Author | SHA1 | Date | |
|---|---|---|---|
| c6352e1e39 | |||
| ddc7c8d53d |
99
README.md
Normal file
99
README.md
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# SIG-CM 2.0
|
||||||
|
|
||||||
|
Sistema de gestión de clasificados y notables — migración del sistema legacy (VB6) a una plataforma web moderna.
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- **Backend**: .NET 10 · C# 13 · ASP.NET Core · Clean Architecture · Dapper 2.x · SQL Server 2022 · JWT RS256 · Serilog · FluentValidation · xUnit + NSubstitute
|
||||||
|
- **Frontend**: React 19 · TypeScript 5 strict · Vite 6 · Tailwind 4 · Zustand · React Router 7 · TanStack Query · Axios · Vitest + RTL
|
||||||
|
- **Infra**: Docker · Gitea Actions · Obsidian (documentación interna)
|
||||||
|
|
||||||
|
## Estructura
|
||||||
|
|
||||||
|
```
|
||||||
|
src/api/ # Backend .NET (Clean Architecture)
|
||||||
|
SIGCM2.Api/ controllers, filters, Program.cs
|
||||||
|
SIGCM2.Application/ commands, handlers, validators, abstractions
|
||||||
|
SIGCM2.Domain/ entities, exceptions, domain security
|
||||||
|
SIGCM2.Infrastructure/ persistence (Dapper), security, DI
|
||||||
|
|
||||||
|
src/web/ # Frontend React 19 (Vite + TS strict)
|
||||||
|
src/features/ feature modules (auth, users, …)
|
||||||
|
src/components/ shared UI + layout
|
||||||
|
src/tests/ Vitest suites
|
||||||
|
|
||||||
|
database/
|
||||||
|
migrations/ .sql con orden Vxxx
|
||||||
|
seeds/ datos iniciales
|
||||||
|
schemas/ definiciones auxiliares
|
||||||
|
|
||||||
|
tests/
|
||||||
|
SIGCM2.Api.Tests/ integration (TestWebAppFactory + SQL Server)
|
||||||
|
SIGCM2.Application.Tests/ unit (handlers, validators)
|
||||||
|
SIGCM2.TestSupport/ fixtures compartidas
|
||||||
|
|
||||||
|
Obsidian/ # Source of truth funcional (IGNORADO por git)
|
||||||
|
STATUS.md roadmap y estado de UDTs
|
||||||
|
INSTRUCCIONES_IA.md SOP del agente de IA
|
||||||
|
02-ARQUITECTURA.../ specs por módulo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Cómo correr
|
||||||
|
|
||||||
|
### Requisitos
|
||||||
|
- .NET 10 SDK
|
||||||
|
- Node 20+
|
||||||
|
- SQL Server 2022 (local o remoto)
|
||||||
|
|
||||||
|
### Backend
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd src/api/SIGCM2.Api
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
|
||||||
|
Config en `appsettings.json` (DB: `SIGCM2`, usuario `desarrollo`, server `TECNICA3`). Para tests de integración se usa `SIGCM2_Test`.
|
||||||
|
|
||||||
|
### Frontend
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd src/web
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Backend
|
||||||
|
dotnet test tests/SIGCM2.Application.Tests # unit
|
||||||
|
dotnet test tests/SIGCM2.Api.Tests # integration (requiere SIGCM2_Test)
|
||||||
|
|
||||||
|
# Frontend
|
||||||
|
cd src/web && npx vitest run
|
||||||
|
```
|
||||||
|
|
||||||
|
## Convenciones
|
||||||
|
|
||||||
|
- Ramas: `feature/UDT-XXX` desde `main`.
|
||||||
|
- Commits: `tipo(módulo): descripción` — `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `security`.
|
||||||
|
- Orden de trabajo por UDT: **BD → Backend → Frontend**.
|
||||||
|
- Desarrollo guiado por Spec-Driven Development (SDD) + Strict TDD.
|
||||||
|
- Follow-ups / deuda técnica se registran como issues de Gitea con label `followup`.
|
||||||
|
|
||||||
|
## Estado del roadmap
|
||||||
|
|
||||||
|
Ver `Obsidian/STATUS.md`. Módulo Auth (Fase 0) en curso:
|
||||||
|
|
||||||
|
- [x] UDT-001 Login
|
||||||
|
- [x] UDT-002 Logout + Refresh Token
|
||||||
|
- [x] UDT-003 Registro de Usuarios
|
||||||
|
- [ ] UDT-004 Gestión de Roles
|
||||||
|
- [ ] UDT-005 Gestión de Permisos (RBAC)
|
||||||
|
- [ ] UDT-006 Middleware de Autorización
|
||||||
|
|
||||||
|
Fases siguientes: Maestros fundacionales (ADM/CAT) · Catálogo de Productos (PRD) · Motor de Precios (PRC) · Ventas (VTA) · Facturación (FAC) · Integraciones externas (INT).
|
||||||
|
|
||||||
|
## Licencia
|
||||||
|
|
||||||
|
Propietario — uso interno.
|
||||||
Reference in New Issue
Block a user