Este repositorio es la base para el Trabajo Práctico de la materia Desarrollo de Software (DDS) de la carrera Ingeniería en Sistemas de Información de la UTN FRBA. Se trata de un monorepo que integra una aplicación frontend con Create React App y un backend con Express, facilitando el desarrollo y la gestión de ambos proyectos en un único entorno.
El monorepo está organizado de la siguiente manera:
.
├── packages/
│ ├── backend/ # Servidor Express.js
│ └── frontend/ # Aplicación React (Create React App)
├── package.json # Configuración del monorepo (root)
├── README.md # Este archivo
└── .env.example # Ejemplo de configuración de variables de entorno
Este monorepo utiliza npm workspaces
para gestionar los diferentes paquetes.
El backend está construido con Express.js y utiliza las siguientes dependencias:
express
: El framework web para Node.js, utilizado para construir la API.cors
: Middleware para Express que habilita Cross-Origin Resource Sharing (CORS), necesario para permitir que el frontend acceda al backend desde un origen diferente.dotenv
: Carga variables de entorno desde un archivo.env
enprocess.env
. Es crucial para configurar el puerto del servidor y los orígenes permitidos.
La idea es dar lo mínimo para levantar el servidor, y que durante el desarrollo del TP se vayan agregando las dependencias necesarias.
El frontend es una aplicación de React generada con Create React App.
Seguí estos pasos para poner en marcha el proyecto:
Desde la raíz del monorepo, ejecutá:
npm install
Esto instalará todas las dependencias para la raíz y para los paquetes frontend
y backend
.
Crea un archivo .env
en el directorio packages/backend
. Puedes usar el archivo .env.example
como plantilla.
# packages/backend/.env
ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
SERVER_PORT=3001
ALLOWED_ORIGINS
: Define los orígenes permitidos para las solicitudes CORS. Asegurate de incluir la URL donde se ejecuta tu frontend (por defecto,http://localhost:3000
para Create React App). Cuando se haga el despliegue en nube acá se deberá incluir la URL donde se desplegó el frontend.SERVER_PORT
: El puerto en el que se ejecutará el servidor backend (ej.8000
).
Podés iniciar el frontend y el backend por separado o ambos a la vez:
npm run start:backend
Para el desarrollo con reinicio automático:
npm run dev:backend
npm run start:frontend
Para iniciar el backend en modo dev
y el frontend simultáneamente, usá:
npm run start:dev