Tecnologias Utilizadas

Stack tecnológico completo da Cara Core Informática com explicações para todos os níveis

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

Python & Flask

Python 3.11+ Flask FastAPI SQLAlchemy

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

Frontend: HTML, CSS & JavaScript

HTML5 CSS3 JavaScript ES6+ Bootstrap 5

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!

Segurança: OAuth 2.1 & OpenID Connect

OAuth 2.1 OIDC JWT PKCE

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

Cloud & DevOps: Azure & Docker

Azure Docker GitHub Pages CI/CD

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.

Linguagens de Programação

  • 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

Frameworks Backend

  • 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)

Frameworks Frontend

  • Bootstrap 5: UI responsivo (atual)
  • Tailwind CSS: Utility-first CSS (planejado)
  • React: SPAs complexas (futuro)
  • Vue.js: Interfaces interativas (futuro)
  • Alpine.js: Interatividade leve

Bancos de Dados

  • 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

ORMs & Data Access

  • SQLAlchemy: ORM Python
  • Hibernate: ORM Java (JPA)
  • Prisma: ORM Node.js (futuro)
  • JDBC: Java Database Connectivity
  • Alembic: Migrations Python

Servidores de Aplicação

  • Apache Tomcat 10: Java Servlet
  • WildFly 37: Jakarta EE completo
  • Gunicorn: WSGI Python
  • uWSGI: Servidor Python alternativo
  • Nginx: Reverse proxy e load balancer

APIs & Integrações

  • 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

Bibliotecas Python Essenciais

  • 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

Bibliotecas Java Essenciais

  • 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

Monitoramento & Logs

  • Google Analytics: Analytics web
  • Azure Monitor: Monitoramento cloud
  • Python logging: Logs estruturados
  • Sentry: Error tracking (planejado)
  • ELK Stack: Logs centralizados (futuro)

Build & Package

  • 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

Documentação

  • 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

Protocolos & Padrões

  • 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

Editores & IDEs

Visual Studio Code (obrigatório):

  • Python extension (Microsoft)
  • GitLens para Git avançado
  • Prettier para formatação
  • Live Server para desenvolvimento web

Controle de Versão

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!