Skip to content

API em Python com FastAPI para gestão escolar (alunos, cursos, matrículas) com documentação interativa. Desenvolvida na Imersão Cloud & DevOps, usando Docker, CI/CD e deploy no Google Cloud Run. Ideal para praticar desenvolvimento de APIs modernas.

Notifications You must be signed in to change notification settings

iamandaleao/python-cloud-run

Repository files navigation

API de Gestão Escolar – Imersão Cloud & DevOps (Alura + Google Cloud)

Este projeto foi desenvolvido durante a Imersão Cloud & DevOps, promovida pela Alura em parceria com o Google Cloud. A aplicação é uma API em Python com FastAPI para gerenciar alunos, cursos e matrículas.

Funcionalidades

  • Cadastro de alunos
  • Cadastro de cursos
  • Matrícula de alunos em cursos
  • Documentação interativa com Swagger UI

Acesse a API Online

A API está publicada no Google Cloud Run e pode ser testada diretamente no navegador:

Documentação Interativa (Swagger UI)

Tecnologias e Ferramentas

  • Python 3.10+
  • FastAPI
  • Docker e Docker Compose
  • GitLab CI/CD
  • Google Cloud Run
  • SQLite (banco de dados local)
  • Gemini Code Assist (para apoio com IA)

Pré-requisitos

Passos para subir o projeto

  1. Faça o download do repositório: Clique aqui para realizar o download

  2. Crie um ambiente virtual:

    python3 -m venv ./venv
  3. Ative o ambiente virtual:

    • No Linux/Mac:
      source venv/bin/activate
    • No Windows, abra um terminal no modo administrador e execute o comando:
    Set-ExecutionPolicy RemoteSigned
    venv\Scripts\activate
  4. Instale as dependências:

    pip install -r requirements.txt
  5. Execute a aplicação:

    uvicorn app:app --reload
  6. Acesse a documentação interativa:

    Abra o navegador e acesse:
    http://127.0.0.1:8000/docs

    Aqui você pode testar todos os endpoints da API de forma interativa.


Estrutura do Projeto

  • app.py: Arquivo principal da aplicação FastAPI.
  • models.py: Modelos do banco de dados (SQLAlchemy).
  • schemas.py: Schemas de validação (Pydantic).
  • database.py: Configuração do banco de dados SQLite.
  • routers/: Diretório com os arquivos de rotas (alunos, cursos, matrículas).
  • requirements.txt: Lista de dependências do projeto.
  • Dockerfile: Imagem da aplicação.

  • O banco de dados SQLite será criado automaticamente como escola.db na primeira execução.
  • Para reiniciar o banco, basta apagar o arquivo escola.db (isso apagará todos os dados).

Aprendizados na Imersão

  • Criar e rodar contêineres com Docker
  • Resolver o “na minha máquina funciona” com ambiente isolado
  • Implementar CI/CD com GitLab
  • Automatizar build, testes e deploy
  • Fazer deploy real com Google Cloud Run
  • Usar IA (Gemini Code Assist) para apoio no desenvolvimento

✨ Feito com dedicação por Amanda Leão durante a Imersão Cloud & DevOps – uma jornada de aprendizado sobre Docker, CI/CD, deploy na nuvem e o poder da automação no desenvolvimento.

About

API em Python com FastAPI para gestão escolar (alunos, cursos, matrículas) com documentação interativa. Desenvolvida na Imersão Cloud & DevOps, usando Docker, CI/CD e deploy no Google Cloud Run. Ideal para praticar desenvolvimento de APIs modernas.

Topics

Resources

Stars

Watchers

Forks