Sistema de gestión de tareas escolares para profesores y estudiantes.
school-tasks-monorepo/
├── backend/ # API REST con Node.js/Express
├── frontend/ # Aplicación web con React/Next.js
├── README.md # Este archivo
└── .gitignore # Archivos a ignorar en Git
- Roles: Profesor, Estudiante
- Colecciones:
- Usuarios (autenticación y perfiles)
- Tareas (creación, asignación, seguimiento)
- Entregas (con soporte para archivos PDF)
- Node.js + Express
- MongoDB (base de datos)
- JWT (autenticación)
- Multer (manejo de archivos)
- React + Next.js
- TypeScript
- Tailwind CSS
- Axios (cliente HTTP)
- Node.js (v18+)
- MongoDB (local o Docker)
- Git
- Docker (Recomendado):
docker run -d -p 27017:27017 --name mongodb mongo:latest - MongoDB Local: Descargar desde https://www.mongodb.com/try/download/community
- MongoDB Atlas: Base de datos en la nube (gratis)
- Clonar el repositorio:
git clone <repository-url>
cd school-tasks-monorepo- Instalar dependencias:
# Instalar dependencias del backend
cd backend
npm install
# Instalar dependencias del frontend
cd ../frontend
npm install- Configurar variables de entorno:
# Backend
cp backend/.env.example backend/.env
# Editar backend/.env con tus configuraciones
# Frontend
cp frontend/.env.example frontend/.env.local
# Editar frontend/.env.local con tus configuraciones# Ejecutar todo automáticamente
start-all.bat
# O ejecutar por separado
start-project.bat # Solo backend
start-frontend.bat # Solo frontend# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev- Backend: http://localhost:3001
- Frontend: http://localhost:3000
POST /api/auth/login- Iniciar sesiónPOST /api/auth/register- RegistrarsePOST /api/auth/logout- Cerrar sesión
GET /api/users- Listar usuariosGET /api/users/:id- Obtener usuarioPUT /api/users/:id- Actualizar usuario
GET /api/tasks- Listar tareasPOST /api/tasks- Crear tareaGET /api/tasks/:id- Obtener tareaPUT /api/tasks/:id- Actualizar tareaDELETE /api/tasks/:id- Eliminar tarea
GET /api/submissions- Listar entregasPOST /api/submissions- Crear entregaGET /api/submissions/:id- Obtener entregaPUT /api/submissions/:id- Actualizar entrega
- Fork el proyecto
- Crear una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para detalles.