Este é o repositório do projeto Rinha Backend 2024/Q1, uma aplicação backend desenvolvida com TypeScript e diversas ferramentas modernas para proporcionar uma estrutura robusta e escalável.
- Instalação
- Configuração
- Scripts Disponíveis
- Estrutura de Pastas
- Tecnologias Utilizadas
- Testes
- Contribuição
- Licença
Para instalar as dependências do projeto, execute:
npm install
Crie um arquivo .env
na raiz do projeto e adicione as seguintes variáveis de ambiente:
DATABASE_URL=your_database_url
Para executar o projeto utilizando Docker, certifique-se de ter o Docker instalado em sua máquina e execute:
docker-compose up
No diretório do projeto, você pode executar:
Roda a aplicação em modo de desenvolvimento.Abra http://localhost:3000 para ver no navegador.
Compila a aplicação para produção na pasta dist
.
Inicia a aplicação em produção a partir da pasta dist
.
Executa os testes utilizando o Vitest.
src/
├── @types/ # Definições de tipos
├── controllers/ # Controladores da aplicação
├── dtos/ # Objetos de Transferência de Dados
├── errors/ # Classes de erros personalizados
├── repositories/ # Repositórios de dados
├── services/ # Serviços de negócio
├── .dockerignore # Arquivo Docker ignore
├── .editorconfig # Configurações do editor
├── .gitattributes # Atributos Git
├── .gitignore # Arquivo Git ignore
├── Dockerfile # Dockerfile para criação da imagem Docker
├── compose.yaml # Arquivo de configuração do Docker Compose
├── eslint.config.js # Configuração do ESLint
├── package-lock.json # Lockfile do npm
├── package.json # Arquivo de configuração do npm
├── tsconfig.json # Configuração do TypeScript
└── vite.config.ts # Configuração do Vite
- Node.js: Ambiente de execução para JavaScript.
- TypeScript: Superconjunto de JavaScript que adiciona tipos estáticos.
- Express: Framework web para Node.js.
- Prisma: ORM para Node.js e TypeScript.
- Docker: Plataforma para desenvolvimento de aplicações em containers.
- Vitest: Framework de testes unitários.
- ESLint: Ferramenta para análise estática de código.
- Vite: Ferramenta de build e desenvolvimento.
Para executar os testes, utilize o comando:
npm test
Contribuições são bem-vindas! Por favor, abra uma issue ou envie um pull request.
- Faça um fork do projeto.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
). - Faça commit das suas alterações (
git commit -m 'Adiciona nova feature'
). - Faça push para a branch (
git push origin feature/nova-feature
). - Abra um pull request.