In.orbit - Back-End is a Node.js application developed as part of Rocketseat's NLW Pocket event. It's a goal manager where users can create weekly goals, track progress, and view a summary of completed goals with a progress bar.
- Node.js: JavaScript runtime built on Chrome's V8 engine.
- Fastify: Fast and low overhead web framework for Node.js.
- @paralleldrive/cuid2: Secure, collision-resistant IDs for applications.
- Day.js: Fast and lightweight date library for JavaScript.
- PostgreSQL: Powerful, open-source object-relational database system.
- Zod: TypeScript-first schema declaration and validation library.
- Drizzle ORM: Lightweight TypeScript ORM.
- Biome: Tool for formatting and linting code.
- @fastify/static: Fastify plugin for serving static files.
- @scalar/fastify-api-reference: Fastify plugin for API documentation.
├── src: directory containing application source files
│ ├── db: directory containing database connection, schema, and seed files.
│ ├── documentation: directory containing API documentation files (Insomnia and Swagger).
│ ├── functions: directory containing exported function files (create-goal-completion, create-goal, get-week-pending-goals, get-week-summary).
│ ├── http: directory containing routes and server initialization files.
│ | ├── routes: directory with all the application routes.
| | └── server.ts: file initializing the application.
│ ├── env.ts: file validating environment variables with Zod.
├── .env.example: example file for environment variables.
- Clone the repository or download the ZIP file from the repository.
git clone https://github.com/Vitinho163/In.orbit-backend.git
- Install dependencies:
npm install
- Rename the
.env.example
file to.env
and fill in the information:
DATABASE_URL="postgresql://docker@localhost:5432/inorbit"
- Run the migration:
npx drizzle-kit migrate
- Start the server:
npm run dev
The back-end of this project is hosted on Render and can be accessed at:
https://in-orbit-backend.onrender.com/
Note: The application may take some time to respond if it's been idle due to Render's free tier limitations.
Created with ❤️ by João Victor
In.orbit - Back-End é uma aplicação Node.js desenvolvida durante a NLW Pocket da Rocketseat. É um gerenciador de metas onde os usuários podem cadastrar metas semanais, acompanhar o progresso e visualizar o histórico de metas realizadas com uma barra de progresso.
- Node.js: Ambiente de execução JavaScript baseado no motor V8 do Chrome.
- Fastify: Framework web rápido e leve para Node.js.
- @paralleldrive/cuid2: Geração de IDs seguros e resistentes a colisões.
- Day.js: Biblioteca de datas rápida e leve para JavaScript.
- PostgreSQL: Sistema de banco de dados relacional de código aberto.
- Zod: Biblioteca de validação de esquemas baseada em TypeScript.
- Drizzle ORM: ORM leve para TypeScript.
- Biome: Ferramenta para formatação e linting de código.
- @fastify/static: Plugin Fastify para servir arquivos estáticos. -@scalar/fastify-api-reference: Plugin Fastify para documentação de API.
├── src: diretório contendo os arquivos da aplicação
│ ├── db: diretório contendo a conexão com o banco de dados, schema e seed.
│ ├── documentation: diretório contendo arquivos de documentação da API (Insomnia e Swagger).
│ ├── functions: diretório com os arquivos das funções exportadas (create-goal-completion, create-goal, get-week-pending-goals, get-week-summary).
│ ├── http: diretório com as rotas e arquivos de inicialização da aplicação.
│ | ├── routes: diretório contendo as rotas da aplicação.
| | └── server.ts: arquivo de inicialização da aplicação.
│ ├── env.ts: arquivo validando as variáveis de ambiente com Zod.
├── .env.example: arquivo de exemplo para variáveis de ambiente.
- Clone o repositório ou faça o download do arquivo ZIP:
git clone https://github.com/Vitinho163/In.orbit-backend.git
- Instale as dependências:
npm install
- Renomeie o arquivo
.env.example
para.env
e preencha as informações:
DATABASE_URL="postgresql://docker@localhost:5432/inorbit"
- Execute a migração:
npx drizzle-kit migrate
- Inicie o servidor:
npm run dev
O back-end deste projeto está hospedado na Render e pode ser acessado em:
https://in-orbit-backend.onrender.com/
Nota: A aplicação pode demorar para responder se estiver inativa devido às limitações do plano gratuito da Render.