O projeto será modelado no contexto de Rede Social, afim de utilizar CRUD nas rotas e diferentes tipos de relacionamentos do banco de dados.
- Para construir o projeto isolei cada aplicação em seu próprio ecosistema e embiente virtual.
- Registro
- Listagem de perfil
- Todos
- Por @username
- Atualizar dados
- Acessar os dados da conta
- Deletar conta
- Autenticação
- Access token
- Refresh Token
- Recuperar senha
- Email com link e tokenJwt
- Atualizar senha
- Criação
- Edição
- Remoção
- Listar por id
- Listagem de posts
- Listagem por usuário
- Listagem de posts seguidos (timeline)
- Curtidas em posts
- Criação
- Edição
- Remoção
- Listar por id
- Listagem por post
- Curtidas em comentários
- Git
- Python 3.10
- virtualenv ou semelhante
- Um editor de códigos como VSCode, Sublime, Vim, Pycharm ...
Crie o ambiente virtual desta aplicação
virtualenv .venv
Ative o ambiente
# Linux Bash
source .venv/bin/activate
# Windows Power Shell
./.venv/bin/activate.ps1
Instale as dependências de desenvolvimento e teste
pip install -r requirements-dev.txt
Inicie o localhost
uvicorn app:app --reload --factory
Acesse o docs de endpoints do Fastapi em:
http://127.0.0.1:8000/docs#/ ou http://127.0.0.1:8000/redoc/
cd tests
pytest
.
├── app
│ ├── __init__.py
│ ├── models
│ │ ├── post
│ │ │ ├── __init__.py
│ │ │ ├── like.py
│ │ │ ├── post.py
│ │ │ ├── reply.py
│ │ │ ├── request.py
│ │ │ └── response.py
│ │ ├── token
│ │ │ ├── __init__.py
│ │ │ └── token_model.py
│ │ └── user
│ │ ├── access.py
│ │ ├── birthday.py
│ │ ├── __init__.py
│ │ ├── profile.py
│ │ ├── request.py
│ │ ├── response.py
│ │ └── user.py
│ ├── routers.py
│ ├── routes
│ │ ├── auth.py
│ │ ├── controllers
│ │ │ ├── auth_controller.py
│ │ │ ├── password_controller.py
│ │ │ ├── post_controller.py
│ │ │ ├── reply_controller.py
│ │ │ └── user_controller.py
│ │ ├── password.py
│ │ ├── post.py
│ │ ├── reply.py
│ │ └── user.py
│ └── security
│ ├── backend.py
│ ├── recovery_pwd.py
│ ├── session.py
│ └── token.py
├── docs
│ ├── endpoints.png
│ ├── MBD.png
│ ├── README.md
│ ├── tasks.md
│ └── tests.md
├── LICENSE
├── Procfile
├── requirements-dev.txt
├── requirements.txt
├── runtime.txt
├── setup.py
└── tests
├── conftest.py
├── __init__.py
├── models
│ ├── __init__.py
│ ├── test_password.py
│ ├── test_post.py
│ ├── test_reply.py
│ ├── test_token.py
│ └── test_user.py
├── pytest.ini
├── routes
│ ├── __init__.py
│ ├── test_auth.py
│ ├── test_password.py
│ ├── test_post.py
│ ├── test_reply.py
│ └── test_user.py
├── unity
│ ├── __init__.py
│ └── test_token_jwt.py
└── utils
├── client.py
└── post.py
14 directories, 61 files