Para utilizar essa aplicação, Ć© essencial que o ambiente esteja devidamente configurado. Primeiramente, Ć© necessĆ”rio ter a linguagem Python instalada no sistema, pois a partir dela serĆ” possĆvel realizar a instalação do FastAPI.
Para executar o projeto, é necessÔrio utilizar um ambiente virtual, criado e executado por meio do Pyenv. Além disso, o gerenciador de pacotes Poetry foi utilizado, a fim de gerenciar as dependências e o ambiente virtual.
Por fim, para uma futura execução da interface, ainda não finalizada, é necessÔria a instalação do Node.js, ferramenta indispensÔvel para criar e rodar o ReactJS.
Com essas dependências devidamente configuradas, o desenvolvimento e a execução da aplicação ocorrerão de forma fluida e organizada.
- Clone o repositório:
git clone https://github.com/MarcioDzn/Prosel-EcompJR.git.- Navegue até o diretório principal:
cd todo_list- Ative o ambiente virtual:
poetry shell- Instale as dependĆŖncias:
poetry install- Construa o Banco de Dados:
alembic upgrade head- Execute a API:
fastapi dev todo_list/app.pyApós a execução da API, o seguinte "painel" serÔ exibido no terminal:
O próprio fastapi disponibiliza uma documentação feita automaticamente a partir do Swagger, para visualizÔ-la deve-se acessar a segunda URL fornecida no painel supracitado.
As imagens abaixo ilustram as rotas e endpoints disponĆveis na API. Vale salientar que muitas das rotas sĆ£o protegidas, ou seja, só podem ser executadas com autenticação prĆ©via.
Retorna uma lista com os dados de todos os usuƔrios cadastrados.
Apenas usuƔrios autenticados e com o tipo "administrator" podem ter acesso a essa rota.
Exemplo de resposta:
{
"users": [
{
"id": 0,
"name": "string",
"email": "user@example.com",
"type": "user",
"created_at": "2024-09-30T19:30:32.040Z"
}
]
}
- Status de sucesso: 200 OK
Permite a criação de um novo usuÔrio a partir dos dados fornecidos.
Exemplo de corpo da requisição:
{
"name": "string",
"email": "user@example.com",
"password": "string",
"type": "user"
}
- Status de sucesso: 201 CREATED
- Status de erro: 422 VALIDATION ERROR
Retorna os dados do usuƔrio autenticado.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
Exemplo de resposta:
{
"id": 0,
"name": "string",
"email": "user@example.com",
"type": "user",
"created_at": "2024-09-30T19:30:32.040Z"
}
- Status de sucesso: 200 OK
Remove o usuƔrio autenticado do banco de dados.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
- Status de sucesso: 200 OK
Permite a edição de dados do usuÔrio autenticado. Não é necessÔrio informar todos os dados para realizar a atualização.
Exemplos de corpo da requisição:
- Exemplo 1:
{
"name": "string"
}
- Exemplo 2:
{
"password": "string"
}
Apenas usuƔrios autenticados podem ter acesso a essa rota. Apenas administradores podem alterar o campo "type"
- Status de sucesso: 200 OK
Retorna os dados de um usuĆ”rio com um id especĆfico.
Apenas usuƔrios autenticados e com o tipo "administrator" podem ter acesso a essa rota.
Exemplo de resposta:
{
"id": 0,
"name": "string",
"email": "user@example.com",
"type": "user",
"created_at": "2024-09-30T19:30:32.040Z"
}
- Status de sucesso: 200 OK
Remove um usuƔrio a partir de seu id.
Apenas usuƔrios autenticados e com o tipo "administrator" podem ter acesso a essa rota.
- Status de sucesso: 200 OK
Cria uma nova tarefa associada ao usuƔrio atualmente autenticado.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
Exemplo de corpo da requisição:
{
"title": "string",
"description": "string",
"status": "doing"
}
- Status de sucesso: 201 CREATED
- Status de erro: 422 VALIDATION ERROR
Retorna todas as tarefa relacionadas ao usuƔrio autenticado.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
Exemplo de resposta:
{
"tasks": [
{
"id": 0,
"title": "string",
"description": "string",
"status": "doing",
"created_at": "2024-09-30T19:29:46.340Z"
}
]
}
- Status de sucesso: 200 OK
Retorna uma tarefa especĆfica de um usuĆ”rio autenticado a partir de seu id.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
Exemplo de resposta:
{
"id": 0,
"title": "string",
"description": "string",
"status": "doing",
"created_at": "2024-09-30T19:29:46.340Z"
}
- Status de sucesso: 200 OK
Permite a edição uma tarefa especĆfica de um usuĆ”rio autenticado a partir de seu id.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
- Status de sucesso: 200 OK
Remove uma tarefa especĆfica de um usuĆ”rio autenticado a partir de seu id.
Apenas usuƔrios autenticados podem ter acesso a essa rota.
- Status de sucesso: 200 OK
Permite a autenticação de um usuÔrio a partir de suas credênciais (e-mail e senha)
- Status de sucesso: 200 OK
Como jÔ mencionado, muitas rotas necessitam de autenticação prévia para que sejam executadas. As únicas exceções são a POST /users, necessÔria para a criação de novas contas e a POST /auth, a qual permite a autenticação de um usuÔrio.
Para a realização da segurança utilizou-se os frameworks passlib, para a encriptação de senhas e pyjwt, para a criação de tokens de autenticação.
Caso o usuÔrio tente acessar uma rota protegida sem a devida autenticação prévia um erro serÔ exibido, com o status: 401 UNAUTHORIZED.
Essa seção é destinada a ilustração dos prototipos das telas, desenvolvidadas com a ferramenta Figma.
š§ Em construção š§
















