Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matheus-hrm/todo-tasks
Todo app with fastify
https://github.com/matheus-hrm/todo-tasks
fastify swagger-ui typescript
Last synced: 7 days ago
JSON representation
Todo app with fastify
- Host: GitHub
- URL: https://github.com/matheus-hrm/todo-tasks
- Owner: matheus-hrm
- Created: 2024-12-18T16:30:09.000Z (8 days ago)
- Default Branch: main
- Last Pushed: 2024-12-18T16:34:04.000Z (8 days ago)
- Last Synced: 2024-12-18T17:35:51.663Z (8 days ago)
- Topics: fastify, swagger-ui, typescript
- Language: TypeScript
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gerenciador de Tarefas
Este é um projeto de API para gerenciar tarefas, desenvolvido com Fastify e TypeScript.
## Funcionalidades
- Criar uma nova tarefa
- Listar todas as tarefas
- Obter uma tarefa por ID
- Atualizar uma tarefa
- Marcar uma tarefa como concluída
- Marcar uma tarefa como não concluída
- Excluir uma tarefa
- Obter estatísticas das tarefas## Tecnologias Utilizadas
- [Fastify](https://www.fastify.io/)
- [TypeScript](https://www.typescriptlang.org/)
- [Node.js](https://nodejs.org/)
- [fastify-formbody](https://github.com/fastify/fastify-formbody)
- [fastify-cors](https://github.com/fastify/fastify-cors)
- [fastify-swagger](https://github.com/fastify/fastify-swagger)
- [fastify-swagger-ui](https://github.com/fastify/fastify-swagger-ui)## Instalação
1. Clone o repositório:
```bash
git clone https://github.com/matheus-hrm/Todo-Tasks.git
cd Todo-Tasks
```2. Instale as dependências:
```bash
npm install
```3. Execute o servidor em modo de desenvolvimento:
```bash
npm run dev
```4. Acesse a documentação da API:
Abra o navegador e vá para [http://localhost:3000/docs](http://localhost:3000/docs)## Estrutura do Projeto
```plaintext
.
├── dist
├── node_modules
├── src
│ ├── index.ts
│ ├── model.ts
│ └── routes.ts
├── db.ts
├── schemas.ts
├── .gitignore
├── db.json
├── package.json
├── tsconfig.json
└── README.md
```## Endpoints da API
### Criar uma nova tarefa
- **URL:** `/task`
- **Método:** `POST`
- **Body:**
```json
{
"task": {
"title": "Título da Tarefa",
"author": "Autor",
"description": "Descrição da Tarefa",
"isDone": false
}
}
```### Listar todas as tarefas
- **URL:** `/tasks`
- **Método:** `GET`### Obter uma tarefa por ID
- **URL:** `/task/:id`
- **Método:** `GET`### Atualizar uma tarefa
- **URL:** `/task/:id`
- **Método:** `PUT`
- **Body:**
```json
{
"task": {
"title": "Novo Título",
"author": "Novo Autor",
"description": "Nova Descrição",
"isDone": true
}
}
```### Marcar uma tarefa como concluída
- **URL:** `/task/:id/done`
- **Método:** `PUT`### Marcar uma tarefa como não concluída
- **URL:** `/task/:id/undone`
- **Método:** `PUT`### Excluir uma tarefa
- **URL:** `/task/:id`
- **Método:** `DELETE`### Obter estatísticas das tarefas
- **URL:** `/tasks/stats`
- **Método:** `GET`---