Giter Club home page Giter Club logo

fast_zero_projeto_final's Introduction

Fast Api do Zero: Projeto Final

Projeto final do curso Fast Api do Zero do Dunossauro link do curso.

Projeto

O projeto se chama MADR (Meu Acervo Digital de Romances). No projeto cada usuário possui uma conta (protegida pro e-mail/senha). Depois que está "dentro" da conta (ou seja, authenticado com um JWT), o usuário pode criar/ler/atualizar/excluir romancistas e livros que queira guardar no acervo. Diferentemente do que foi proposto no curso, cada usuário possui um acervo pessoal, somente acessível por sua conta.

Outra diferença é que os models foram separados em arquivos na pasta models/ para testar se isso é proveitoso ou não. É possível fazer e facilita a organização, mas causa problemas de referencia circular nas relationship.

Ferramentas Utilizadas

  • Linguagem de programação: Python 3.12
  • Banco de dados: PostgreSQL 16

Pacotes Python Utilizados

  • fastAPI: servidor de aplicação
  • pydantic: schemas para validar entrada e saída da aplicação
  • psycopg: driver para PostgreSQL
  • sqlalchemy: ORM para interagir com o banco de dados
  • pydantic-settings: para ler o arquivo .env com tipagem
  • alembic: para gerar e gerir migrações no banco de dados
  • pyjwt: gerar, validar e decodificar JWTs
  • pwdlib: gerar e validar hash de senhas
  • bleach: sanitizar tags script

Dependências de desenvolvimento

  • pytest: executar testes unitários de da aplicação
  • pytest-cov: gerar cobertura de testes
  • factory-boy: gera factories para os testes
  • taskipy: comandos rápidos para desenvolvimento
  • ruff: linter, formatador e mais
  • freezegun: viagem no tempo para testes
  • testcontainers: gerenciar containers durante os testes

Instalação

Com docker-compose

docker-compose up

Sem docker-compose

Primeiro instale o PostgreSQL 16 na porta 5432. Depois instale o python 3.12. Com o python 3.12 instalado, execute os comandos:

pip install pipx
pipx install poetry
poetry install
poetry run alembic upgrade head
poetry poetry run uvicorn --host 0.0.0.0 --port 8000 fast_zero_projeto_final.app:app

Desenvolvimento

  • Em um terminal, execute poetry shell
  • Depois execute task postgres_up
  • Em outro terminal, execute poetry shell
  • Depois execute task run

fast_zero_projeto_final's People

Contributors

vitorthedev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.