CHub es una aplicación diseñada para gestionar cursos, usuarios, tópicos y respuestas de manera eficiente. Este proyecto está construido utilizando el framework Spring Boot, lo que lo hace modular, seguro y fácil de escalar. Es ideal para administrar contenido educativo o foros colaborativos.
-
Gestión de Cursos:
- Crear, leer, actualizar y eliminar (CRUD) información de cursos.
- Gestión del estado de los cursos.
-
Gestión de Usuarios:
- Registro y autenticación de usuarios.
- Validación de credenciales.
-
Gestión de Tópicos y Respuestas:
- Creación de tópicos y gestión de sus respuestas asociadas.
- Estructuración de debates o discusiones.
-
Seguridad:
- Configuración personalizada de seguridad con filtros para autenticación y autorización.
- Generación y validación de tokens JWT.
El proyecto sigue una estructura limpia y modular:
CHub
├── src
│ ├── main
│ │ ├── java/com/hackhub
│ │ │ ├── controller # Controladores para manejar solicitudes HTTP
│ │ │ ├── DTO # Clases de transferencia de datos
│ │ │ ├── persistence # Modelos y repositorios para la base de datos
│ │ │ ├── service # Servicios con la lógica de negocio
│ │ │ ├── util # Utilidades y excepciones personalizadas
│ │ ├── resources
│ │ ├── application.properties # Configuraciones de la aplicación
│ │ ├── db/migration # Scripts de migración para la base de datos
│ ├── test # Pruebas unitarias
├── pom.xml # Configuración de Maven
└── README.md # Documentación del proyecto
Sigue estos pasos para ejecutar el proyecto en tu máquina local:
-
Clona el repositorio:
git clone https://github.com/tu_usuario/Ckhub.git cd Chub
-
Configura la base de datos:
- Asegúrate de tener instalado MySQL.
- Crea una base de datos llamada
Ckhub
. - Configura las credenciales en el archivo
application.properties
.
-
Ejecuta las migraciones:
./mvnw flyway:migrate
-
Ejecuta la aplicación:
./mvnw spring-boot:run
-
Accede a la aplicación en
http://localhost:8080
.
POST /usuarios/registrar
: Registra un nuevo usuario.POST /usuarios/autenticar
: Autentica un usuario y genera un token.
GET /cursos
: Obtiene todos los cursos.POST /cursos
: Crea un nuevo curso.
GET /topicos
: Obtiene todos los tópicos.POST /topicos
: Crea un nuevo tópico.
GET /respuestas
: Obtiene todas las respuestas.POST /respuestas
: Crea una nueva respuesta.
- Java
- Spring Boot
- JWT (JSON Web Tokens)
- Flyway (para migraciones de base de datos)
- MySQL (base de datos)
- Maven (gestión de dependencias)
¡Las contribuciones son bienvenidas! Si deseas contribuir, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una rama con tu característica o corrección de errores:
git checkout -b nombre-de-la-rama
- Realiza los cambios necesarios y haz un commit:
git commit -m "Descripción de los cambios"
- Envía tus cambios a tu repositorio remoto:
git push origin nombre-de-la-rama
- Abre un pull request.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE
para más detalles.