You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🚀 CodeLive — Plataforma Interactiva de Aprendizaje de Programación
Aprende HTML, CSS, JavaScript, PHP, Node.js y SQL de forma gamificada con niveles, rankings y seguimiento de progreso.
🏗️ Stack Tecnológico
Capa
Tecnología
Frontend
React 19 + Vite 8 + react-router-dom
Backend
Node.js + Express 5 (CommonJS)
Base de datos
PostgreSQL 16
Autenticación
JWT (jsonwebtoken + bcrypt)
i18n
i18next (ES / EN / CA)
Despliegue
Vercel (frontend) + Render (backend + DB)
📁 Estructura del Proyecto
codelive/
├── render.yaml # Bluepint de despliegue en Render
├── Makefile # Comandos Docker rápidos
├── docs/ # Documentación de páginas y componentes
└── sources/
├── docker-compose.yml # Entorno de desarrollo local
├── db/
│ └── init.sql # Esquema inicial de PostgreSQL
├── frontend/ # React + Vite SPA
│ ├── vercel.json # Config de despliegue Vercel
│ ├── Dockerfile # Multi-stage build (nginx)
│ └── src/
│ ├── components/ # Componentes reutilizables
│ ├── pages/ # Páginas por sección
│ ├── services/ # Clientes API (Axios)
│ ├── routes/ # Definición de rutas
│ └── i18n/ # Configuración de idiomas
└── backend/ # Node.js + Express API
├── .env.example # Variables de entorno necesarias
├── Dockerfile # Imagen de producción
└── src/
├── config/ # DB, JWT
├── controllers/ # Lógica de negocio
├── middleware/ # Auth (protect + restrictTo)
├── models/ # Consultas SQL
├── routes/ # Rutas de la API
└── seed/ # Script de inicialización
⚡ Desarrollo Local (Docker)
Requisitos
Docker Desktop instalado y en ejecución
Pasos
# 1. Clonar el repositorio
git clone <url-del-repo>cd codelive
# 2. Copiar y configurar variables de entorno
cp sources/backend/.env.example sources/backend/.env
# Edita sources/backend/.env con tus valores# 3. Levantar todos los servicios
make build # Construye y arranca los contenedores
make open # Abre el frontend y backend en el navegador# 4. (Opcional) Crear usuarios admin/editor iniciales
make seed
make build # Construir y arrancar contenedores
make up # Arrancar sin reconstruir
make down # Parar contenedores
make logs # Ver logs en tiempo real
make restart # Reiniciar todos los servicios
make clean # Parar y eliminar volúmenes (borra la DB)
make seed # Crear usuarios admin y editor iniciales
Render detecta automáticamente el render.yaml en la raíz
Haz clic en "New Blueprint Instance"
Render creará automáticamente:
🐘 Base de datos PostgreSQL (codelive-postgres-db)
🖥️ Servicio web backend (codelive-backend)
Añade manualmente las variables de entorno sensibles:
JWT_SECRET = una cadena larga y segura
CORS_ORIGINS = URL de tu frontend en Vercel (ej: https://codelive.vercel.app)
🔐 Variables de Entorno
Backend (sources/backend/.env)
PORT=3000NODE_ENV=development# Base de datos (usa DATABASE_URL en producción - Render lo provee automáticamente)DATABASE_URL=postgres://admin:admin@localhost:5432/codelive_db# Credenciales individuales (para desarrollo local)DB_USER=adminDB_PASSWORD=adminDB_HOST=localhostDB_NAME=codelive_dbDB_PORT=5432# SeguridadJWT_SECRET=cambia_esto_por_una_clave_muy_larga_y_segura# CORSCORS_ORIGINS=http://localhost:5173,https://tu-dominio.vercel.app
Frontend (sources/frontend/.env.local)
VITE_API_URL=http://localhost:3000
👥 Roles de Usuario
Rol
Acceso
guest
Home, Dashboard (lectura), Login, Signin, Terms
user
+ Perfil, Progreso, Ranking, Niveles de aprendizaje