Plataforma de aprendizaje electrónico construida con Next.js 15 (App Router).
/src
├── app
│ ├── layout.js # Layout global (Navbar + Footer)
│ ├── page.js # Landing Page (Home)
│ │
│ ├── auth # Rutas de autenticación
│ │ ├── login/page.js
│ │ ├── register/page.js
│ │ └── forgot-password/page.js
│ │
│ ├── dashboard # Panel Estudiante (protegido)
│ │ ├── layout.js # DashboardLayout (Navbar/Sidebar)
│ │ ├── page.js # Resumen del usuario
│ │ ├── profile/page.js
│ │ ├── settings/page.js
│ │ └── progress/page.js
│ │
│ ├── courses # Catálogo de cursos (público/privado)
│ │ ├── page.js # Listado de cursos
│ │ └── [id]
│ │ ├── page.js # Detalle curso
│ │ ├── overview/page.js
│ │ ├── lessons
│ │ │ ├── page.js
│ │ │ └── [lessonId]/page.js # Course Player
│ │ ├── quizzes
│ │ │ └── [quizId]/page.js
│ │ └── resources/page.js
│ │
│ ├── instructor # Panel del Instructor (role-based)
│ │ ├── layout.js
│ │ ├── courses/page.js # Mis cursos creados
│ │ ├── create/page.js
│ │ ├── edit/[id]/page.js
│ │ └── analytics/page.js
│ │
│ ├── admin # Panel del Admin (role-based)
│ │ ├── layout.js
│ │ ├── users/page.js
│ │ ├── courses/page.js
│ │ ├── payments/page.js
│ │ └── settings/page.js
│ │
│ ├── payments
│ │ ├── checkout/page.js
│ │ └── history/page.js
│ │
│ ├── help
│ │ ├── faq/page.js
│ │ ├── contact/page.js
│ │ └── terms/page.js
│ │
│ └── not-found.js # Página 404
│
├── components # UI compartida
│ ├── ui/ # Botones, inputs, modales, tablas
│ ├── Navbar.jsx
│ ├── Sidebar.jsx
│ ├── Footer.jsx
│ ├── Hero.jsx
│ ├── AboutUs.jsx
│ ├── Features.jsx
│ ├── Partners.jsx
│ ├── Pricing.jsx
│ └── CTA.jsx
│
├── context
│ └── AuthContext.jsx # Manejo de sesión (JWT, roles)
│
├── lib
│ ├── axios.js # Cliente API con interceptores
│ ├── auth.js # Helpers de autenticación
│ └── utils.js # Formatters, helpers
│
├── hooks
│ ├── useAuth.js
│ ├── useCourse.js
│ └── usePayment.js
│
└── styles
└── globals.css # Tailwind + estilos globales
-
Clona el repositorio:
git clone https://github.com/tu-usuario/front-e-learning.git cd front-e-learning
-
Instala dependencias:
npm install
-
Inicia el servidor de desarrollo:
npm run dev
- Utiliza Next.js 15 con App Router.
- Arquitectura modular y escalable.
- Roles: estudiante, instructor, administrador.
- Autenticación basada en JWT.
- UI construida con componentes reutilizables y Tailwind CSS.
git clone <URL-del-repo>
cd <nombre-del-repo>
git switch develop
git switch develop
git pull origin develop # trae lo último
git switch -c feature/nombre-de-tu-tarea
Convención de nombres:
feature/...
→ nuevas funcionalidadesfix/...
→ arregloschore/...
→ tareas menores
Ejemplo:
feature/login-page
fix/navbar-bug
git add .
git commit -m "feat(login): formulario básico"
git push -u origin feature/nombre-de-tu-tarea
Luego en GitHub:
- Base:
develop
- Compare:
feature/nombre...
- Crea el Pull Request ✅
Antes de empezar a trabajar:
git switch develop
git pull origin develop # actualiza develop
git switch feature/nombre
git merge develop # trae lo último a tu rama
Así todos trabajamos siempre con la base actualizada.
Limpieza de ramas que ya se integraron:
git branch -d feature/nombre
git push origin --delete feature/nombre
main
: protegida, solo se actualiza en releases.develop
: base de desarrollo, todas las ramas se integran acá con PR.- Nada de pushes directos a
main
odevelop
. Siempre PR.
switch
para moverse entre ramasmerge
para traer cambios de developpush
y PR para colaborar