Este projeto é a API para o MelloApp, um aplicativo desenvolvido para gerenciar desafios, interações com usuários, e armazenar informações sobre dados.
- Descrição
- Tecnologias Usadas
- Como Rodar o Projeto
- Variáveis de Ambiente
- Estrutura do Projeto
- Como Contribuir
- Licença
O MelloApp API é uma aplicação que permite a criação de desafios e acompanhamento de progresso. Ela interage com o banco de dados MongoDB e expõe endpoints para manipulação de dados. O backend foi desenvolvido usando Node.js, Express e MongoDB, com autenticação JWT para segurança.
- Node.js - Ambiente de execução JavaScript.
- Express.js - Framework para criação de APIs.
- MongoDB - Banco de dados NoSQL.
- JWT - Autenticação baseada em tokens.
- Docker - Para facilitar a containerização da aplicação.
- dotenv - Carregamento de variáveis de ambiente.
Certifique-se de ter as seguintes ferramentas instaladas:
-
Clone o repositório:
git clone https://github.com/seu-usuario/melloapp-api.git cd melloapp-api -
Instale as dependências:
Se estiver utilizando o NPM:
npm install
Ou, se estiver utilizando o Yarn:
yarn install
-
Configuração do Docker:
-
Certifique-se de que o Docker está instalado e em execução na sua máquina.
-
Suba os containers necessários para o banco de dados e a aplicação:
docker-compose up -d
O servidor estará disponível em
http://localhost:7272. -
Se preferir rodar o projeto utilizando Docker, execute o seguinte comando:
docker-compose up --buildO arquivo .env deve conter as seguintes variáveis de ambiente:
- MONGO_INITDB_DATABASE: Nome do banco de dados MongoDB.
- MONGO_INITDB_ROOT_USERNAME: Usuário admin do MongoDB.
- MONGO_INITDB_ROOT_PASSWORD: Senha do usuário admin do MongoDB.
- API_PORT: Porta na qual a API irá rodar.
- SECRET: Chave secreta utilizada para gerar o JWT.
- CONNECTION_STRING: String de conexão com o banco de dados MongoDB.
Exemplo de um arquivo .env:
MONGO_INITDB_DATABASE=mello-db
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=admin123
API_PORT=7272
SECRET=secret
CONNECTION_STRING=mongodb://root:admin123@mello-db:27017/mello-db?authSource=admin
A estrutura básica do projeto é a seguinte:
melloapp-api/
├── src/
│ ├── config/
│ │ └── db.ts # Configuração do banco de dados
│ ├── middlewares/ # Controladores da API
│ ├── models/ # Modelos de dados
│ ├── routes/ # Rotas da API
│ ├── services/ # Lógica de negócios
│ └── utils/ # Funções utilitárias
├── .env # Arquivo de variáveis de ambiente
├── Dockerfile # Dockerfile para desenvolvimento
├── docker-compose.yml # Arquivo de configuração do Docker
├── package.json # Dependências do Node.js
└── README.md # Este arquivo
- Fork o repositório
- Crie uma branch para a sua feature:
git checkout -b minha-nova-feature - Faça as alterações e adicione testes (se necessário)
- Commit suas alterações:
git commit -am 'Adicionando nova feature' - Push na sua branch:
git push origin minha-nova-feature - Abra um Pull Request