docs: Simplify README - short and concise version
- Remove extensive documentation - Keep only essential information - Quick start guide for backend and frontend - Technology stack summary - 8 modules overview table - Installation links and requirements Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Daniel Silva committed
Aug 17, 2026 at 18:25 UTC
99a035118cb9a3985c13dd2a51fce3d1f79bcb55
1 file changed
+68
-688
README.md
+68
-688
@@ -1,722 +1,102 @@
1
-# MAPS Connect - Backend API
1
+# MAPS Connect
2
3
-[](https://www.oracle.com/java/)
4
-[](https://spring.io/projects/spring-boot)
5
-[](https://www.mysql.com/)
6
-[](https://maven.apache.org/)
3
+**Plataforma Académica y de Mentoría** para Universidad Tecmilenio que conecta estudiantes, docentes y egresados.
4
8
-**MAPS Connect** es una plataforma académica y de mentoría integral para la Universidad Tecmilenio que conecta estudiantes, docentes y egresados mediante un sistema colaborativo de redes de conocimiento, círculos de estudio y asesorías personalizadas.
5
+## 🎯 ¿Qué es?
6
10
-## 📋 Tabla de Contenidos
7
+MAPS Connect es una red colaborativa que permite:
8
+- 💬 Foro de dudas académicas
9
+- 💡 Compartir tips de estudio
10
+- 📚 Repositorio de apuntes
11
+- 👥 Círculos de estudio
12
+- 💌 Mensajería privada
13
+- 🏢 Reseñas de empresas (Semestre Empresarial)
14
+- 🎓 Gestión del modelo académico MAPS
15
12
-- [Visión General](#visión-general)
13
-- [Características Principales](#características-principales)
14
-- [Requisitos Previos](#requisitos-previos)
15
-- [Instalación y Configuración](#instalación-y-configuración)
16
-- [Arquitectura del Sistema](#arquitectura-del-sistema)
17
-- [Módulos Funcionales](#módulos-funcionales)
18
-- [Estructura del Proyecto](#estructura-del-proyecto)
19
-- [Endpoints de API](#endpoints-de-api)
20
-- [Seguridad y Autenticación](#seguridad-y-autenticación)
21
-- [Base de Datos](#base-de-datos)
22
-- [Desarrollo](#desarrollo)
23
-- [Contacto](#contacto)
16
+## 🏗️ Tecnología
17
25
-## 🎯 Visión General
18
+| Capa | Tecnología |
19
+|------|-----------|
20
+| **Backend** | Java 25, Spring Boot 3.3.0 |
21
+| **Frontend** | HTML5, CSS3, JavaScript Vanilla |
22
+| **BD** | MySQL 8.0 (22 entidades, 3FN) |
23
27
-En el modelo educativo de Universidad Tecmilenio, los estudiantes del programa **MAPS (Modelo de Aprendizaje Personalizado y Significativo)** combinan materias disciplinares, componentes de bienestar, certificados de especialización y participan en el Semestre Empresarial. Sin embargo, frecuentemente enfrentan:
28
-
29
-- ❌ Incertidumbre al seleccionar certificados especializados
30
-- ❌ Dificultad para resolver dudas académicas específicas
31
-- ❌ Falta de grupos de estudio organizados
32
-- ❌ Desconocimiento sobre opciones de empresas para vinculación
33
-
34
-**MAPS Connect** resuelve estos desafíos centralizando el intercambio de conocimiento académico, fomentando el aprendizaje colaborativo y facilitando decisiones curriculares informadas.
35
-
36
-## ✨ Características Principales
37
-
38
-### 🔐 Autenticación y Usuarios
39
-- Registro seguro mediante correo institucional (@tecmilenio.mx)
40
-- Autenticación con **JWT (JSON Web Tokens)**
41
-- Perfiles especializados: **Estudiantes**, **Profesores** y **Administradores**
42
-- Gestión de credenciales y sesiones seguras
43
-- Validación de dominios institucionales
44
-
45
-### 💬 Foro Colaborativo
46
-- Dudas académicas segmentadas por carrera y materia
47
-- Respuestas de la comunidad con sistema de soluciones verificadas
48
-- Insignias automáticas para aportaciones de docentes
49
-- Reputación basada en participación
50
-
51
-### 💡 Tips Académicos
52
-- Microconsejos y metodologías de estudio por materia
53
-- Sistema de votación única por usuario
54
-- Ranking dinámico de mejores consejos
55
-- Contenido enfocado en técnicas probadas
56
-
57
-### 📚 Repositorio de Recursos
58
-- Biblioteca centralizada de apuntes y material (PDFs, diagramas, resúmenes)
59
-- Clasificación por materia y tema
60
-- Control de descargas y reportes
61
-- Validación automática de cumplimiento comunitario
62
-
63
-### 👥 Círculos de Estudio
64
-- Comunidades colaborativas por materia, certificado o carrera
65
-- Privacidad configurable (pública/privada)
66
-- Integración con salas virtuales (Microsoft Teams/Google Meet)
67
-- Muro interno de avisos y discusiones
68
-
69
-### 💌 Mensajería Privada
70
-- Canal 1 a 1 entre estudiantes o profesor-estudiante
71
-- Asesorías académicas personalizadas
72
-- Trazabilidad completa de conversaciones
73
-- Respeto a disponibilidad horaria docente
74
-
75
-### 🏢 Semestre Empresarial
76
-- Directorio de empresas vinculadas
77
-- Reseñas y evaluaciones de experiencias reales
78
-- Consejos de postulación y acreditación
79
-- Retroalimentación de estudiantes avanzados
80
-
81
-### 🎓 Gestión Académica MAPS
82
-- Catálogo de carreras y certificados de especialización
83
-- Estructura de malla curricular por programa
84
-- Materias tronco común, disciplinares, certificados y bienestar
85
-- Modelado de microcredenciales
86
-
87
-## 📦 Requisitos Previos
88
-
89
-- **Java 25** o superior
90
-- **Maven 3.8** o superior
91
-- **MySQL 8.0** o superior
92
-- **Git** para control de versiones
93
-- **IDE** recomendado: IntelliJ IDEA Community Edition
94
-
95
-### Validar Instalación
96
-
97
-```bash
98
-java -version
99
-mvn -version
100
-mysql --version
101
-```
102
-
103
-## 🚀 Instalación y Configuración
104
-
105
-### 1. Clonar el Repositorio
106
-
107
-```bash
108
-git clone https://github.com/danielsilva7577-bit/maps-conect.git
109
-cd maps-conect
110
-```
111
-
112
-### 2. Crear Bases de Datos
113
-
114
-```sql
115
-CREATE DATABASE maps_conect CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
116
-CREATE DATABASE maps_conect_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
117
-```
118
-
119
-### 3. Configurar Credenciales
120
-
121
-Editar `src/main/resources/application.yml`:
122
-
123
-```yaml
124
-spring:
125
- application:
126
- name: MAPS Connect
127
-
128
- datasource:
129
- url: jdbc:mysql://localhost:3306/maps_conect
130
- username: root
131
- password: tu_contraseña
132
- driver-class-name: com.mysql.cj.jdbc.Driver
133
-
134
- jpa:
135
- hibernate:
136
- ddl-auto: update
137
- show-sql: false
138
- properties:
139
- hibernate:
140
- dialect: org.hibernate.dialect.MySQL8Dialect
141
- format_sql: true
142
-
143
-server:
144
- port: 8080
145
- servlet:
146
- context-path: /api
147
-
148
-jwt:
149
- secret: tu_clave_secreta_muy_segura_aqui
150
- expiration: 86400000 # 24 horas en milisegundos
151
-
152
-cors:
153
- allowed-origins: http://localhost:3000,http://localhost:5173
154
-```
155
-
156
-### 4. Compilar el Proyecto
24
+## 🚀 Quick Start
25
26
+### Backend
27
```bash
159
-mvn clean install
160
-```
28
+# Crear bases de datos
29
+CREATE DATABASE maps_conect;
30
+CREATE DATABASE maps_conect_dev;
31
162
-### 5. Ejecutar la Aplicación
32
+# Editar: src/main/resources/application.yml
33
+# (actualizar credenciales MySQL)
34
164
-**Desarrollo (con perfil dev):**
165
-```bash
35
+# Ejecutar
36
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=dev"
37
+# API en: http://localhost:8080/api
38
```
39
169
-**Producción (con perfil prod):**
170
-```bash
171
-mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=prod"
172
-```
173
-
174
-La aplicación estará disponible en: `http://localhost:8080/api`
175
-
176
-### 6. Verificar Salud de la API
177
-
40
+### Frontend
41
```bash
179
-curl http://localhost:8080/api/health
180
-```
42
+# Abrir en Visual Studio Code
43
+code frontend/
44
182
-Respuesta esperada:
183
-```json
184
-{
185
- "status": "UP",
186
- "components": {
187
- "db": {
188
- "status": "UP"
189
- }
190
- }
191
-}
45
+# Live Server (extensión VS Code)
46
+# Clic derecho en index.html > "Open with Live Server"
47
+# En: http://localhost:5500
48
```
49
194
-## 🏗️ Arquitectura del Sistema
50
+## 📋 Requisitos
51
196
-MAPS Connect implementa una **arquitectura de 3 capas**:
52
+- Java 25+
53
+- Maven 3.8+
54
+- MySQL 8.0+
55
+- Node.js (opcional, para frontend)
56
198
-### Capa de Presentación (Frontend)
199
-- **Tecnologías**: HTML5, CSS3, JavaScript Vanilla
200
-- **Responsabilidades**:
201
- - Renderizado dinámico del DOM
202
- - Interfaz minimalista con contornos rectos
203
- - Menú colapsable
204
- - Validación de formularios en cliente
205
- - Consumo asincrónico de endpoints REST vía JSON
57
+## 🔐 Autenticación
58
207
-### Capa de Aplicación (Backend)
208
-- **Tecnologías**: Java, Spring Boot, Spring Security
209
-- **Responsabilidades**:
210
- - Implementación de reglas de negocio
211
- - Validación de dominios institucionales
212
- - Manejo de sesiones y seguridad
213
- - Orquestación de servicios y repositorios
214
- - Procesamiento de requests y responses
59
+- **JWT Tokens** (24 horas)
60
+- Email institucional: `@tecmilenio.mx`
61
+- Contraseña segura: 8+ caracteres, mayúscula, número
62
216
-### Capa de Datos (Base de Datos)
217
-- **Tecnologías**: MySQL 8.0
218
-- **Responsabilidades**:
219
- - Almacenamiento persistente normalizado en 3FN
220
- - Integridad referencial con claves foráneas
221
- - Restricciones de dominio y lógica
222
- - Vistas operativas para consultas complejas
223
-
224
-```
225
-┌─────────────────────────────────┐
226
-│ Frontend (Web Browser) │
227
-│ HTML5 | CSS3 | JavaScript │
228
-└──────────────┬──────────────────┘
229
- │ REST JSON
230
-┌──────────────▼──────────────────┐
231
-│ Spring Boot REST API │
232
-│ Controllers | Services | DAO │
233
-│ JWT Security | Validation │
234
-└──────────────┬──────────────────┘
235
- │ SQL
236
-┌──────────────▼──────────────────┐
237
-│ MySQL 8.0 Database │
238
-│ 22 Tablas | 3FN | Constraints │
239
-└─────────────────────────────────┘
240
-```
241
-
242
-## 📚 Módulos Funcionales
243
-
244
-### 1️⃣ Gestión Académica y Modelo MAPS
245
-Administra el catálogo académico de la institución.
246
-
247
-**Entidades**:
248
-- `carreras` - Programas profesionales ofertados
249
-- `certificados` - Especializaciones y microcredenciales MAPS
250
-- `materias` - Asignaturas curriculares
251
-- `plan_estudios` - Relación N:M de materias por carrera/semestre
252
-- `certificado_materias` - Asignaturas que integran certificados
253
-
254
-**Funcionalidades**:
255
-- ✅ Definir carreras y planes de estudio
256
-- ✅ Configurar certificados de especialización
257
-- ✅ Asignar materias a carreras y certificados
258
-- ✅ Estructurar malla curricular
259
-
260
-### 2️⃣ Usuarios, Perfiles y Roles
261
-Administración integral de credenciales e identidades.
262
-
263
-**Entidades**:
264
-- `usuarios` - Credenciales y autenticación
265
-- `estudiantes` - Datos específicos del alumno (matrícula, semestre, propósito)
266
-- `estudiante_certificados` - Ruta MAPS (hasta 3 certificados)
267
-- `profesores` - Datos de nómina, especialidad y horarios
268
-- `profesores_materias` - Relación N:M de materias impartidas
269
-
270
-**Roles y Permisos**:
271
-| Operación | Estudiante | Profesor | Admin |
272
-|-----------|-----------|----------|-------|
273
-| Editar Perfil | ✅ | ✅ | ✅ |
274
-| Publicar Duda | ✅ | ❌ | 🔧 |
275
-| Responder Dudas | ✅ | ✅ (con insignia) | 🔧 |
276
-| Crear Círculos | ✅ | ✅ (Líder) | 🔧 |
277
-| Moderación | ❌ | ✅ | ✅ |
278
-| Administrar Catálogos | ❌ | ❌ | ✅ |
279
-
280
-### 3️⃣ Foro de Dudas y Respuestas Colaborativas
281
-Canal principal de interacción académica.
282
-
283
-**Entidades**:
284
-- `publicaciones` - Dudas académicas por carrera/materia
285
-- `respuestas` - Soluciones y comentarios de la comunidad
286
-
287
-**Características**:
288
-- Dudas asociadas a materias (opcional)
289
-- Comunidad aporta respuestas
290
-- Autor marca solución definitiva
291
-- Sistema automático de insignias para docentes
292
-- Ranking de respuestas por utilidad
293
-
294
-### 4️⃣ Tips Académicos y Sistema de Reputación
295
-Microconsejos y metodologías de estudio.
296
-
297
-**Entidades**:
298
-- `tips_academicos` - Recomendaciones y técnicas
299
-- `votos_tips` - Control de votos únicos por usuario
300
-
301
-**Características**:
302
-- Tips por materia
303
-- Voto único por usuario (evita manipulación)
304
-- Sistema de reputación basado en contribuciones
305
-- Feed ranking por utilidad
306
-
307
-### 5️⃣ Repositorio de Apuntes y Material de Estudio
308
-Biblioteca centralizada de recursos.
309
-
310
-**Entidades**:
311
-- `recursos_academicos` - Metadatos de archivos y apuntes
312
-
313
-**Características**:
314
-- Clasificación por materia
315
-- Monitoreo de descargas
316
-- Reportes de calidad
317
-- Ocultamiento automático de material no conforme
318
-
319
-### 6️⃣ Mensajería Directa y Asesorías Privadas
320
-Canal 1 a 1 para comunicación personalizada.
321
-
322
-**Entidades**:
323
-- `conversaciones` - Canales 1 a 1
324
-- `mensajes` - Mensajes individuales
325
-
326
-**Características**:
327
-- Entre estudiantes o estudiante-profesor
328
-- Trazabilidad completa
329
-- Confirmación de lectura
330
-- Respeto a disponibilidad docente
331
-
332
-### 7️⃣ Semestre Empresarial
333
-Retroalimentación y experiencias de vinculación.
334
-
335
-**Entidades**:
336
-- `empresas_vinculadas` - Directorio de empresas
337
-- `resenas_empresarial` - Evaluaciones y aprendizajes
338
-
339
-**Características**:
340
-- Reseñas de experiencias reales
341
-- Evaluación de 1 a 5 estrellas
342
-- Consejos de postulación
343
-- Recomendaciones de acreditación
344
-
345
-### 8️⃣ Comunidades y Círculos de Estudio
346
-Espacios colaborativos para aprendizaje grupal.
347
-
348
-**Entidades**:
349
-- `comunidades_estudio` - Grupos de estudio
350
-- `miembros_comunidad` - Relación N:M de usuarios
351
-- `mensajes_comunidad` - Muro de publicaciones internas
352
-
353
-**Características**:
354
-- Por materia, certificado o carrera
355
-- Privacidad configurable (pública/privada)
356
-- Integración con salas virtuales (Teams/Meet)
357
-- Muro interno de avisos
358
-- Liderazgo y modración
359
-
360
-## 📂 Estructura del Proyecto
63
+## 📂 Estructura
64
65
```
66
maps-conect/
364
-├── src/
365
-│ ├── main/
366
-│ │ ├── java/com/tecmilenio/mapsconect/
367
-│ │ │ ├── MapsConectApplication.java # Punto de entrada
368
-│ │ │ │
369
-│ │ │ ├── config/
370
-│ │ │ │ ├── CorsConfig.java # Configuración CORS
371
-│ │ │ │ └── SecurityConfig.java # Configuración seguridad
372
-│ │ │ │
373
-│ │ │ ├── controller/
374
-│ │ │ │ ├── AuthController.java # Endpoints autenticación
375
-│ │ │ │ └── HealthController.java # Health check
376
-│ │ │ │
377
-│ │ │ ├── service/
378
-│ │ │ │ └── UsuarioService.java # Lógica usuarios
379
-│ │ │ │
380
-│ │ │ ├── repository/
381
-│ │ │ │ └── UsuarioRepository.java # Acceso a datos
382
-│ │ │ │
383
-│ │ │ ├── entity/
384
-│ │ │ │ └── Usuario.java # Entidades JPA
385
-│ │ │ │
386
-│ │ │ ├── dto/
387
-│ │ │ │ ├── LoginDTO.java
388
-│ │ │ │ ├── RegistroDTO.java
389
-│ │ │ │ ├── TokenDTO.java
390
-│ │ │ │ ├── UsuarioDTO.java
391
-│ │ │ │ └── ApiResponse.java
392
-│ │ │ │
393
-│ │ │ ├── security/
394
-│ │ │ │ ├── JwtTokenProvider.java # Generación JWT
395
-│ │ │ │ └── JwtAuthenticationFilter.java # Filtro JWT
396
-│ │ │ │
397
-│ │ │ ├── exception/
398
-│ │ │ │ ├── GlobalExceptionHandler.java # Manejo global excepciones
399
-│ │ │ │ └── ResourceNotFoundException.java # Excepciones custom
400
-│ │ │ │
401
-│ │ │ └── util/
402
-│ │ │ └── (utilidades compartidas)
403
-│ │ │
404
-│ │ └── resources/
405
-│ │ ├── application.yml # Config principal
406
-│ │ ├── application-dev.yml # Config desarrollo
407
-│ │ └── application-prod.yml # Config producción
408
-│ │
409
-│ └── test/
410
-│ └── java/com/tecmilenio/mapsconect/
411
-│ └── (tests unitarios e integración)
412
-│
413
-├── .gitignore
414
-├── pom.xml # Dependencias Maven
415
-├── README.md # Este archivo
416
-└── target/ # Artifacts compilados
417
-```
418
-
419
-## 🔌 Endpoints de API
420
-
421
-### Autenticación
422
-```http
423
-POST /api/auth/register
424
-Content-Type: application/json
425
-
426
-{
427
- "nombre": "Juan Pérez",
428
- "email": "juan.perez@tecmilenio.mx",
429
- "password": "Password123!",
430
- "rol": "STUDENT"
431
-}
432
-```
433
-
434
-```http
435
-POST /api/auth/login
436
-Content-Type: application/json
437
-
438
-{
439
- "email": "juan.perez@tecmilenio.mx",
440
- "password": "Password123!"
441
-}
442
-```
443
-
444
-**Respuesta (200 OK)**:
445
-```json
446
-{
447
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
448
- "tipo": "Bearer",
449
- "expiresIn": 86400000,
450
- "usuario": {
451
- "id": 1,
452
- "nombre": "Juan Pérez",
453
- "email": "juan.perez@tecmilenio.mx",
454
- "rol": "STUDENT"
455
- }
456
-}
457
-```
458
-
459
-### Health Check
460
-```http
461
-GET /api/health
462
-```
463
-
464
-**Respuesta**:
465
-```json
466
-{
467
- "status": "UP",
468
- "timestamp": "2024-08-17T18:00:00Z"
469
-}
67
+├── src/main/java/... # Backend Java/Spring
68
+├── frontend/ # Frontend HTML/CSS/JS
69
+│ ├── index.html
70
+│ ├── css/
71
+│ ├── js/
72
+│ └── pages/
73
+└── pom.xml
74
```
75
472
-## 🔐 Seguridad y Autenticación
76
+## 📚 Módulos
77
474
-### JWT (JSON Web Tokens)
78
+| Módulo | Descripción |
79
+|--------|------------|
80
+| 1️⃣ Gestión MAPS | Carreras, certificados, materias |
81
+| 2️⃣ Usuarios | Login, perfiles, roles |
82
+| 3️⃣ Foro | Dudas y respuestas académicas |
83
+| 4️⃣ Tips | Consejos de estudio con votación |
84
+| 5️⃣ Recursos | Apuntes y material de estudio |
85
+| 6️⃣ Mensajes | Chat 1 a 1 estudiante-profesor |
86
+| 7️⃣ Empresarial | Reseñas y experiencias vinculación |
87
+| 8️⃣ Círculos | Grupos de estudio colaborativos |
88
476
-La aplicación utiliza **JWT** para autenticación stateless:
89
+## 🔗 Enlaces
90
478
-```
479
-Header:
480
-{
481
- "alg": "HS256",
482
- "typ": "JWT"
483
-}
484
-
485
-Payload:
486
-{
487
- "sub": "usuario@tecmilenio.mx",
488
- "id": 1,
489
- "rol": "STUDENT",
490
- "iat": 1692291600,
491
- "exp": 1692378000
492
-}
493
-
494
-Signature:
495
-HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
496
-```
497
-
498
-### Restricciones de Seguridad
499
-
500
-✅ **Dominio Institucional**: Solo correos @tecmilenio.mx o @servicios.tecmilenio.mx
501
-✅ **Contraseñas Hasheadas**: Almacenadas con bcrypt (algoritmo seguro)
502
-✅ **Expiración de Token**: 24 horas por defecto
503
-✅ **CORS**: Restringido a orígenes permitidos
504
-✅ **Validación de Entrada**: DTOs con @Valid annotations
505
-✅ **Manejo Global de Excepciones**: Respuestas consistentes
506
-
507
-### Uso del Token
508
-
509
-Incluir en todas las requests:
510
-```http
511
-Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
512
-```
513
-
514
-### Cambiar Secreto en Producción
515
-
516
-**CRÍTICO**: Cambiar `jwt.secret` en `application-prod.yml`:
517
-
518
-```yaml
519
-jwt:
520
- secret: una_clave_secreta_aleatoria_muy_larga_y_compleja
521
- expiration: 86400000
522
-```
523
-
524
-Generar clave segura:
525
-```bash
526
-# Linux/Mac
527
-openssl rand -base64 32
528
-
529
-# PowerShell
530
-[Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
531
-```
532
-
533
-## 💾 Base de Datos
534
-
535
-### Modelado en 3FN (Tercera Forma Normal)
536
-
537
-La base de datos implementa 3FN para garantizar:
538
-- ✅ Normalización completa
539
-- ✅ Eliminación de redundancias
540
-- ✅ Integridad referencial
541
-- ✅ Eficiencia en consultas
542
-
543
-### 22 Entidades Principales
544
-
545
-| ID | Entidad | Módulo | Propósito |
546
-|----|---------|--------|-----------|
547
-| 1 | `carreras` | Académico | Programas profesionales |
548
-| 2 | `certificados` | Académico | Microcredenciales MAPS |
549
-| 3 | `materias` | Académico | Asignaturas curriculares |
550
-| 4 | `plan_estudios` | Académico | Relación materia-carrera |
551
-| 5 | `certificado_materias` | Académico | Materias por certificado |
552
-| 6 | `usuarios` | Usuarios | Credenciales y autenticación |
553
-| 7 | `estudiantes` | Usuarios | Datos del alumno |
554
-| 8 | `estudiante_certificados` | Usuarios | Ruta MAPS del alumno |
555
-| 9 | `profesores` | Usuarios | Datos docentes |
556
-| 10 | `profesores_materias` | Usuarios | Materias por docente |
557
-| 11 | `publicaciones` | Comunidad | Dudas académicas |
558
-| 12 | `respuestas` | Comunidad | Respuestas y comentarios |
559
-| 13 | `tips_academicos` | Tips | Microconsejos de estudio |
560
-| 14 | `votos_tips` | Tips | Votos únicos por usuario |
561
-| 15 | `recursos_academicos` | Apuntes | Metadatos de archivos |
562
-| 16 | `conversaciones` | Chat | Canales 1 a 1 |
563
-| 17 | `mensajes` | Chat | Mensajes individuales |
564
-| 18 | `empresas_vinculadas` | Empresarial | Directorio de empresas |
565
-| 19 | `resenas_empresarial` | Empresarial | Evaluaciones de empresas |
566
-| 20 | `comunidades_estudio` | Círculos | Grupos de estudio |
567
-| 21 | `miembros_comunidad` | Círculos | Usuarios en comunidades |
568
-| 22 | `mensajes_comunidad` | Círculos | Muro de comunidades |
569
-
570
-### Restricciones Técnicas
571
-
572
-**1. Restricción de Dominio Institucional**
573
-```sql
574
-ALTER TABLE usuarios ADD CONSTRAINT chk_email_domain
575
-CHECK (email LIKE '%@tecmilenio.mx' OR email LIKE '%@servicios.tecmilenio.mx');
576
-```
577
-
578
-**2. Restricción de Rango Semestral**
579
-```sql
580
-ALTER TABLE estudiantes ADD CONSTRAINT chk_semestre
581
-CHECK (semestre_actual BETWEEN 1 AND 12);
582
-```
583
-
584
-**3. Límite de Ruta Curricular**
585
-```sql
586
-ALTER TABLE estudiantes ADD CONSTRAINT chk_max_certificados
587
-CHECK (LENGTH(CONCAT_WS(',', certificado_1, certificado_2, certificado_3)) > 0);
588
-```
589
-
590
-**4. Integridad en Mensajería**
591
-```sql
592
-ALTER TABLE conversaciones ADD CONSTRAINT chk_usuarios_distintos
593
-CHECK (id_usuario_1 <> id_usuario_2);
594
-ALTER TABLE conversaciones ADD CONSTRAINT uq_usuarios
595
-UNIQUE KEY (id_usuario_1, id_usuario_2);
596
-```
597
-
598
-**5. Calificaciones Numéricas (1-5)**
599
-```sql
600
-ALTER TABLE resenas_empresarial ADD CONSTRAINT chk_calificacion
601
-CHECK (calificacion BETWEEN 1 AND 5);
602
-```
603
-
604
-**6. Integridad en Cascada**
605
-```sql
606
-ALTER TABLE miembros_comunidad ADD CONSTRAINT fk_comunidad
607
-FOREIGN KEY (id_comunidad) REFERENCES comunidades_estudio(id)
608
-ON DELETE CASCADE;
609
-```
610
-
611
-## 🛠️ Desarrollo
612
-
613
-### Requisitos de Desarrollo
614
-
615
-```bash
616
-# Verificar Java
617
-java -version
618
-# Debe mostrar Java 25+
619
-
620
-# Verificar Maven
621
-mvn -version
622
-# Debe mostrar Maven 3.8+
623
-
624
-# Verificar MySQL
625
-mysql --version
626
-# Debe mostrar MySQL 8.0+
627
-```
628
-
629
-### Compilación
630
-
631
-**Build completo (ejecutar una sola vez)**:
632
-```bash
633
-mvn clean install
634
-```
635
-
636
-**Build rápido (cambios menores)**:
637
-```bash
638
-mvn compile
639
-```
640
-
641
-**Limpiar build anterior**:
642
-```bash
643
-mvn clean
644
-```
645
-
646
-### Ejecutar con Perfil Dev
647
-
648
-```bash
649
-mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=dev"
650
-```
651
-
652
-Verá logs detallados y SQL ejecutado.
653
-
654
-### Ejecutar Tests
655
-
656
-```bash
657
-# Todos los tests
658
-mvn test
659
-
660
-# Test específico
661
-mvn test -Dtest=UsuarioServiceTest
662
-
663
-# Con cobertura
664
-mvn test jacoco:report
665
-```
666
-
667
-### Empaquetar para Producción
668
-
669
-```bash
670
-mvn package
671
-# Crea: target/maps-conect-1.0.0.jar
672
-```
673
-
674
-**Ejecutar JAR**:
675
-```bash
676
-java -Dspring.profiles.active=prod -jar target/maps-conect-1.0.0.jar
677
-```
678
-
679
-### IDE Recomendado: IntelliJ IDEA
680
-
681
-1. Abrir proyecto: `File > Open > maps-conect`
682
-2. Configurar SDK Java 25: `File > Project Structure > Project > SDK`
683
-3. Configurar Maven: `File > Settings > Build Tools > Maven`
684
-4. Ejecutar aplicación: `Run > Run 'MapsConectApplication'`
685
-5. Debug: `Run > Debug 'MapsConectApplication'`
686
-
687
-### Variables de Entorno
688
-
689
-Para producción, usar variables de entorno en lugar de archivos properties:
690
-
691
-```bash
692
-export SPRING_DATASOURCE_URL=jdbc:mysql://prod-db:3306/maps_conect
693
-export SPRING_DATASOURCE_USERNAME=user_prod
694
-export SPRING_DATASOURCE_PASSWORD=secure_password
695
-export JWT_SECRET=your_production_secret_key
696
-export SPRING_PROFILES_ACTIVE=prod
697
-
698
-java -jar maps-conect-1.0.0.jar
699
-```
700
-
701
-### Estructura de Carpeta de Trabajo
702
-
703
-```
704
-C:\Users\danie\
705
-├── IdeaProjects/
706
-│ ├── maps-conect/ # Este proyecto
707
-│ └── ...
708
-├── .m2/ # Maven local repository
709
-└── ...
710
-```
91
+- 📖 Backend: `http://localhost:8080/api`
92
+- 🌐 Frontend: `http://localhost:5500`
93
+- ✅ Health: `http://localhost:8080/api/health`
94
712
-## 📞 Contacto
95
+## 👨💻 Contacto
96
714
-**Institución**: Universidad Tecmilenio
715
-**Proyecto**: MAPS Connect - Plataforma Académica y de Mentoría
716
-**Repositorio**: [GitHub - danielsilva7577-bit/maps-conect](https://github.com/danielsilva7577-bit/maps-conect)
97
+**Universidad Tecmilenio** - Proyecto MAPS Connect
98
+[GitHub Repository](https://github.com/danielsilva7577-bit/maps-conect)
99
100
---
101
720
-**Última actualización**: Agosto 2024
721
-**Versión**: 1.0.0
722
-**Estado**: En Desarrollo
\ No newline at end of file
102
+**v1.0.0** | Agosto 2024 | En Desarrollo