Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/pamyszz/to-do-list

šŸ“ To-Do List API Ć© uma API RESTful para gerenciamento de tarefas, oferecendo funcionalidades completas de CRUD com autenticaĆ§Ć£o segura.
https://github.com/pamyszz/to-do-list

api api-rest h2-database java lombok-maven maven spring-boot to-do-list todo-list todolist

Last synced: 2 days ago
JSON representation

šŸ“ To-Do List API Ć© uma API RESTful para gerenciamento de tarefas, oferecendo funcionalidades completas de CRUD com autenticaĆ§Ć£o segura.

Awesome Lists containing this project

README

        

# šŸ—‚ļø **To-Do List - API**
Esta API RESTful foi desenvolvida para facilitar o gerenciamento de tarefas, proporcionando uma maneira eficiente e organizada de acompanhar suas atividades diƔrias.

## šŸš€ **Funcionalidades**

- **CRUD de Tarefas**: CriaĆ§Ć£o, leitura, atualizaĆ§Ć£o e exclusĆ£o de tarefas.
- **AutenticaĆ§Ć£o de UsuĆ”rio**: Cadastro e login para gerenciar suas tarefas de forma segura.
- **Endpoints de Gerenciamento**: FĆ”cil adiĆ§Ć£o e visualizaĆ§Ć£o de tarefas.

## šŸ“¦ **DependĆŖncias**

![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.9-brightgreen)
![Spring Data JPA](https://img.shields.io/badge/Spring%20Data%20JPA-2.7.9-green)
![H2 Database](https://img.shields.io/badge/H2%20Database-1.4.200-blue)
![Lombok](https://img.shields.io/badge/Lombok-1.18.24-yellowgreen)
![Java](https://img.shields.io/badge/Java-17-red)

- **Spring Boot**: Framework para desenvolvimento de aplicaƧƵes Java.
- **Spring Data JPA**: Facilitador para acesso a dados e persistĆŖncia.
- **H2 Database**: Banco de dados em memĆ³ria para testes rĆ”pidos.
- **Spring Security**: Implementa autenticaĆ§Ć£o e autorizaĆ§Ć£o.
- **Lombok**: Reduz a quantidade de cĆ³digo boilerplate.

## šŸ“œ **DocumentaĆ§Ć£o dos Endpoints**

### šŸ—’ļø **Tarefas**

- **Criar Tarefa**

- **MĆ©todo**: `POST`
- **URL**: `https://to-do-list-ds79.onrender.com/tasks/`
- **DescriĆ§Ć£o**: Cria uma nova tarefa.
- **AutenticaĆ§Ć£o**: Requer autenticaĆ§Ć£o.
- **Corpo da RequisiĆ§Ć£o**:

```json
{
"description": "Tarefa para organizar a casa",
"title": "Organizar a casa",
"priority": "ALTA",
"startAt": "2024-07-28T23:30:00",
"endAt": "2025-07-29T23:35:00"
}
```

- **Listar Tarefas**

- **MĆ©todo**: `GET`
- **URL**: `https://to-do-list-ds79.onrender.com/tasks/`
- **DescriĆ§Ć£o**: ObtĆ©m uma lista de todas as tarefas.
- **AutenticaĆ§Ć£o**: Requer autenticaĆ§Ć£o.

- **Obter Tarefa por ID**

- **MĆ©todo**: `GET`
- **URL**: `https://to-do-list-ds79.onrender.com/tasks/{id}`
- **DescriĆ§Ć£o**: ObtĆ©m os detalhes de uma tarefa especĆ­fica pelo ID.
- **Exemplo de URL**: `https://to-do-list-ds79.onrender.com/tasks/c5771d27-c8fd-4e7b-ad1e-82f5f405794e`
- **AutenticaĆ§Ć£o**: Requer autenticaĆ§Ć£o.

- **Atualizar Tarefa**

- **MĆ©todo**: `PUT`
- **URL**: `https://to-do-list-ds79.onrender.com/tasks/{id}`
- **DescriĆ§Ć£o**: Atualiza uma tarefa existente pelo ID.
- **AutenticaĆ§Ć£o**: Requer autenticaĆ§Ć£o.
- **Corpo da RequisiĆ§Ć£o**:

```json
{
"description": "Nova descriĆ§Ć£o da tarefa",
"title": "TĆ­tulo atualizado",
"priority": "MƉDIA",
"startAt": "2024-08-01T10:00:00",
"endAt": "2025-08-01T10:05:00"
}
```

- **Deletar Tarefa**

- **MĆ©todo**: `DELETE`
- **URL**: `https://to-do-list-ds79.onrender.com/tasks/{id}`
- **DescriĆ§Ć£o**: Remove uma tarefa pelo ID.
- **AutenticaĆ§Ć£o**: Requer autenticaĆ§Ć£o.

### šŸ‘¤ **UsuĆ”rios**

- **Criar UsuƔrio**

- **MĆ©todo**: `POST`
- **URL**: `https://to-do-list-ds79.onrender.com/users/`
- **DescriĆ§Ć£o**: Cria um novo usuĆ”rio.
- **Corpo da RequisiĆ§Ć£o**:

```json
{
"name": "Pamela",
"username": "pamyszz",
"password": "12345"
}
```

- **Login de UsuƔrio**

- **MĆ©todo**: `POST`
- **URL**: `https://to-do-list-ds79.onrender.com/users/login`
- **DescriĆ§Ć£o**: Autentica um usuĆ”rio e gera um token JWT.
- **Corpo da RequisiĆ§Ć£o**:

```json
{
"username": "pamyszz",
"password": "12345"
}
```
- **Resposta**: Recebe um token JWT que deve ser incluƭdo no cabeƧalho `Authorization` para acessar os endpoints protegidos.

## šŸŒ **Acesso Ć  API**
VocĆŖ pode acessar a API hospedada no Render atravĆ©s do seguinte link: [To-Do List API](https://to-do-list-ds79.onrender.com/).

## šŸ› ļø **Como Executar o Projeto**
1. **Clone o RepositĆ³rio**:

```bash
git clone https://github.com/pamyszz/to-do-list.git
```

2. **Navegue atĆ© o DiretĆ³rio do Projeto**:

```bash
cd to-do-list
```

3. **Construa e Execute a AplicaĆ§Ć£o**:

```bash
./mvnw spring-boot:run
```

4. **Acesse a API**:
A API estarĆ” disponĆ­vel em `https://to-do-list-ds79.onrender.com` durante a execuĆ§Ć£o.

## šŸ“„ **Notas Adicionais**
- **Maven**: Certifique-se de ter o Maven instalado e configurado corretamente.
- **Banco de Dados**: O projeto utiliza o H2 para testes. Para ambientes de produĆ§Ć£o, configure um banco de dados mais robusto.
- **AutenticaĆ§Ć£o**: Utilize o token JWT recebido no login para autenticaĆ§Ć£o nos endpoints protegidos.