Nossa Stack Tecnológica
O que é "Stack Tecnológica"?
Imagine que você está construindo uma casa. Você precisa de diferentes materiais: tijolos, cimento, madeira, tinta, etc. Na programação, a "stack" são as diferentes tecnologias (linguagens, ferramentas, serviços) que usamos para construir nossos sistemas.
Cada tecnologia tem uma função específica, como os materiais de construção:
- Python: A "linguagem" que usamos para escrever programas
- Flask: A "estrutura" para criar sites e APIs
- HTML/CSS: A "aparência" dos sites
- Docker: A "embalagem" para transportar programas
Para Leigos
Python é como o "idioma" que usamos para falar com o computador. É uma linguagem muito popular porque é fácil de aprender e ler - quase como inglês!
Flask é como um "kit de ferramentas" que nos ajuda a criar sites e sistemas mais rapidamente. Em vez de fazer tudo do zero, o Flask já tem peças prontas que podemos usar.
Analogia: Se Python é o idioma, Flask é como ter um dicionário e guia de conversação prontos!
Para Estagiários
Python é nossa linguagem principal para backend. Escolhemos Python 3.11+ pelas melhorias de performance e novas funcionalidades de tipagem.
Frameworks utilizados:
- Flask: APIs REST, webhooks, sistemas web
- FastAPI: APIs de alta performance (projetos futuros)
- SQLAlchemy: ORM para banco de dados
- Pytest: Testes automatizados
Projetos que usam:
- CaraCore Hub (Flask + SQLAlchemy)
- Área 51 (Flask + JWT)
- CaraCore Seed (Template Python)
O que você precisa aprender:
Básico (Primeira semana):
- Sintaxe Python básica
- Variáveis, listas, dicionários
- Funções e classes
- Primeiro "Hello World" Flask
Intermediário (Segunda semana):
- APIs REST com Flask
- Conectar com banco de dados
- Tratamento de erros
- Testes básicos com Pytest
Para Leigos
Se um site fosse uma casa:
- HTML: É a "estrutura" - as paredes, portas, janelas
- CSS: É a "decoração" - cores, móveis, estilo
- JavaScript: É a "funcionalidade" - luz que acende, campainha que toca
Bootstrap é como comprar uma casa semi-pronta - já vem com decoração básica bonita, você só personaliza os detalhes!
Para Estagiários
Nosso frontend prioriza responsividade e acessibilidade:
HTML5:
- Semântica correta (header, main, section)
- Acessibilidade (aria-labels, alt text)
- Meta tags para SEO
CSS3:
- Flexbox e Grid para layouts
- Variáveis CSS para temas
- Media queries para responsividade
- Animações e transições
JavaScript:
- ES6+ (async/await, arrow functions)
- Fetch API para chamadas HTTP
- DOM manipulation
- Vanilla JS (sem jQuery)
Foco em Mobile-First
Todos nossos projetos são desenvolvidos pensando primeiro em celulares, depois adaptados para desktop. Isso garante que funcionem bem em qualquer dispositivo!
Para Leigos
Imagine que você quer entrar em uma festa exclusiva:
OAuth 2.1: É como ter um "segurança da festa" que verifica sua identidade usando seu RG (Google/Microsoft) em vez de criar uma nova carteirinha só para a festa.
OpenID Connect: Além de verificar se você é quem diz ser, também pergunta "que informações suas a festa pode usar?" (nome, email, etc.)
Vantagens:
- Não precisa criar nova senha
- Mais seguro que senhas tradicionais
- Você controla que dados compartilha
- Se mudar senha do Google, não afeta outros sites
Para Estagiários
Implementamos as melhores práticas de segurança modernas:
OAuth 2.1 (RFC 6749 atualizada):
- Authorization Code Flow com PKCE
- Sem Implicit Flow (descontinuado)
- Refresh tokens seguros
OpenID Connect:
- ID tokens JWT assinados
- UserInfo endpoint para dados do usuário
- Descoberta automática de endpoints
Implementações:
- Reino OIDC: Ensina os conceitos
- Área 51: Implementa em produção
- Python Training: Explica para jovens
Recursos de Aprendizado
📚 Teoria:
- Reino OIDC - Aprendizado gamificado
- RFCs oficiais (OAuth 2.1, OIDC Core)
- Documentação Google/Microsoft
🔧 Prática:
- Área 51 - Sistema real em produção
- Laboratório local com Flask
- Testes de segurança e penetração
Para Leigos
Azure: É como "alugar computadores na Microsoft" em vez de comprar. Seus programas ficam rodando nos servidores da Microsoft pelo mundo todo.
Docker: Imagine que você quer mandar um presente pelo correio. Você coloca numa caixa com tudo que precisa (produto + proteção + instruções). Docker faz isso com programas - empacota tudo numa "caixa" que funciona em qualquer computador.
GitHub Pages: É como um "terreno grátis na internet" onde você pode construir seu site. Ideal para sites simples que não precisam de banco de dados.
Para Estagiários
Nossa infraestrutura prioriza custo-benefício e facilidade de manutenção:
Azure Web Apps:
- Deploy direto do GitHub
- Scaling automático
- SSL/TLS gerenciado
- Logs centralizados
Docker:
- Containers para desenvolvimento local
- Docker Compose para multi-container
- Imagens otimizadas (Alpine Linux)
GitHub Pages:
- Sites estáticos (Reino OIDC, docs)
- Jekyll para blogs (futuro)
- Custom domains com SSL
Importante para Estagiários
Nunca commite credenciais (senhas, chaves API) no Git! Use variáveis de ambiente e Azure Key Vault para segredos em produção.
Tecnologias Complementares
Nota: Esta seção enumera tecnologias adicionais usadas na Cara Core. Para aprender mais sobre cada uma, pesquise na documentação oficial ou em tutoriais externos.
- Java 17+: CaraCore Hub, CaraCore Seed
- Python 3.11+: Área 51, automações, scripts
- JavaScript (ES6+): Frontend interativo
- TypeScript: Projetos frontend futuros
- SQL: Queries e modelagem de dados
- Shell Script: Automação de deploy
- Jakarta EE 10.1: CaraCore Hub enterprise
- Flask 3.x: APIs Python leves
- FastAPI: APIs Python de alta performance
- Express.js: APIs Node.js (futuro)
- Spring Boot: Alternativa Java (futuro)
- Bootstrap 5: UI responsivo (atual)
- Tailwind CSS: Utility-first CSS (planejado)
- React: SPAs complexas (futuro)
- Vue.js: Interfaces interativas (futuro)
- Alpine.js: Interatividade leve
- PostgreSQL 15+: Banco principal relacional
- MySQL/MariaDB: Alternativa SQL
- SQLite: Desenvolvimento local e testes
- MongoDB: NoSQL para dados flexíveis (futuro)
- Redis: Cache e sessões
- SQLAlchemy: ORM Python
- Hibernate: ORM Java (JPA)
- Prisma: ORM Node.js (futuro)
- JDBC: Java Database Connectivity
- Alembic: Migrations Python
- Apache Tomcat 10: Java Servlet
- WildFly 37: Jakarta EE completo
- Gunicorn: WSGI Python
- uWSGI: Servidor Python alternativo
- Nginx: Reverse proxy e load balancer
- REST APIs: Padrão de comunicação
- GraphQL: APIs flexíveis (planejado)
- Webhook handlers: Eventos assíncronos
- API Mercado Livre: E-commerce
- Microsoft Graph API: Azure integrations
- Google APIs: OAuth e serviços
- Requests: HTTP client
- Pandas: Análise de dados
- Pillow: Manipulação de imagens
- Pygame: Desenvolvimento de jogos
- PyJWT: JSON Web Tokens
- Cryptography: Criptografia
- Python-dotenv: Variáveis de ambiente
- Gson/Jackson: Serialização JSON
- Apache HttpClient: HTTP requests
- JUnit 5: Testes unitários
- Mockito: Mocking para testes
- Log4j/SLF4J: Logging
- Apache Commons: Utilitários
- Google Analytics: Analytics web
- Azure Monitor: Monitoramento cloud
- Python logging: Logs estruturados
- Sentry: Error tracking (planejado)
- ELK Stack: Logs centralizados (futuro)
- Maven: Build Java
- Gradle: Build Java alternativo
- pip: Gerenciador de pacotes Python
- Poetry: Gerenciamento Python avançado
- npm/yarn: Gerenciador JavaScript
- Webpack/Vite: Bundlers frontend
- Markdown: Documentação textual
- Mermaid.js: Diagramas como código
- Swagger/OpenAPI: Documentação de APIs
- JSDoc: Documentação JavaScript
- Sphinx: Documentação Python
- JavaDoc: Documentação Java
- HTTP/HTTPS: Protocolo web
- WebSocket: Comunicação bidirecional
- REST: Arquitetura de APIs
- JSON/XML: Formatos de dados
- JWT: Tokens de autenticação
- CORS: Cross-Origin Resource Sharing
Ferramentas de Desenvolvimento
Visual Studio Code (obrigatório):
- Python extension (Microsoft)
- GitLens para Git avançado
- Prettier para formatação
- Live Server para desenvolvimento web
Git + GitHub:
- Feature branches obrigatórias
- Pull Requests com code review
- GitHub Actions para CI/CD
- Issues para tracking de bugs
Testes
- Pytest: Testes unitários Python
- Coverage.py: Cobertura de código
- Postman: Testes de API manual
Qualidade de Código
- Black: Formatação Python
- Flake8: Linting Python
- ESLint: Linting JavaScript
Roadmap de Aprendizado para Estagiários
Semana 1
Fundamentos
- Python básico
- HTML/CSS
- Git básico
Semana 2
Web Development
- Flask básico
- JavaScript
- Bootstrap
Semana 3
APIs & Security
- APIs REST
- OAuth básico
- Testes
Semana 4+
DevOps & Advanced
- Docker
- Azure deploy
- CI/CD
Pronto para Começar?
Agora que você conhece nossa stack, vamos colocar a mão na massa!