Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/brendon3578/node-in-orbit-server


https://github.com/brendon3578/node-in-orbit-server

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        


In Orbit
in.orbit - Server

![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)
![Zod](https://img.shields.io/badge/zod-%233068b7.svg?style=for-the-badge&logo=zod&logoColor=white)
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![Fastify](https://img.shields.io/badge/fastify-%23000000.svg?style=for-the-badge&logo=fastify&logoColor=white)
![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)

## 💻 Projeto

In Orbit Logo

Essa aplicação é um Backend voltado para o gerenciamento de hábitos e metas ao longo da semana. É possível visualizar as metas e gerenciar a frequência da qual a meta será realizada ao longo da semana.

Com ele é possível:

- Criar e gerenciar as suas metas/hábitos
- Visualizar as metas realizadas ao longo da semana ou de um dia
- Gerenciar a frequência da realização de metas

Essa aplicação foi desenvolvida para utilizar com este [Front-end](https://github.com/Brendon3578/node-in-orbit-web). Também é possível testar as rotas da aplicação através da pasta `/http-client-examples` com a extensão [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) do Visual Studio Code.

## ✨ Tecnologias

- [Fastify](https://www.fastify.io/) - Biblioteca para a criação de um servidor HTTP RESTful
- [Zod](https://zod.dev/) - Utilizado para validação de dados trafegados das rotas
- [PostgreSQL](https://www.postgresql.org/) - Banco de dados utilizado para a implementação um banco de dados robusto e escalável
- [Drizzle ORM](https://orm.drizzle.team/) - Object Relational Mapping (ORM) utilizado para facilitar a construção de **Querys** feitas para o PostgreSQL
- [Dayjs](https://day.js.org/) - Biblioteca para manipulação de estrutura de datas.

## 🔥 Iniciar a aplicação

Antes de tudo é necessário ter o banco de dados PostgreSQL instalado, localmente ou em um container do Docker, e saber sua string de conexão e defini-la em um arquivo `.env` (pegue como exemplo o arquivo `.env.example`).

```bash
# Baixar as dependências
npm install

# Popular o banco de dados através do Drizzle ORM (src/db/seed.ts)
npm run seed

# Iniciar o servidor http no ambiente de desenvolvimento na porta 3333 (http://localhost:3333)
npm run dev
```

---


Feito com ☕ por Brendon Gomes