Skip to content

Api for Trips written as a hexagonal architecture, with express.js and mongo DB

Notifications You must be signed in to change notification settings

matisin/backend-trips

Repository files navigation

backend-trips

Backend de la mini app de trips escrita en express y mongo utilizando una arquitectura hexagonal, la base de datos se inicializa la primera vez que se corre la api

Project Setup

pnpm install

Compile and Hot-Reload for Development

pnpm start:dev

Compile for Production

pnpm build

Run Unit Tests with Jest

pnpm test

Run integration tests

me hubiera encantado tener tiempo de agregar test de integraciones, queria levantar el docker compose y hacer los test directo a los endpoints.

Lint with ESLint

pnpm lint

Docker y Docker compose

antes de correr, se debe crear un archivo vacio .env.local en la raiz.

para correr todo solo es necesario correr:

docker compose up

esto levantara la bd, el back y el front. para correr los contenedores en modo desarrollo con hot reload se debe descomentar el target tanto en la api y el front:

por ejemplo para la api pasaria de:

  trips-api:
    ports: 
      - 8000:3000
    env_file:
      - .env.local
    build:
      context: ./
      # target: dev
    volumes:
      - ./src:/workspace/src
    restart: always
    depends_on:
      - mongo
  trips-api:
    ports: 
      - 8000:3000
    env_file:
      - .env.local
    build:
      context: ./
      target: dev
    volumes:
      - ./src:/workspace/src
    restart: always
    depends_on:
      - mongo

y luego rebuildear el servicio

docker compose up --build trips-api

se recomienda correr el docker compose del repositorio del backend y dejar los dos repositorios juntos para que se pueda encontrar el repo del front desde el docker compose. es decir:

frontend-trips/
backend-trip/

cuando se termine el build, deberia estar la pagina en localhost:5173

About

Api for Trips written as a hexagonal architecture, with express.js and mongo DB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published