diff --git a/README.md b/README.md index d1067dc..1a85581 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,16 @@ Un CRUD/ABM (Create, Retrieve, Update, Delete ó Alta, Baja, Modificación) de c ## Cómo instalar y correr este proyecto El proyecto se instala con `npm install` + +Una vez instalado, hay que copiar el archivo `.env.dist` y a su copia, ponerle `.env` y completar los valores que están puestos dentro `LLAVE=VALOR`. + El proyecto se corre con: ``` npm run start # corre el proyecto en modo producción npm run dev # corre el proyecto en modo desarrollo -npm run test # corre el proyecto con tests de jest y recolecta el code coverage +npm run test # corre tests de jest y recolecta el code coverage +npm run test:dev # corre tests de jest de manera continua (watch) npm run test:ui # corre pruebas de interfaz en modo "headless" npm run test:ui:dev # corre pruebas de interfaz con un navegador con el que se puede interactuar npm run test:integration # corre pruebas de newman (postman) @@ -22,22 +26,30 @@ npm run test:integration # corre pruebas de newman (postman) Adaptado de https://softwareontheroad.com/ideal-nodejs-project-structure/ -``` -data # contiene las bases de datos de SQLite (producción y prueba) -│ data.sqlite # Base de datos en producción (para este proyecto de ejemplo) -│ test.sqlite # Base de datos para pruebas (esto se puede usar en proyectos reales) -└─── migrations # contiene las migraciones -└─── migrations -src -│ app.js # Punto de entrada de la aplicación -└─── controller # Rutas de express -└─── config # Configuración de variables de entorno -└─── job # Procesamiento por baches/cronjobs -└─── loader # Divide el proceso de inicialización en varios módulos -└─── model # Módulos de base de datos -└─── service # Toda la lógica de negocio -└─── view # Archivos de presentación (frontend) de este módulo -``` +| Ruta | explicación | +| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| data | contiene las bases de datos de SQLite | +| data/database.db | base de datos principal del proyecto | +| data/session.db | base de datos para guardar las sesiones de nuestro proyecto | +| public | contiene los archivos estáticos que va a servir el navegador, acá se guardan las imágenes subidas | +| src | contiene toda nuestra aplicación | +| src/app.js | punto de entrada de nuestra aplicación | +| src/config | configuración de nuestra aplicación | +| src/config/di.js | configuración de dependencias (Dependency Injection) | +| src/module | contiene cada uno de los módulos de nuestra aplicación | +| src/module/view | contiene vistas comunes a todos los módulos | +| src/module/view/layout | contiene layouts comunes a todos los módulos | +| src/module/view/layout/base.html | contiene el layout base de todas las vistas | +| src/module/abstractController.js | controlador abstracto base (por ahora sin funcionalidad) | +| src/module/club | todo lo que tiene que ver con clubes | +| src/module/club/controller | punto de entrada a nuestro controlador, maneja requests de HTTP | +| src/module/club/entity | la entidad Club de nuestro dominio | +| src/module/club/job | trabajos en bache realizados por este módulo (en este caso hay un único trabajo que se baja datos de la API de open football) | +| src/module/club/mapper | mapea desde o hacia la entidad de club | +| src/module/club/repository | interactúa con la capa de acceso a datos (DAL) y devuelve entidad(es) | +| src/module/club/service | lógica de negocio de nuestra aplicación | +| src/module/club/view | archivos de presentación (interfaz) que se procesarán del lado del servidor (SSR, server side rendering) | +| src/module/club/module.js | archivo de entrada a este módulo que lo inicializa | ## Configuración del IDE