Este readme também pode ser lido em Português ou English.
Este é o backend para o sistema de entrega, desenvolvido utilizando Node.js, Express, Typescript, Prisma ORM com PostgreSQL e Swagger para documentação da API.
- src/controllers: Contém os controladores das rotas.
- src/repositories: Contém os repositórios para interagir com o banco de dados.
- src/services: Contém os serviços que implementam a lógica de negócio.
- src/http/server.ts: Arquivo de entrada do servidor Express.
- src/http/routes/index.ts: Contém as rotas da aplicação.
A documentação completa da API pode ser acessada em http://localhost:5555/api-docs após iniciar o servidor. A documentação é gerada utilizando Swagger.
- Node.js v20.0.0 ou superior
- PostgreSQL
- pnpm ou npm
- Docker
- Clone o repositório:
git clone https://github.com/ThiLourenco/delivery-backend.git
cd delivery-backend
- Instale as dependências:
pnpm install
ou
npm install
- Instalação com Docker:
Este repositório contém os artefatos necessários para executar usando Docker. Primeiro de tudo, você precisará instalar alguns pré-requisitos, caso ainda não estejam instalados:
- Instalar o Docker.
docker compose up
- Configure o banco de dados PostgreSQL e crie um arquivo .env na raiz do projeto com a URL do banco de dados:
DATABASE_URL=postgresql://<usuario>:<senha>@<host>:<porta>/<database>?schema=public
- Execute as migrações do Prisma para criar as tabelas no banco de dados:
npx prisma migrate dev --name init
- Gere o cliente Prisma:
npx prisma generate
Para iniciar o servidor em modo de desenvolvimento, use:
pnpm dev
ou
npm run dev
O servidor será iniciado em http://localhost:5555 ou sua porta preferida.
pnpm test
or
npm run test
Se você deseja contribuir com este projeto, siga os passos abaixo:
- Faça um fork do repositório.
- Crie uma branch para sua feature (git checkout -b minha-feature).
- Commit suas alterações (git commit -am 'Adiciona nova feature').
- Envie para o branch (git push origin minha-feature).
- Crie um novo Pull Request.
Este projeto está licenciado sob a licença MIT. Veja o arquivo MIT License para mais detalhes.