Bienvenidos a GitGame, una plataforma completa para los apasionados de los videojuegos. Aquí encontrarás noticias, videos, lanzamientos y reseñas de los títulos más actuales y relevantes. Nuestra plataforma ofrece una experiencia personalizada con contenido exclusivo para usuarios registrados.
- Características
- Tecnologías Utilizadas
- Instalación
- Roles y Permisos
- Recursos de Diseño y Base de Datos
- Estructura del Proyecto
- Uso
- Herramientas y Utilidades
- Documentación de la API
- Visionado de la Web
- Autores
GitGame permite a los usuarios acceder a contenido sobre videojuegos de diversas maneras. Aquí están las secciones principales:
- Noticias: Las últimas novedades sobre videojuegos, eventos, lanzamientos, y más.
- Videos: Contenido multimedia relacionado con análisis, tráilers y eventos de videojuegos.
- Lanzamientos: Información sobre próximos títulos y fechas de lanzamiento.
- Reviews: Análisis y opiniones sobre los últimos lanzamientos, realizados por usuarios y administradores.
Además, GitGame ofrece un sistema de autenticación y control de usuarios para moderar el acceso y la creación de contenido.
GitGame está construido con una variedad de tecnologías modernas para ofrecer una experiencia de usuario rápida y una arquitectura robusta en el servidor. A continuación, se listan las principales herramientas y frameworks utilizados en el proyecto.
: Biblioteca de JavaScript para construir interfaces de usuario interactivas y dinámicas.
: Herramienta de construcción rápida y ligera para desarrollar proyectos con React.
: Framework de CSS basado en utilidades para diseñar de forma rápida y eficiente.
: Cliente HTTP para realizar peticiones al backend de forma sencilla.
: Aplicado en el back-end mejorando la escalabilidad, seguridad y mantenimiento del código con tipado estático.
: Entorno de ejecución de JavaScript en el servidor.
: Framework de servidor para Node.js que simplifica la gestión de rutas y peticiones HTTP.
: Tecnología para manejar la autenticación y autorización de usuarios.
: Librería para el hash de contraseñas, asegurando la seguridad de los datos sensibles.
: Middleware para manejar la subida de archivos en las rutas del servidor.
: Facilita la gestión y el diseño de la Base de Datos.
: ORM (Object-Relational Mapper) para interactuar con la base de datos de forma más intuitiva.
: Framework de testing y herramienta para realizar pruebas unitarias y de integración.
Para ejecutar Git_Game en tu entorno local, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/Wilder-Aguilar/gitGame.git
-
Instalar dependencias en el front-end:
cd gitgame/client npm install
-
Instalar dependencias en el back-end:
cd ../server npm install
-
Configurar variables de entorno: Crea un archivo .env en el directorio server con las configuraciones necesarias, como la conexión a la base de datos.
DB_PASSWORD = "INTRODUCE LA CONTRASEÑA DE TU MYSQL WORKBENCH" DB_HOST=localhost DB_USER=root (Verifica tu MySQL Workbench) DB_DEV_NAME=git_game DB_TEST_NAME=git_game_test PORT=3000 DB_PORT=3306 (Verifica tu MySQL Workbench) JWT_SECRET= "INTRODUCE LA CONTRASEÑA JWT"
-
Ejecutar el proyecto:
Inicia el servidor desde el directorio server:
npm run dev
Inicia el cliente desde el directorio client:
npm run dev
La plataforma define permisos específicos según el rol del usuario:
Rol | Permisos |
---|---|
Usuario | Puede ver contenido y crear reseñas de videojuegos. |
Admin | Puede crear, editar y eliminar noticias, videos, lanzamientos y reseñas. |
- Diseño en Figma - Visualiza el diseño en Figma.
- Esquema de la base de datos en DrawSQL.
gitgame/
├── client/ # Código del frontend (interfaz de usuario)
│ ├── node_modules/ # Dependencias del cliente
│ ├── public/ # Archivos estáticos (imágenes, CSS, index.html)
│ ├── src/ # Código fuente de la aplicación cliente
│ │ ├── components/ # Componentes reutilizables de React
│ │ ├── pages/ # Páginas principales (Noticias, Videos, etc.)
│ │ ├── services/ # Servicios y llamadas a la API
│ │ ├── utils/ # Utilidades y funciones auxiliares
│ │ └── App.js # Componente principal de la aplicación
│ ├── eslint.config.js # Configuración de ESLint
│ ├── postcss.config.js # Configuración de PostCSS
│ ├── tailwind.config.js # Configuración de TailwindCSS
│ └── vite.config.js # Configuración de Vite
├── server/ # Código del backend (API y lógica del servidor)
│ ├── controllers/ # Controladores que gestionan la lógica de las rutas
│ ├── database/ # Configuración de la base de datos
│ ├── interfaces/ # Definiciones de tipos de datos e interfaces
│ ├── middleware/ # Middleware para autenticación, logs, etc.
│ ├── models/ # Modelos de la base de datos (ORM)
│ ├── node_modules/ # Dependencias del servidor
│ ├── routes/ # Definición de las rutas de la API
│ ├── uploads/ # Archivos subidos por los usuarios
│ ├── utils/ # Funciones de utilidad usadas en el servidor
│ └── .env # Variables de entorno para el servidor
└── README.md # Documentación del proyecto
Para usar GitGame, sigue los pasos a continuación:
Registro e Inicio de Sesión: Los usuarios deben registrarse o iniciar sesión para interactuar con la plataforma.
Explorar Secciones: Los usuarios pueden explorar noticias, videos y lanzamientos de forma libre.
Crear Reseñas: Los usuarios registrados pueden crear y ver reseñas.
Acciones del Administrador: Los administradores pueden crear, editar y eliminar noticias, videos, lanzamientos y reseñas.
: Sistema de control de versiones para seguimiento de cambios en el código.
: Plataforma para alojar el repositorio, colaborar y gestionar issues.
: Librería para manejar variables de entorno, manteniendo la configuración sensible segura y separada del código fuente.
Estas tecnologías fueron seleccionadas para ofrecer un equilibrio entre rendimiento, escalabilidad y facilidad de desarrollo, permitiendo que GitGame sea una plataforma rápida, segura y fácil de mantener.
Esta documentación proporciona una guía completa para interactuar con nuestra API, diseñada para facilitar la integración y el uso de los servicios backend. A través de Postman, podrás realizar pruebas, explorar los distintos endpoints y comprender las respuestas de la API de manera efectiva.