Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/cleilsonandrade/in.orbit-api

in.orbit-api é uma API Rest com o fim de realizar o gerenciamento de metas semanais, permitindo o cadastramento da meta, quantidade de dias que será realizada durante a semana, listagem, exibindo as metas da ultima semana baseando-se no dia atual com a contagem de dias que a meta foi realizada e permitindo a atualização de uma meta como concluída.
https://github.com/cleilsonandrade/in.orbit-api

api-rest backend biomejs commitizen commitlint common-table-expression conventional-commits dayjs drizzle-orm fastify goal-tracking lint-staged mysql mysql2 sql swagger tsup typescript zod

Last synced: 4 days ago
JSON representation

in.orbit-api é uma API Rest com o fim de realizar o gerenciamento de metas semanais, permitindo o cadastramento da meta, quantidade de dias que será realizada durante a semana, listagem, exibindo as metas da ultima semana baseando-se no dia atual com a contagem de dias que a meta foi realizada e permitindo a atualização de uma meta como concluída.

Awesome Lists containing this project

README

        


in.orbit-api


in.orbit-api é uma API Rest com o fim de realizar o gerenciamento de metas semanais, permitindo o cadastramento da meta, quantidade de dias que será realizada durante a semana, listagem, exibindo as metas da ultima semana baseando-se no dia atual com a contagem de dias que a meta foi realizada e permitindo a atualização de uma meta como concluída.


Flow

# 📒 Índice
* [Descrição](#descrição)
* [Requisitos Funcionais](#requisitos)
* [Features](#features)
* [Tecnologias](#tecnologias)
* [Endpoints](#endpoints)
* [Instalação](#instalação)
* [Licença](#licença)

# 📃 Descrição
in.orbit-api é uma API Rest com o fim de realizar o gerenciamento de metas semanais, permitindo o cadastramento da meta, quantidade de dias que será realizada durante a semana, listagem, exibindo as metas da ultima semana baseando-se no dia atual com a contagem de dias que a meta foi realizada e permitindo a atualização de uma meta como concluída. Aplicação desenvolvida utilizando a API tecnologia [**TypeScript**](https://www.typescriptlang.org/), com a biblioteca [**Fastify**](https://www.fastify.io/) para web server, [**Drizzle ORM**](https://orm.drizzle.team/) para manipulação de dados do banco e o banco de dados SQL [**MySQL**](https://www.mysql.com/), [**Zod**](https://github.com/colinhacks/zod) para as validações e [**biomejs**](https://biomejs.dev/) para formatter e linter para a sintaxe.
.

# 📌 Requisitos Funcionais
- [x] Cadastrar metas para a semana com quantidade de dias para realizar

- [x] Listagem das metas da ultima semana com quantidade de dias que foram completados na semana

- [x] Marcar meta como completa, validando se não foi completada antes e contando os dias de concluído

- [x] Resumo das metas da ultima semana com valor total das mesmas e detalhes de cada uma agrupadas por dia

## Features
- [x] Utilização de Common Table Expression (CTE)

# 💻 Tecnologias
- **TypeScript**
- **Fastify**
- **Zod**
- **drizzle-orm**
- **MySQL**
- **biomejs**

# 📍 Endpoints
| Método | Endpoint | Resumo
|--------|----------------------|-----------------------------------------------------
POST | /goals | Responsável por cadastrar uma nova meta para a semana informado titulo e quantidade dias a serem realizada(s)
GET | /pending-goals | Responsável por listar as metas da ultima semana com a contagem dos dias de frequência completados e não completados
POST | /completions | Responsável por validar e marcar como concluída uma meta da semana, informando o ID via corpo de requisição, identificando se todos os dias foram completados
GET | /summary | Responsável por listar um resumo das metas da ultima semana com valor total das mesmas e detalhes de cada uma agrupadas por dia
GET | /docs | Responsável por servir a documentação dos recursos da API

# 🚀 Instalação
```bash
# Clone este repositório:
$ git clone https://github.com/CleilsonAndrade/in.orbit-api.git
$ cd ./in.orbit-api

# Instalar as dependências:
$ yarn install

# Aplicar migrações ao banco de dados:
$ yarn drizzle-kit migrate

# Aplicar seed:
$ yarn seed

# Executar:
$ yarn dev
```

# 📝 Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

---


Feito com 💜 by CleilsonAndrade