-
Crear archivo
.env
copiando el archivo.env.example
-
Rellenar el archivo
.env
con las credenciales correspondientesDB_USER
: El nombre de usuario para la base de datos PostgreSQL.DB_PASSWORD
: La contraseña para la base de datos PostgreSQL.DB_NAME
: El nombre de la base de datos PostgreSQL.DB_HOST
: La dirección del host de la base de datos PostgreSQL, por defecto127.0.0.1
para localhost.JWT_SECRET
: Una cadena secreta utilizada para firmar y verificar JSON Web Tokens (JWT). Debe ser una cadena segura y secreta.PORT
: El puerto en el que el servidor de la aplicación escuchará. Por defecto puede ser3000
o cualquier otro puerto disponible.CLOUDINARY_CLOUD_NAME
: El nombre de tu cuenta de Cloudinary, utilizado para la gestión de imágenes y archivos.CLOUDINARY_API_KEY
: La clave de API proporcionada por Cloudinary para autenticar las solicitudes.CLOUDINARY_API_SECRET
: El secreto de API proporcionado por Cloudinary para autenticar las solicitudes.
-
Instalar dependencias:
yarn install
- Ejecutar postgresql:
sudo service postgresql start
- Crear la base de datos y poblarla:
yarn db:reset
- Correr el backend:
yarn dev
- Correr los tests y ver la cobertura:
yarn test
Para ver los docs en local simplemente ingresa al endpoint /docs
desde la pagina principal.
koa
: Marco para la creación de la API@koa/cors
: Permite habilitar CORSkoa-body
: Middleware para analizar el cuerpo de las solicitudes HTTPkoa-logger
: Middleware para registrar las solicitudes y respuestas HTTPkoa-router
: Router para Koadotenv
: Carga variables de entorno desde un archivo.env
aprocess.env
.multer
: Middleware para la carga de archivos@koa/multer
: Middleware para la carga de archivos con Koacloudinary
: Cliente para el servicio de almacenamiento de imágenes o archivospg
: Cliente para la base de datos PostgreSQLpg-hstore
: Serializador/deserializador para el tipo de datos hstore de PostgreSQLsequelize
: ORM (Object-Relational Mapping) para Node.jskoa2-swagger-ui
: UI para documentación de la APIanchorme
: Para la detección de URLs en textobcrypt
: Para hashing de contraseñasjsonwebtoken
: Para la generación de JWTs (JSON Web Tokens)koa-bodyparser
: Middleware para el análisis del cuerpo de las solicitudes HTTPkoa-jwt
: Middleware para la autenticación JWT en Koakoa-websocket
: Para el soporte de WebSockets con Koareact-use-websocket
: Hooks personalizados para WebSockets en Reactyamljs
: Para la conversión de YAML a JSON y viceversa
eslint
: Herramienta de linting y formateo de códigonodemon
: Reinicia automáticamente la API cuando se realizan cambios en el códigosequelize-cli
: Permite utilizar comandos para Sequelize.jest
: Para testingfaker
: Genera datos falsos para testingsupertest:
Para testear requests