Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Students Register - Sistema de Registro Universitario

Aplicación web cliente-servidor para el registro de estudiantes en un programa de créditos universitario.

Descripción

El sistema permite:

  • Registrar, editar y eliminar estudiantes (CRUD completo)
  • Inscribir estudiantes en materias con validaciones de negocio
  • Consultar registros públicos de todos los estudiantes
  • Ver compañeros de clase por materia (solo si está inscrito)

Reglas de negocio

  • Existen 10 materias, cada una equivale a 3 créditos
  • 5 profesores dictan 2 materias cada uno
  • Un estudiante solo puede inscribirse en máximo 3 materias
  • Un estudiante no puede tener clases con el mismo profesor
  • Cada estudiante puede ver los registros de otros estudiantes
  • Cada estudiante puede ver solo el nombre de los compañeros en cada clase

Tecnologías

Capa Tecnología
Frontend Angular 19, Angular Material, TypeScript
Backend ASP.NET Core (.NET 10), Minimal APIs
ORM Entity Framework Core 9
Base de datos MySQL 8.0 (UTF-8, utf8mb4)
Contenedores Docker, Docker Compose

Arquitectura

El backend implementa Arquitectura Hexagonal (Ports & Adapters):

backend/api/
├── Domain/          → Entidades y puertos (interfaces de repositorio)
├── Application/     → Use Cases, DTOs y Mappers
├── Infrastructure/  → EF Core, Repositorios, DI
└── Adapters/In/Api/ → Endpoints HTTP (Minimal APIs)

Estructura del proyecto

StudentsRegisters/
├── backend/             → API REST en ASP.NET Core
├── frontend/            → Cliente Angular 19
│   └── src/assets/i18n/ → Traducciones (es/en)
├── database/            → Script SQL de creación de BD
├── docker-compose.yml
└── README.md

Características del frontend

  • Internacionalización (i18n): español e inglés, con selector en la toolbar
  • Temas: modo claro y oscuro con toggle, detecta preferencia del sistema
  • Validaciones reactivas: formularios con ReactiveFormsModule y feedback visual
  • Panel de inscripciones: muestra materias inscritas, advertencias de conflictos y slots disponibles
  • Lazy loading: cada vista se carga bajo demanda
  • Ruta 404: página amigable para rutas inexistentes
  • ESLint + Prettier: linting y formato configurados

Inicio rápido

1. Base de datos

Levantar MySQL con Docker (charset UTF-8 configurado automáticamente):

docker compose up -d

O usar una instancia MySQL local (ver database/init.sql para crear las tablas manualmente).

2. Backend

cd backend/api
dotnet run

La API estará disponible en http://localhost:5029.

También se puede ejecutar desde Visual Studio con el perfil HTTP o Container (Dockerfile).

3. Frontend

cd frontend
npm install
ng serve

La aplicación estará disponible en http://localhost:4200.

Entregables

  • Aplicación web cliente-servidor (frontend Angular + backend ASP.NET Core)
  • Script SQL para creación de base de datos (database/init.sql)

About

Este proyecto es una aplicación web cliente-servidor para la gestión de estudiantes en un sistema de créditos universitarios. Permite registrar y administrar estudiantes, gestionar inscripciones a materias con reglas de negocio y consultar información académica de forma estructurada y segura.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages