Chegou a ver já o curso do Dunossauro? Talvez possa te ajudar
https://fastapidozero.dunossauro.com/estavel/
Olhando sua API.
Colocar um .gitignore pycache não deve ir pro repositório.
Não precisa usar o dotenv por que o FastAPI tem seu próprio sistema de configurações, eu particularmente não uso ele, mas no teu caso talvez fosse melhor.
Você se conectou direto no psycopg, particularmente prefiro usar o sqlalchemy core por que ele gerencia as conexões, se não quiser usar o ORM não tem problema pois o CORE você faz as queries como tu fez mesmo, o importante é ter um gerenciamento mais robusto.
Vale a pena usar o poetry para gerenciar o seu requirements.txt e sua virtual env.
Vale a pena também investir em estudar como fazer os testes da sua API usando pytest
De modo geral é isso, espero ter ajudado.
Se quiser dar uma olhada eu tenho um backend do meu principal projeto open source em FastAPI pode dar uma conferida aqui. Colaborações são sempre bem vindas =D