API REST desenvolvida com NestJS, Prisma e PostgreSQL. Inclui autenticação via GitHub OAuth, gerenciamento de metas e tarefas, além de testes unitários e de integração para garantir confiabilidade.
A inOrbit API é uma aplicação back-end desenvolvida para o gerenciamento de metas pessoais, permitindo integração com OAuth, controle de tarefas e acompanhamento de progresso individual.
Com ela, você pode:
- Criar conta via GitHub OAuth
- Cadastrar metas
- Registrar hábitos diários e acompanhar o progresso
- Gerenciar tarefas com status
- Visualizar métricas de desempenho pessoal
- Framework Node.js moderno e escalável.
- ORM para modelagem e migrações de banco de dados.
- Banco de dados relacional robusto e confiável.
- Autenticação baseada em tokens.
- Documentação automática da API.
- Validação de esquemas.
- Tipagem estática e segurança no código.
- Testes rápidos e integrados ao ecossistema Vite.
- Clone o repositório e acesse o diretório do projeto:
git clone https://github.com/oliveiradniel/in.orbit-server.git
cd in.orbit-server- Instale as dependências:
yarn- Copie o arquivo de variáveis de ambiente:
cp .env.example .env💡 Dica: adicione o arquivo
.envao.gitignorepara evitar o versionamento de dados sensíveis.
O projeto utiliza um arquivo .env com as seguintes variáveis:
| Nome | Descrição | Exemplo |
|---|---|---|
PORT |
Porta usada para rodar o servidor | 3000 |
HOST |
Host da conexão | 127.0.0.1 |
FRONTEND_ORIGIN |
Origem permitida pela política CORS | http://localhost:5173 |
POSTGRES_PORT |
Porta usada pelo banco PostgreSQL | 5432 |
POSTGRES_HOST |
Host do banco de dados | pg |
POSTGRES_USER |
Usuário do banco PostgreSQL | postgres_user |
POSTGRES_PASSWORD |
Senha do banco PostgreSQL | postgres_password |
POSTGRES_DB |
Nome do banco de dados | my_database |
DATABASE_URL |
URL de conexão com o banco | postgresql://postgres_user:postgres_password@localhost:5432/my_database?schema=public |
GITHUB_CLIENT_ID |
ID gerado pelo GitHub para OAuth | AIzaSy... |
GITHUB_CLIENT_SECRET |
Chave secreta gerada pelo GitHub | AKIA... |
JWT_SECRET |
Chave usada para assinar tokens JWT | unsecure_jwt_secret |
NODE_ENV |
Define o ambiente de execução | development |
⚠️ A variávelJWT_SECRETdeve conter uma chave forte e segura.
Esta aplicação utiliza PostgreSQL via Docker Compose. Para subir o banco de dados, execute:
docker-compose up -dA imagem da API está comentada no arquivo docker-compose.yml.
Caso queira executá-la junto ao banco, basta descomentar e ajustar o env_file conforme suas variáveis de ambiente.
Após configurar o banco, gere os arquivos do Prisma e aplique as migrações:
npx prisma generate
npx prisma migrate devyarn start:devCertifique-se de que o banco de dados e as variáveis de ambiente estão configurados corretamente antes de iniciar o projeto.
O projeto inclui testes unitários e de integração usando Vitest.
Para rodar todos os testes:
yarn testPara rodar os testes unitários:
yarn test:unitPara rodar os testes de intergração:
yarn test:intApós iniciar o servidor, acesse a documentação interativa com Swagger em: 👉 http://localhost:3000/docs