- 📚 Tabla de Contenidos
- 🎉 Meevent API
- 🚀 Tecnologías utilizadas
- 📦 Instalación
- 🗄️ Configuración del entorno
▶️ Ejecutar el proyecto- 🧱 Estructura del proyecto
- 📐 Convenciones del proyecto
- 🌱 Flujo de trabajo (GitHub Flow)
- 📌 Convenciones de ramas y commits
- 🤝 Colaboradores
La Meevent API es el backend oficial de Meevent.
Provee servicios REST para gestionar usuarios, eventos, categorías, autenticación y más.
Construida con .NET 8 siguiendo arquitectura por features, buenas prácticas y una configuración estandarizada de nombres y capas.
- .NET 8 (ASP.NET Core Web API)
- Entity Framework Core 8
- SQL Server
- Swagger
Clona el repositorio:
git clone https://github.com/LP-React/Meevent-API.gitInstala dependencias:
dotnet restoreConfigura la cadena de conexión en appsettings.Development.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=MeeventDb;Trusted_Connection=True;Encrypt=False"
}
}
Crear la base de datos:
dotnet ef database update
Ejecutar la API:
dotnet run
Implementamos Vertical Slice Architecture, separando la aplicación por features.
/src
/Features
/Users
UsersController.cs
UserService.cs
UserDtos.cs
UserMapping.cs
UserValidators.cs
/Events
EventsController.cs
EventService.cs
EventDtos.cs
EventMapping.cs
/Core
/Context
AppDbContext.cs
/Entities
User.cs
Event.cs
(más entidades...)
/Interfaces
(interfaces opcionales)
/Migrations
(migraciones de EF)
| Tipo / Elemento | Convención | Ejemplo / Descripción / Uso |
|---|---|---|
| Entity | PascalCase, singular | User, EventCategory |
| DbSet | Plural | Users, EventCategories |
| Propiedad Entity | PascalCase | CreatedAt, CategoryId |
| DTO Request | PascalCase (código) → snake_case (JSON) | CreateUserRequest → { "created_at": "..." } |
| DTO Response | PascalCase (código) → snake_case (JSON) | UserResponse → { "user_id": 1 } |
| Controller | Clase PascalCase, ruta plural kebab-case | UsersController → /api/users |
| Commands / Queries | PascalCase | CreateUserCommand, GetEventsQuery |
| Servicios / UseCases | PascalCase + Async | CreateUserAsync() |
| Tabla DB | snake_case, plural | users, event_categories |
| Columna DB | snake_case | created_at, category_id |
| Foreign Key | snake_case + _id |
user_id, event_id |
| Rutas API | kebab-case en segmentos | /api/event-categories/{category_id} |
| Archivos | PascalCase | UserMappings.cs, EventEntity.cs |
-
Crear una rama desde main
git checkout -b feature/nombre-de-la-funcionalidad
-
Hacer commits siguiendo las convenciones.
<tipo>: <descripción breve>
-
Subir la rama al repositorio remoto.
git push origin -u feature/nombre-de-la-funcionalidad
-
Crear un Pull Request en Github.
-
Solicitar revisión para futuro merge.
| Tipo de rama | Formato | Uso |
|---|---|---|
| feature | feature/<nombre> |
Nuevas funcionalidades |
| fix | fix/<bug> |
Corrección de errores |
| hotfix | hotfix/<descripcion> |
Arreglos urgentes |
| refactor | refactor/<modulo> |
Mejora interna sin cambiar comportamiento |
| docs | docs/<tema> |
Solo documentación |
| chore | chore/<tarea> |
Configuración, scripts, mantenimiento |
| Tipo | Descripción |
|---|---|
| feat | Nueva funcionalidad |
| fix | Corrección de errores |
| docs | Documentación |
| style | Formato (sin lógica) |
| refactor | Refactor sin cambiar comportamiento |
| perf | Mejora de rendimiento |
| test | Añadir o modificar tests |
| chore | Configuraciones o tareas menores |
| build | Cambios en dependencias o build |
| ci | Cambios en CI/CD |