TechFlix Hub es una plataforma web completa que combina gestión de contenido multimedia, comunidad de usuarios y seguimiento de actividad física. Los usuarios pueden descubrir películas, series y videojuegos, escribir reseñas, conectar con otros usuarios y registrar sus actividades físicas.
Este proyecto está siendo desarrollado con las últimas versiones de Angular y Spring Boot, y presenta una interfaz moderna y atractiva gracias a Tailwind CSS.
- Catálogo de Videojuegos: Integración con la API de RAWG para acceder a una base de datos extensa de videojuegos.
- Sistema de Reseñas y Valoraciones: Permite a los usuarios puntuar el contenido del 1 al 10.
- Listas Personalizadas: Los usuarios pueden crear listas como "Por ver", "Favoritos" y "Completados".
- Perfiles de Usuario: Cada usuario tiene un perfil personalizable con avatar, biografía y estadísticas.
- Sistema de Seguimiento: Los usuarios pueden seguirse mutuamente.
- Autenticación con JWT: El backend está protegido con Spring Security y usa JSON Web Tokens (JWT) para autenticar usuarios.
- Contraseñas Encriptadas: Las contraseñas se encriptan antes de ser guardadas en la base de datos.
- Angular 20+
- Tailwind CSS
- Angular Material
- NgRx
- Chart.js
- Spring Boot 3.2+
- Spring Security 6
- Spring Data JPA
- PostgreSQL / H2
- OpenAPI 3 (Swagger)
La aplicación Angular está estructurada por módulos para facilitar su mantenimiento:
src/
├── app/
│ ├── core/ # Servicios, autenticación, interceptores, etc.
│ ├── shared/ # Componentes y modelos reutilizables
│ ├── features/ # Módulos principales: auth, juegos, perfil...
│ └── layout/ # Diseño general (header, footer, etc.)
└── assets/ # Recursos estáticos
El backend sigue una arquitectura en capas:
src/main/java/com/techflixhub/
├── config/ # Configuración general
├── controller/ # Controladores REST
├── service/ # Lógica de negocio
├── repository/ # Acceso a datos
├── entity/ # Entidades de la base de datos
├── dto/ # Objetos de transferencia
├── security/ # Seguridad y JWT
└── external/ # Conexiones con APIs externas (como RAWG)
Principales entidades:
- User: Información del usuario
- Game: Información de videojuegos (RAWG)
- Review: Reseñas y puntuaciones
- UserList: Gestión de listas personalizadas
Antes de empezar, asegúrate de tener instaladas estas herramientas:
- Java 21+
- Node.js 20+
- Angular CLI
Instálalo con:
npm install -g @angular/cli - Maven (opcional, si no usas el wrapper
./mvnw) - MySQL (si vas a usar la base de datos real) Alternativamente puedes usar H2, que es en memoria y más fácil para pruebas.
git clone https://github.com/tu-usuario/techflix-hub.git
cd techflix-hubcd backendAbre el archivo src/main/resources/application.properties o application.yml.
Ejemplo básico (usando MySQL):
spring.datasource.url=jdbc:mysql://localhost:3306/techflix
spring.datasource.username=tu_usuario
spring.datasource.password=tu_contraseña
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.security.jwt.secret=unaClaveSecretaSuperSegura
⚠️ Si no tienes MySQL, puedes usar la base de datos H2 (más simple para empezar). Solo activa el perfildeven el archivo de configuración.
Si usas Maven:
./mvnw spring-boot:runO si tienes Maven instalado globalmente:
mvn spring-boot:runSi todo va bien, deberías ver un mensaje como:
Started TechflixHubApplication in XX seconds...
cd ../angularnpm installng serveEsto abrirá la app en tu navegador en: 👉 http://localhost:4200
- Verifica que puedes registrarte y loguearte.
- Comprueba que puedes buscar juegos (usando la RAWG API).
- Crea una lista personalizada o prueba a dejar una reseña.
-
Haz un fork del repositorio.
-
Crea una rama para tu cambio:
git checkout -b feature/nueva-funcionalidad
-
Haz tus cambios y haz commit:
git commit -m "Añadir nueva funcionalidad" -
Sube tu rama:
git push origin feature/nueva-funcionalidad
-
Abre un Pull Request y descríbelo claramente.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.