Skip to content

Vitinho163/In.orbit-backend

Repository files navigation

In.orbit: Back-End


English

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.

Summary

🚀 Technologies Used

  • 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.

📁 Structure of the project

├── 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.

🛠️ Installation

  1. Clone the repository or download the ZIP file from the repository.
git clone https://github.com/Vitinho163/In.orbit-backend.git
  1. Install dependencies:
npm install
  1. Rename the .env.example file to .env and fill in the information:
DATABASE_URL="postgresql://docker@localhost:5432/inorbit"
  1. Run the migration:
npx drizzle-kit migrate
  1. Start the server:
npm run dev

💻 Deploy

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


Português

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.

Sumário

🚀 Tecnologias Utilizadas

  • 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.

📁 Estrutura do Projeto

├── 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.

🛠️ Instalação

  1. Clone o repositório ou faça o download do arquivo ZIP:
git clone https://github.com/Vitinho163/In.orbit-backend.git
  1. Instale as dependências:
npm install
  1. Renomeie o arquivo .env.example para .env e preencha as informações:
DATABASE_URL="postgresql://docker@localhost:5432/inorbit"
  1. Execute a migração:
npx drizzle-kit migrate
  1. Inicie o servidor:
npm run dev

💻 Deploy

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.

Criado com ❤️ por João Victor

Releases

No releases published

Packages

No packages published