Este repositório contém uma série de aplicações backend e fullstack em Python organizadas em uma progressão didática, desde conceitos básicos até implementações avançadas. Cada aplicação (de app1
até app20
) introduz novos conceitos e tecnologias, formando um caminho de aprendizado completo para desenvolvimento com Python.
O repositório está organizado em várias aplicações independentes, cada uma construindo sobre os conceitos das anteriores:
- Conceitos: Fundamentos de HTTP, servidores web, sockets
- Tecnologias: Python puro (módulo http.server)
- Funcionalidades: Servidor web básico com rotas simples e resposta HTML
- Conceitos: Operações CRUD, armazenamento de dados em arquivo
- Tecnologias: Python puro, JSON
- Funcionalidades: Gerenciador de tarefas com armazenamento em arquivos JSON
- Conceitos: APIs REST, framework web, rotas
- Tecnologias: Flask
- Funcionalidades: API REST simples para gerenciar um catálogo de produtos
- Conceitos: Banco de dados, modelos de dados, templates
- Tecnologias: Flask, SQLite, Jinja2
- Funcionalidades: Aplicação web completa de gerenciamento de tarefas com interface e API
- Conceitos: Autenticação de usuários, sessões, segurança
- Tecnologias: Flask, SQLite, hashing de senhas
- Funcionalidades: Sistema de registro, login e área protegida com permissões básicas
- Conceitos: Upload e gerenciamento de arquivos
- Tecnologias: Flask, Flask-Upload
- Funcionalidades: Upload, download, listagem e exclusão de arquivos
- Conceitos: Modularização, organização de código
- Tecnologias: Flask, Blueprints
- Funcionalidades: API organizada em módulos, versionamento de API
- Conceitos: FastAPI, documentação automática, Pydantic
- Tecnologias: FastAPI, Pydantic
- Funcionalidades: API REST com validação de dados e documentação automática
- Conceitos: ORM, validação de dados
- Tecnologias: FastAPI, SQLAlchemy, Pydantic
- Funcionalidades: CRUD completo com banco de dados, filtragem, paginação
- Conceitos: Autenticação, autorização, arquitetura modular
- Tecnologias: FastAPI, SQLAlchemy, JWT, Pydantic
- Funcionalidades: Autenticação JWT, controle de acesso, CRUD avançado, tratamento de erros
- Conceitos: Integração frontend/backend básica
- Tecnologias: Flask, React, CORS
- Funcionalidades: Comunicação simples entre frontend React e backend Flask
- Conceitos: Formulários, validação de dados
- Tecnologias: FastAPI, React, Pydantic
- Funcionalidades: Formulário React enviando dados para backend FastAPI com validação
- Conceitos: Operações CRUD fullstack
- Tecnologias: Flask, React, SQLAlchemy
- Funcionalidades: Sistema de gerenciamento de tarefas com interface React e backend Flask
- Conceitos: Autenticação JWT, rotas protegidas
- Tecnologias: FastAPI, React, JWT
- Funcionalidades: Sistema de notas com autenticação, criação e compartilhamento
- Conceitos: Visualização de dados, gráficos interativos
- Tecnologias: FastAPI, React, Recharts
- Funcionalidades: Dashboard interativo com diversos tipos de gráficos e visualizações
- Conceitos: Django REST Framework introdução
- Tecnologias: Django, Django REST Framework, React
- Funcionalidades: Integração básica entre Django REST Framework e React
- Conceitos: CRUD completo com Django
- Tecnologias: Django, Django REST Framework, React, Formik
- Funcionalidades: Gerenciador de tarefas e categorias com interface moderna
- Conceitos: Autenticação JWT com Django
- Tecnologias: Django REST Framework, React, JWT
- Funcionalidades: Sistema de autenticação completo, rotas protegidas, perfil de usuário
- Conceitos: Upload e gerenciamento de arquivos, interface de usuário
- Tecnologias: Django REST Framework, React
- Funcionalidades: Upload, visualização e compartilhamento de arquivos, tema claro/escuro
- Conceitos: Sistema completo de gestão, estruturas de dados complexas
- Tecnologias: Django REST Framework, React, Docker
- Funcionalidades: Gerenciamento de projetos, tarefas, equipes, dashboards e relatórios
Este repositório apresenta uma progressão de aprendizado cuidadosamente estruturada:
- Fundamentos (Apps 1-2): Conceitos básicos de desenvolvimento web com Python puro
- Flask e Persistência (Apps 3-7): Desenvolvimento com Flask, banco de dados e autenticação
- FastAPI (Apps 8-10): Framework moderno com tipagem e melhor desempenho
- Integração Frontend/Backend (Apps 11-15): Projetos fullstack com React e Flask/FastAPI
- Django e Aplicações Avançadas (Apps 16-17): Introdução ao Django e Django REST Framework
- Projetos Completos (Apps 18-20): Aplicações fullstack complexas com Django e React
Há uma clara progressão nas tecnologias e conceitos apresentados, partindo de aplicações web simples até sistemas completos e de alta complexidade. As aplicações iniciais focam em conceitos unitários enquanto os projetos finais integram múltiplas tecnologias e padrões.
Cada aplicação foi desenhada para ensinar conceitos específicos através da prática. Os apps mais complexos são desenvolvidos como produtos reais que poderiam ser usados em ambiente de produção.
O repositório abrange os principais frameworks Python para desenvolvimento web:
- Python puro: Módulos http.server e socketserver para fundamentos
- Flask: Microframework leve para aplicações simples
- FastAPI: Framework moderno com desempenho e tipagem
- Django: Framework completo para aplicações robustas (a partir do App 16)
- Django REST Framework: Toolkit para APIs RESTful
Além de tecnologias complementares como:
- Bancos de dados (SQLite, PostgreSQL)
- ORM (SQLAlchemy, Django ORM)
- Autenticação (JWT, OAuth2)
- Frontend (React)
- Visualização de dados (Recharts)
- Contêineres (Docker)
Os três projetos finais representam aplicações fullstack completas:
- App18 - Sistema de Autenticação: Base fundamental para qualquer aplicação com usuários.
- App19 - FileShare: Sistema de compartilhamento de arquivos com interface moderna.
- App20 - TaskForge: Sistema completo de gerenciamento de projetos com funcionalidades avançadas.
Estes projetos demonstram a integração entre frontend e backend, gerenciamento de estado, autenticação e práticas modernas de desenvolvimento.
Cada aplicação está contida em seu próprio diretório e pode ser executada independentemente. Consulte o README.md em cada diretório para instruções específicas.
- Python 3.8+
- pip (gerenciador de pacotes Python)
- Ambiente virtual (recomendado)
- Node.js 16+ (para projetos com frontend)
-
Navegue até o diretório da aplicação desejada:
cd app{número}
-
Crie e ative um ambiente virtual:
# No Windows python -m venv venv venv\Scripts\activate # No Linux/Mac python3 -m venv venv source venv/bin/activate
-
Instale as dependências:
pip install -r requirements.txt
-
Execute a aplicação:
# Para aplicações Python puro python app.py # ou python simple_http_server.py # Para aplicações Flask python app.py # Para aplicações FastAPI python main.py # Para aplicações Django python manage.py runserver
-
Para projetos fullstack, também precisa configurar o frontend:
cd frontend npm install npm start
-
Para projetos com Docker:
docker-compose up -d
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorar este repositório de aprendizado.
Este repositório está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.