Disciplina do curso de Engenharia de Software da PUC Minas
- 2°Sem 2024
- 1°Sem 2025
- 2°Sem 2025
- 1°Sem 2026
- Aulas em PDF
- Cronograma
- Atalhos
- Laboratórios
- Projetos com Spring Boot
- Templates
- Docker CLI Cheat Sheet
- SWEBOK
- Plano de Ensino
-
📕 Software Engineering – Ian Sommerville
Obra clássica que aborda de forma abrangente os principais conceitos, processos e práticas da engenharia de software, amplamente utilizada em cursos e na indústria. -
📒 Engenharia de Software Moderna - Marco Tulio Valente
Livro gratuito e atualizado que trata da engenharia de software com foco em práticas modernas, como integração contínua, microserviços e DevOps, com exemplos em Java e Python.- 🎵 Podcast / Audiobook no Spotify
Engenharia de Software Moderna está também disponível no formato de podcast, com resumos de seções do livro gerados por IA por meio do NotebookLM do Google.
- 🎵 Podcast / Audiobook no Spotify
-
📘 [Fundamentos de Manutenção de Software - Marco Tulio Valente
Livro gratuito e atualizado que aborda a manutenção de software com foco em boas práticas, como código limpo, documentação, depuração e gestão de dívida técnica. -
📙 Análise e Projeto de Sistemas – Alan Dennis, Barbara Haley Wixom, Roberta M. Roth
Livro que aborda metodologias e técnicas modernas para análise e projeto de sistemas, incluindo modelagem de processos, requisitos e diagramas UML, com forte aplicação prática em projetos reais. -
📚 IEEE SWEBOK – Software Engineering Body of Knowledge
- PDF - Guia oficial do IEEE que organiza e descreve o corpo de conhecimento essencial da engenharia de software, servindo como referência para profissionais, educadores e certificações.
- 🧠 Blog - Martin Fowler
- 📕 Padrões de Arquitetura de Aplicações Corporativas - Martin Fowler
- 📕 Refatoração - 2ª Edição - Aperfeiçoando o design de códigos existentes - Martin Fowler
- 📄 Blog - Clean Architecture - Robert C. Martin (Uncle Bob)
- 📙 Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software – Robert C. Martin (Uncle Bob)
- 📘 Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions - Gregor Hohpe, Bobby Woolf
- 📗 Just Enough Software Architecture: A Risk-Driven Approach - George Fairbanks
- 📔 Introdução à Arquitetura de Design de Software – Paulo Silveira, Guilherme Silveira, Fabio Kung, Guilherme Moreira
- 📔 A Philosophy of Software Design, 2nd Edition - John K. Ousterhout
- 📙 Designing Software Architectures – Humberto Cervantes & Rick Kazman
- 📗 Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman
- 📒 Fundamentos da Arquitetura de Software: Uma abordagem de engenharia – Mark Richards & Neal Ford
- 📔 Arquitetura de software: As partes difíceis - Neal Ford, Mark Richards, Pramod Sadalage & Zhamak Dehghani
- 📙 Facilitando a Arquitetura de Software: Capacitando equipes para tomar decisões de arquitetura - Andrew Harmel-Law
- 📄 Architectural Styles and the Design of Network-based Software Architectures – Roy Fielding (REST)
- 📂 awesome-software-architecture (GitHub)
- 🛰️ Thoughtworks Technology Radar
- 📕 Migrando Sistemas Monolíticos para Microsserviços - Sam Newman
- 📘 Criando Microsserviços: Projetando sistemas com componentes menores e mais especializados - Sam Newman
- 📗 Microsserviços Prontos para Produção: Construindo Sistemas Padronizados em uma Organização de Engenharia de Software - Susan Fowler
- 🧩 C4 Model – Modelo para visualização de arquitetura de software
- ✔️ Software architecture diagram review checklist
- 🏗️ Visualising Software Architecture – Simon Brown (Leanpub)
- 📄 Public Training Handbook 2024 (C4 Model) – Simon Brown
- 🧱 Structurizr – Modelagem arquitetural baseada no C4 Model
- 📙 Princípios de Análise e Projeto de Sistemas com UML - Eduardo Bezerra
- 📘 UML Distilled: A Brief Guide to the Standard Object Modeling Language – Martin Fowler
- 📕 UML Essencial: Um Breve Guia para a Linguagem-Padrão de Modelagem de Objetos - Martin Fowler
- 📒 Applying UML and Patterns – Craig Larman
- 📗 Fundamentos Do Desenho Orientado A Objeto Com UML - Jones Meilir Page
- 📖 UML Diagram Types - Visual Paradigm (guia ilustrado)
- 📕 Design Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gang of Four – GoF)
- 🇺🇸 English
- 🇧🇷 Português (PT-BR)
- 📘 Head First Design Patterns – Eric Freeman & Elisabeth Robson
- 📗 Domain-Driven Design Distilled - Vaughn Vernon
- 📂 design-patterns-for-humans (Explicações simples)
- 📦 Refactoring.Guru – Exemplos em múltiplas linguagens
- 🦊 Refactoring.Guru - Design Patterns
- 📕 Code Complete – Steve McConnell
- 📘 Clean Code – Robert C. Martin
- 📔 The Clean Coder – Robert C. Martin
- 📗 Design It! – Michael Keeling
- 📂 awesome-static-analysis
- 🗞️ ACM Transactions on Software Engineering and Methodology
- 🧪 Journal of Software Maintenance and Evolution (ACM)
- 📈 Journal of Software: Evolution and Process (Wiley)
- 📄 IEEE Software - Measuring Software Quality
- 📖 IEEE - Transactions on Software Engineering
- 📦 Requirements Engineering - Springer
- 🖼️ Draw.io - Criação e edição de diagramas online
- 🎓 Astah - Licença gratuita para estudantes
- 📐 PlantUML - Diagramas UML
- 📖 PlantUML - Guia oficial
- 🧜 Mermaid - Criação de diagramas a partir de texto Markdown
- 🎨 Figma - Design colaborativo de interfaces e protótipos
- 🌟 StarUML - Ferramenta para modelagem UML e design de software
- 🧩 C4 Model – Modelo para visualização de arquitetura de software
- 🏗️ Structurizr – Modelagem arquitetural baseada no C4 Model
- 🗺️ dbdiagram.io - Criação e visualização de diagramas ER online
- 🧱 BR Modelo Web - Ferramenta brasileira para modelagem de dados
- 🧮 DrawDB.app - Modelagem de banco de dados visual e moderna
- ✨ Eraser.io - Diagramas, documentação técnica e IA para times de engenharia
IDE (Ambiente de Desenvolvimento Integrado) e editores especializados ajudam a escrever, depurar e manter código com mais eficiência. Ferramentas como IntelliJ IDEA, VS Code e Cursor oferecem recursos como autocompletar, depuração visual, integração com Git, suporte a frameworks como Spring e muito mais.
- 💡 IntelliJ IDEA - IDE da JetBrains
- 🧩 Visual Studio Code - Editor leve e extensível da Microsoft
- ⚡ Cursor - IDE com IA integrada
Ao se cadastrar no GitHub Student Developer Pack, você garante acesso gratuito à versão Ultimate das ferramentas da JetBrains, como o IntelliJ IDEA Ultimate 🧠💻. Essa é uma excelente oportunidade para utilizar recursos avançados de desenvolvimento — tudo sem custo para estudantes! 🚀
1️⃣ Adicione seu e-mail institucional da PUC Minas (terminado em @sga.pucminas.br) como e-mail secundário na sua conta do GitHub em https://github.com/settings/emails
2️⃣ Acesse a caixa de entrada do e-mail e clique no link de confirmação enviado pelo GitHub.
3️⃣ Ao acessar o GitHub Student Developer Pack, permita que o navegador compartilhe sua localização atual 🌍.
4️⃣ Selecione "PUC Minas" como sua instituição, envie um print da sua carteirinha digital do app PUC Mobile ou um comprovante de matrícula recente como forma de verificação. Depois, aguarde até 2 dias úteis para que o selo GitHub Pro 🏅 seja ativado na sua conta.
5️⃣ Acesse: https://www.jetbrains.com/shop/eform/students
➡ Vá até a aba GitHub e clique em "Authorize with GitHub" 🔑.
6️⃣ Instale o IntelliJ IDEA e, ao abrir o programa, vá em "Ativar licença". Escolha a opção "Log in with GitHub", faça login com sua conta GitHub (que já possui o selo GitHub Pro 🏅 e que você autorizou previamente no site da JetBrains — passo 5), e a licença Ultimate será ativada automaticamente 🎉.
🏁 Pronto! Agora você pode aproveitar todos os benefícios do GitHub Pro 🏅, incluindo:
- Acesso gratuito às ferramentas profissionais da JetBrains, como o IntelliJ IDEA Ultimate 🧠💻
- GitHub Copilot com sugestões inteligentes de código (com testes gratuitos por tempo limitado) 🤖
- Repositórios privados ilimitados 🔒
- Insights avançados de contribuições, métricas e estatísticas dos seus projetos 📊
- Ferramentas de CI/CD integradas com GitHub Actions ⚙️
- Integrações com dezenas de serviços e ferramentas educacionais 🧩
Esses recursos ajudam a elevar seu aprendizado, organizar seus projetos e turbinar sua produtividade como desenvolvedor 💼🚀
🔗 Confira todos os detalhes do plano GitHub Pro para estudantes aqui:
A documentação oficial é a principal referência para aprender, consultar funcionalidades e entender o comportamento da linguagem Java e suas bibliotecas padrão. Essencial tanto para iniciantes quanto para desenvolvedores experientes.
O ecossistema Spring oferece suporte completo para criação de aplicações Java robustas, modulares e escaláveis. O Spring Boot, em especial, simplifica a configuração e o desenvolvimento de APIs RESTful, facilitando a integração com bancos de dados, autenticação, mensageria, entre outros.
- 🚀 Spring Initializr - Gerador de projetos Spring
- 📘 Documentação Spring Boot
- 🎓 Curso de monitoria - Como criar uma API RESTful com Spring Boot
Ao desenvolver aplicações web em Java, a camada de apresentação é fundamental para garantir uma boa experiência do usuário.
Frameworks e bibliotecas de frontend auxiliam na criação de interfaces modernas, responsivas e acessíveis, podendo ser integrados a tecnologias como JSF, Thymeleaf ou APIs REST.
- Thymeleaf — Template engine moderna, muito usada com Spring MVC, que facilita renderização de páginas dinâmicas no servidor.
- PrimeFaces — Framework rico em componentes UI voltado para aplicações Java Server Faces (JSF).
- Vaadin — Framework Java para criação de UIs modernas e responsivas, com componentes prontos e integração nativa com Spring.
- Svelte — Framework frontend reativo que compila componentes em JavaScript otimizado, com alta performance e sintaxe simples.
- Astro — Framework de sites estáticos e híbridos, baseado na arquitetura de “ilhas”, focado em velocidade e SEO, podendo integrar React, Vue ou Svelte.
- Mantine — Componentes React com foco em usabilidade e design consistente.
- Radix-UI — Componentes de baixo nível, acessíveis e altamente customizáveis para React.
- Material UI — Implementação do Google Material Design para React.
- Chakra UI — Componentes React com foco em acessibilidade e design system.
- Ant Design — Sistema de design robusto para aplicações corporativas.
- Shadcn UI — Componentes React prontos e acessíveis, estilizados com Tailwind CSS, integráveis em qualquer projeto React.
- Tailwind CSS — Framework de utilitários CSS altamente customizável, usado para construir interfaces modernas e responsivas de forma ágil.
- daisyUI — Extensão de Tailwind com componentes prontos e temas.
- Bootstrap — Framework CSS mais popular, com grid responsivo, componentes prontos e suporte a JS.
- Bulma — Framework CSS moderno baseado em Flexbox, leve e sem dependência de JavaScript.
- Spline — Plataforma de design 3D para web que permite criar cenas interativas, animações e objetos 3D exportáveis para projetos React, HTML e WebGL. Ideal para interfaces modernas com elementos que respondem ao movimento do mouse, scroll e eventos do usuário.
- Three.js — Biblioteca JavaScript para renderização 3D no navegador via WebGL. Muito usada para criar efeitos avançados onde objetos reagem ao movimento do cursor.
- React Three Fiber — Renderer React para Three.js, facilitando a criação de experiências 3D declarativas que interagem com mouse e eventos da página.
- Framer Motion — Biblioteca de animações para React que permite criar efeitos fluidos, incluindo elementos que seguem o cursor, parallax e microinterações.
- Motion — Biblioteca moderna de animações para JavaScript e React focada em performance e simplicidade. Permite criar transições fluidas, animações baseadas em scroll, gestos e efeitos que respondem ao movimento do cursor.
- GSAP (GreenSock) — Biblioteca poderosa de animação JavaScript, muito utilizada para criar efeitos sofisticados como cursor personalizado, parallax avançado e animações baseadas na posição do mouse.
- React Parallax Tilt — Componente React simples para criar efeito de inclinação 3D que responde ao movimento do cursor.
- Shoelace — Biblioteca de componentes baseada em Web Components, independente de framework, altamente customizável.
Clientes REST permitem enviar requisições HTTP (GET, POST, PUT, DELETE), testar endpoints, autenticações e visualizar respostas com facilidade.
Ferramentas como Docker, Fly.io, Vercel, Render, WebDock e Heroku permitem criar ambientes isolados, implantar APIs e serviços em nuvem de forma simples, escalável e muitas vezes gratuita para projetos educacionais.
- 🐳 Docker Desktop
- 🐳 Docker Hub
- ☁️ Fly.io
- ☁️ Heroku
- ☁️ Vercel
- ☁️ Render
- ☁️ WebDock
- Oferece acesso via SFTP com suporte a upload por arrastar e soltar, facilitando o envio de arquivos diretamente do seu computador.
- Mantém o servidor ativo mesmo durante períodos de inatividade, ao contrário de plataformas como o Render, que desligam instâncias ociosas.
- O WebDock possui parceria com a PUC Minas!
- Envie um email para: 📧 rommelcarneiro@pucminas.br solicitando seu acesso.
Essas ferramentas são fundamentais para persistência de dados em aplicações Java. MongoDB (NoSQL) e PostgreSQL (relacional) são amplamente utilizados em projetos web modernos.
-
🗺️ dbdiagram.io - Criação e visualização de diagramas ER online
- 💡 Permite gerar diagramas a partir de código (DBML, SQL, PostgreSQL, etc.)
- 🔄 É possível exportar os diagramas para imagens, PDFs ou scripts SQL.
- 🧰 Excelente para documentar e compartilhar o modelo de dados com equipes de desenvolvimento.
-
🧱 BR Modelo Web - Ferramenta brasileira para modelagem de dados
- 🇧🇷 Interface em português e totalmente online.
- 📘 Permite modelar diagramas Entidade-Relacionamento (ER) com suporte a cardinalidades e atributos compostos.
- 💾 Suporte para salvar e exportar modelos, inclusive em formato SQL.
- 💻 Código-fonte disponível no GitHub: brmodeloweb/brmodelo-app
-
🧮 DrawDB.app - Modelagem de banco de dados visual e moderna
- 🎨 Interface limpa e intuitiva para criar diagramas ER de forma rápida.
- 📤 Exporta para PNG, SVG, PDF e JSON.
- 🧱 Permite gerar scripts SQL a partir do diagrama.
- 🌐 Funciona totalmente no navegador, sem necessidade de instalação.
Recharts é uma biblioteca construída sobre D3.js, projetada especificamente para aplicações React. Possui componentes reutilizáveis, animações, tooltips e grande flexibilidade para dashboards e visualizações de dados.
Chart.js é uma das bibliotecas mais populares para gráficos em JavaScript. Fácil de usar, leve e com suporte a múltiplos tipos de visualização. Pode ser utilizada com React via wrappers como react-chartjs-2.
ECharts é uma poderosa biblioteca desenvolvida pela Apache Foundation, com suporte a visualizações complexas como mapas, gráficos interativos, heatmaps e diagramas avançados. Excelente para dashboards profissionais.
Ferramentas como Grafana e Prometheus permitem acompanhar o comportamento da aplicação, uso de recursos e definir alertas para garantir estabilidade em ambientes produtivos.
Frameworks como JUnit e Mockito são essenciais para escrever testes unitários e mocks. Selenium e Selenide permitem testes automatizados em navegadores, garantindo qualidade e confiança em cada entrega.
Plataformas como Mercado Pago e Stripe oferecem SDKs para Java que facilitam pagamentos online, geração de cobranças, webhooks e checkout transparente.
Existem várias bibliotecas e APIs para integração com mensagens — algumas oficiais, oferecidas pela Meta (WhatsApp Business Platform) e por parceiros como Twilio, 360Dialog e MessageBird, e outras não oficiais, baseadas no WhatsApp Web.
Abaixo estão as principais opções, com foco em bots, automação e integração com sistemas Java, Python ou Node.js.
-
WhatsApp Business Cloud API (Meta) — API oficial da Meta para envio de mensagens e integração corporativa.
- ZapSender - Projeto Exemplo (Python) —
O ZapSender é um script Python (zapsender.py) simples, mas funcional, projetado para interagir com a API de Nuvem do WhatsApp (Meta for Developers).
Ele encapsula a lógica necessária para construir o payload JSON e enviar requisições HTTP POST para o endpoint da Meta, permitindo o envio programático de mensagens pré-aprovadas (Templates) para números específicos.
- ZapSender - Projeto Exemplo (Python) —
-
Twilio WhatsApp API — Plataforma de comunicação com suporte oficial ao WhatsApp, SMS e outros canais.
twilio - Repositório oficial no GitHub- 📚 Twilio Docs
- Twilio WhatsApp Messenger - Projeto Exemplo (Java/Spring Boot) —
Este projeto é uma aplicação Spring Boot que utiliza a API do Twilio para enviar mensagens via WhatsApp.
A aplicação permite o envio de mensagens simples e lembretes de compromissos para números de WhatsApp.
-
360Dialog WhatsApp API — Parceiro oficial da Meta que oferece acesso à API Business via token.
-
MessageBird WhatsApp API — Solução comercial para envio e recebimento de mensagens WhatsApp via REST API.
- whatsapp-web.js — API não oficial para automação do WhatsApp Web.
- wwebjs - GitHub Repository — Código-fonte e exemplos práticos.
- whatsapp-web.js Guide (wwebjs.dev) — Guia passo a passo para iniciar o desenvolvimento.
- wwebjs.dev - Docs API — Referência completa da API e dos objetos disponíveis.
- Baileys — Biblioteca JavaScript leve e flexível, usada em bots e integrações com suporte a múltiplas conexões.
- Venom Bot — Framework completo em Node.js para criação de bots, com suporte a mensagens, grupos e QR Code.
- open-wa/wa-automate — Biblioteca avançada com suporte a automações complexas e API REST opcional.
- WPPConnect — Projeto brasileiro, com API REST pronta e painel de administração para WhatsApp bots.
- go-whatsapp — Implementação em Go para automação e bots com WhatsApp Web.
- Envio e recebimento de mensagens (texto, imagem, áudio, vídeo, PDF, etc.).
- Leitura e envio de status, contatos e grupos.
- Autenticação por QR Code (não oficiais) ou token (oficiais).
- Webhooks para receber mensagens em tempo real.
- Integração com bancos de dados, chatbots e APIs externas.
Swagger facilita a criação de APIs REST bem documentadas, com suporte a testes via interface gráfica e geração automática de contratos e documentação OpenAPI para serviços Java.
- 🌐 Swagger - Ferramenta para design, documentação e testes de APIs REST
swagger-api - Repositório oficial no GitHub- 📚 Swagger Docs
Ferramentas para análise estatística de código, detecção de code smells, métricas de qualidade e identificação de más práticas de programação.
- PMD: Ferramenta que verifica problemas comuns em código Java, como variáveis não utilizadas, duplicação de código e estilos de codificação.
- SonarQube: Plataforma para análise contínua de qualidade de código, cobrindo múltiplas linguagens. Avalia bugs, vulnerabilidades e cobertura de testes.
- Qodana: Plataforma de análise estática de código desenvolvida pela JetBrains. Integra-se com IDEs, CI/CD e repositórios para detectar code smells, vulnerabilidades de segurança e violações de boas práticas, com suporte a múltiplas linguagens como Java, Kotlin, PHP, Python e JavaScript.
- JNose: Ferramenta focada na identificação de test smells e design smells em código Java. Ajuda na compreensão de problemas relacionados à testabilidade e manutenibilidade.
- Code Climate: Ferramenta de análise contínua de qualidade de código que gera métricas como complexidade ciclomática, duplicação, cobertura de testes e code smells. Suporta diversas linguagens e se integra com GitHub, GitLab e outros.
- CodeQL: Plataforma de análise de segurança e qualidade de código da GitHub, que permite executar consultas para detectar vulnerabilidades, bugs e más práticas em diversos tipos de código fonte.
- CK: Ferramenta de linha de comando para análise estática de código Java. Extrai métricas como CBO, LCOM, WMC, RFC, DIT, NOM e LOC, úteis para avaliar a complexidade e a qualidade do código.
Relatórios anuais e pesquisas globais ajudam a entender as principais linguagens, ferramentas, salários, preferências e tendências no mercado de desenvolvimento de software. São ótimos para orientar decisões de carreira e identificar habilidades em alta.
- DevSkiller Report 2025
- Stack Overflow Developer Survey 2025
- Stack Overflow Developer Survey 2024
- JetBrains Developer Ecosystem 2024
- GitHub Octoverse 2024
🧑🤝🧑 Exemplo de slides para apresentação em grupo:
💻 Apresentação utilizando Svelte:
Esta seção reúne um template construído por mim e exemplos reais de READMEs para ajudar você a estruturar, documentar e apresentar seus projetos de forma clara, organizada e profissional.
O Design System é um conjunto de padrões, regras e componentes reutilizáveis que definem a identidade visual e o comportamento da interface de um sistema. Ele garante consistência entre telas, facilita o desenvolvimento e melhora a experiência do usuário ao padronizar cores, tipografia, botões, inputs e demais elementos visuais.
🧑🤝🧑 Exemplo de Design System:
- 🎨 Design System do projeto CarFlow no Vercel
- 📄 Design System do projeto CarFlow em PDF
Design System criado pela aluna Laura Pontara - GitHub
- 💻 Utilize a aba Projects do GitHub para criar um quadro Kanban que organize todas as tarefas do projeto em To Do, In Progress e Done.
- 🛠 É possível criar colunas customizadas para refletir o fluxo de trabalho da equipe.
- 🆕 Crie issues para cada tarefa, bug ou melhoria, e vincule-as às colunas do Kanban.
- 🏷 Use labels, milestones e assignees para organizar e priorizar as tarefas.
- 🔗 Documentação oficial GitHub Projects: GitHub Projects
- 🔗 Guia completo para criar e gerenciar issues: GitHub Issues
- 💻 Configure workflows no GitHub Actions para automatizar build, testes e deploy do projeto.
- 📂 Crie workflows no diretório
.github/workflowspara definir os processos de CI/CD do seu projeto. - 🔗 Documentação oficial GitHub Actions: GitHub Actions
- 🏗 Exemplos de workflows prontos: GitHub Actions Examples
| Opção 1 | Opção 2 |
|---|---|
![]() |
![]() |
| Fonte: Sistema de Atividades Práticas Curriculares (APC) | Brasão PUC Minas fundo azul |
| Opção 3 | Opção 4 |
|---|---|
![]() |
![]() |
| Fonte: Fundo Teams ICEI 1 | Fonte: Fundo Teams ICEI 2 |
| Opção 5 | Opção 6 |
|---|---|
![]() |
![]() |
| Foto 1: Campus Coração Eucarístico | Foto 2: Campus Coração Eucarístico |
| Opção 7 | Opção 8 |
|---|---|
![]() |
![]() |
| Foto 3: Campus Coração Eucarístico | Foto 4: Campus Coração Eucarístico |
| Opção 9 | Opção 10 |
|---|---|
![]() |
![]() |
| Foto 5: Campus Coração Eucarístico | Foto 6: Campus Coração Eucarístico |
| Opção 11 | Opção 12 |
|---|---|
![]() |
![]() |
| Foto 9 - Fonte: Canvas - PUC Minas | Foto 10: Igreja e Presépio PUC Minas |
| Opção 13 | Opção 14 |
|---|---|
![]() |
![]() |
| Foto 7: Presépio PUC Minas Vertical | Foto 8: Campus Coração Eucarístico Vertical |
| Opção 15 | Opção 16 |
|---|---|
![]() |
![]() |
| Foto 7: Campus Coração Eucarístico Vertical | Foto 8: Campus Coração Eucarístico Vertical |
| Exemplo 1 de Tela de Login |
|---|
![]() |
| Projeto: SecureLoginPUC_2 |
| Exemplo 2 de Tela de Login |
|---|
![]() |
| Sistema: Sistema de Atividades Práticas Curriculares (APC) |
| Exemplo 3 de Tela de Login |
|---|
![]() |
| Sistema: Ferramenta de Inserção de Conteúdo (FIC) |
Clique aqui para baixar o pacote completo (.zip) com todas as logos do curso de Engenharia de Software e os brasões oficiais da PUC Minas, incluindo a nova identidade visual lançada em 2025.
| Opção 1 | Opção 2 | Opção 3 | Opção 4 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Novo Brasão PUC Minas 2025 | Brasão PUC Minas preto e branco | Brasão PUC Minas fundo transparente | Logo PUC Mobile |
| Opção 5 | Opção 6 | Opção 7 |
|---|---|---|
![]() |
![]() |
![]() |
| Logo Engenharia de Software Vertical | Logo Engenharia de Software Vertical Negativo | Logo Engenharia de Software Colorido |
| Opção 8 | Opção 9 |
|---|---|
![]() |
![]() |
| Logo Engenharia de Software Horizontal | Logo Engenharia de Software Horizontal Negativo |
Um vídeo acelerado (time lapse) ideal para ser utilizado como plano de fundo na tela de login do Sistema de Moeda Estudantil (ou, alternativamente, AraCoin, CampusCoin ou PUC Pay).
A animação em time lapse mostra o movimento do campus e cria uma ambientação moderna e institucional, substituindo fundos estáticos em branco ou preto, trazendo vida e identidade visual à interface.
Um vídeo acelerado (time lapse) mostrando o fluxo de pessoas caminhando pela calçada.
Transmite movimento e energia, sendo ideal para telas de autenticação ou áreas de espera no sistema.
Um vídeo em velocidade normal mostrando um grupo de estudantes jogando ping pong em uma praça.
Traz uma sensação de convivência, leveza e ambiente descontraído — ideal para planos de fundo mais sutis e humanos.
-
1️⃣ Pexels Videos
- Muitos vídeos gratuitos em alta resolução.
- Licença livre para uso pessoal e comercial.
- Categorias: time-lapse, natureza, pessoas, tecnologia.
-
2️⃣ Pixabay Videos
- Biblioteca vasta de vídeos gratuitos.
- Não é necessário atribuir créditos, mas recomendado.
- Bom para fundos de interface, cenários urbanos e animações suaves.
-
3️⃣ Videvo
- Mistura de vídeos gratuitos e premium.
- Alguns vídeos exigem atribuição, mas muitos podem ser usados livremente.
- Possui loops ideais para telas de fundo.
-
4️⃣ Coverr
- Especializado em vídeos de fundo para sites e aplicativos.
- Downloads gratuitos e sem necessidade de atribuição.
- Ótimo para vídeos curtos de pessoas, cidades e tecnologia.
-
5️⃣ Mixkit
- Vídeos HD gratuitos, incluindo time-lapse, negócios e vida urbana.
- Ideais para login screens, banners ou apresentações.
Exemplos de portfólio profissional:
- 🌐 Portfólio
- 📦 Lib utilizada - VantaJS: https://www.vantajs.com/
- 📖 VantaJS GitHub: https://github.com/tengbao/vanta
Repo Portfólio
GitHub
João Marcelo Carvalho (Aluno do curso de Engenharia de Software da PUC Minas - Campus Coração Eucarístico):
- 🌐 Portfólio
- 📦 Lib utilizada - NextJS: https://nextjs.org/
Repo Portfólio
GitHub
- 🌐 Portfólio
- 📦 Lib utilizada - Shadcn: https://ui.shadcn.com/
- 📖 Shadcn Docs: https://ui.shadcn.com/docs/registry/getting-started
Repo Portfólio
GitHub
Gabriel Chagas Lage (Aluno do curso de Engenharia de Software da PUC Minas - Campus Coração Eucarístico):
- 🌐 Portfólio
- 📦 Lib utilizada - react-terminal-ui: https://github.com/jonmbake/react-terminal-ui
Repo Portfólio
GitHub
Guilherme Vieira (Aluno do curso de Engenharia de Software da PUC Minas - Campus Coração Eucarístico):
Victor Gabriel Cruz Pereira (Aluno do curso de Engenharia de Software da PUC Minas - Campus Lourdes):
- 🌐 Portfólio
- 📦 Lib utilizada - Three JS: https://threejs.org/
- 📖 Three JS Docs: https://threejs.org/docs/
- Repositório do website
GitHub
- Componente React: react-terminal-ui
- Demonstração: react-terminal-ui/demo
- Styling: ines/termynal
- https://github.com/emmabostian/developer-portfolios
- https://portfolio-starter-template.webflow.io/
- https://craig-roush-portfolio-template.webflow.io/
- https://alex-grant-template.webflow.io/
- https://dexter-morgan.webflow.io/
- https://novo-demo.squarespace.com/
- https://kester-demo.squarespace.com/
- https://pt.wix.com/website-template/view/html/1913
O Figma é uma das principais ferramentas de design de interfaces e prototipagem colaborativa do mercado. Permite criar layouts, fluxos de navegação e componentes reutilizáveis de forma integrada entre designers e desenvolvedores. Com recursos de colaboração em tempo real, facilita a iteração rápida e a validação de ideias, sendo amplamente adotado por equipes ágeis e projetos orientados à experiência do usuário (UX/UI).
- Figma - Community - Template - Dev 1
- Figma - Community - Template - Dev 2
- Figma - Community - Template - Dev 3
- Figma - Community - Template - Dev 4
- Figma - Community - Template - Dev 5
- Figma - Community - Template - Dev 6
- Figma - Templates - AWS Diagram Software
- Figma - Community - Template - AWS Diagram Software
- Figma - Community - Template - Architecture Diagram Components
- Figma - Community - Example - Architecture Diagram Components - Multiplayer
- Figma - Community - Template - Class Diagram Template 1
- Figma - Community - Template - Class Diagram Template 2
- Figma - Community - Template - Class Diagram Kit
- Figma - Community - Template - Class Diagram Components
- Figma - Templates - Sequence Diagram
- Figma - Article - What is a Sequence Diagram
- Figma - Community - Sequence Diagram Template 1
- Figma - Community - Sequence Diagram Template 2
- Figma - Community - Sequence Diagram Template 3
- Figma - Templates - C4 Model Examples
- Figma - Community - The C4 Model for Figma
- Figma - Community - Free Flowchart C4 Model for Visualising Software Architecture
- EdrawMax – Templates de Package Diagram
- Lucid – Package Diagram Templates
- Visual Paradigm – Templates de Package Diagram
- Visual Paradigm – Exemplo de Package Diagram
- SmartDraw – Exemplos de Package Diagram
- Miro - Exemplo de Use Case Diagram
- Edraw – Como Criar um UML Package Diagram
- Lucidchart – Tutorial UML Package Diagram
- Draw.io – Introdução a UML Package Diagrams
- Miro – O que é um UML Package Diagram?
- Lucid – Communication Diagram Templates
- Miro – UML Communication Diagram Template
- Figma – UML Communication Diagram Template (The Conference Room)
- Lucidchart – Tutorial UML Communication Diagram
- Microsoft Visio – Criar um Diagrama de Comunicação UML
GitHub - awslib20
GitHub - aws-icons-for-plantuml
GitHub - AWS-PlantUML (source)- ☁️ AWS Architecture Icons
As fontes monoespaçadas e estilizadas desempenham um papel essencial no desenvolvimento de software, design e prototipagem. Elas impactam diretamente a legibilidade do código, a produtividade e até a estética de interfaces. Fontes como FiraCode, JetBrains Mono e Cascadia Code oferecem recursos como ligaduras, clareza visual e otimização para telas digitais. Além de melhorar a experiência do programador, também são amplamente utilizadas em projetos de identidade visual, portfólios, prototipagem e apresentações, unindo funcionalidade e estilo.
docker --version
docker build -t minha-aplicacao .
docker build --platform linux/amd64 -t minha-aplicacao .
docker images
docker run -d -p 8080:8080 minha-aplicacao
docker run --platform linux/amd64 -d -p 8080:8080 minha-aplicacao
docker ps
docker stats
Comandos Docker: Guia rápido
| Comando | Descrição |
|---|---|
| docker run | Executa um novo contêiner a partir de uma imagem. |
| docker ps | Lista os contêineres em execução. |
| docker ps -a | Lista todos os contêineres, incluindo os que não estão em execução. |
| docker images | Lista todas as imagens locais disponíveis. |
| docker rmi | Remove uma ou mais imagens. |
| docker rm | Remove um ou mais contêineres. |
| docker build | Cria uma nova imagem a partir de um Dockerfile. |
| docker pull | Baixa uma imagem do Docker Hub ou de um repositório remoto. |
| docker push | Envia uma imagem para um repositório remoto no Docker Hub. |
| docker exec | Executa um comando em um contêiner em execução. |
| docker logs | Exibe os logs de um contêiner. |
| docker network | Gerencia redes Docker. |
| docker volume | Gerencia volumes para persistência de dados. |
| docker-compose up | Inicia e orquestra múltiplos contêineres definidos no docker-compose.yml. |
| docker-compose down | Para e remove os contêineres, redes e volumes definidos no docker-compose.yml. |
| docker stats | Exibe estatísticas em tempo real sobre o uso de recursos de contêineres em execução. |
| docker inspect | Mostra informações detalhadas sobre um contêiner ou imagem. |
| docker start | Inicia um contêiner que foi parado. |
| docker stop | Para um contêiner em execução. |
| docker restart | Reinicia um contêiner. |
| docker pause | Pausa um ou mais contêineres em execução. |
| docker unpause | Retoma um ou mais contêineres que foram pausados. |
| docker commit | Cria uma nova imagem a partir das alterações em um contêiner. |
| docker tag | Adiciona uma nova tag a uma imagem existente. |
| docker login | Faz login em um repositório Docker. |
| docker logout | Faz logout de um repositório Docker. |
| docker search | Busca imagens no Docker Hub. |
| docker pull | Baixa uma imagem do Docker Hub ou de um repositório remoto. |
| docker cp | Copia arquivos ou diretórios entre o sistema de arquivos do contêiner e o host. |
| docker volume create | Cria um novo volume Docker. |
| docker volume rm | Remove um ou mais volumes. |
| docker network create | Cria uma nova rede Docker. |
| docker network rm | Remove uma ou mais redes. |
| docker network ls | Lista todas as redes Docker. |
| docker history | Mostra o histórico de camadas de uma imagem. |
Obs: Para iniciar um code review, você precisa abrir um pull request (PR) no repositório. O PR é a solicitação para mesclar suas alterações no branch principal. Depois de aberto, você e seus colegas podem navegar pelas mudanças, clicar nas linhas de código para adicionar comentários e discutir melhorias diretamente no PR.
A classe UserService atualmente contém lógica de acesso direto ao banco de dados usando EntityManager. Para seguir o princípio da separação de responsabilidades e melhorar a testabilidade do código, considere extrair essa lógica para um DAO (UserDAO).
- Redução do acoplamento entre a camada de serviço e a persistência.
- Facilidade para substituir a implementação do DAO futuramente (por exemplo, ao trocar Hibernate por outra tecnologia).
- Facilidade para criar mocks e testar a lógica de negócio isoladamente.
- Criar uma classe
UserDAOcom métodos comofindById(Long id)esave(User user). - Injetar essa classe no
UserService. - Mover a lógica de persistência para o DAO.
Um roadmap é um guia visual que apresenta etapas, habilidades ou conhecimentos necessários para atingir um objetivo específico. Ele ajuda a organizar o aprendizado ou desenvolvimento ao longo do tempo, mostrando caminhos recomendados e prioridades.
Veja também:
A arquitetura de um app Spring Boot é como um ecossistema bem orquestrado, onde cada componente tem um papel essencial para garantir a escalabilidade, manutenibilidade e organização do sistema.
🔍 Entender a fundo cada uma dessas peças é o que diferencia um bom desenvolvedor!
Confira abaixo o papel fundamental de cada componente ilustrado no GIF:
- 🎬 Gif criado por Victor Targino Von Melentovytch
| Componente | Descrição |
|---|---|
| 🧭 Controller | É a primeira linha de contato, recebendo as requisições HTTP e devolvendo as respostas. Atua como a interface da aplicação. |
| 🧠 Service | Contém as regras de negócio da aplicação. É onde a lógica central é executada, separada da interface e da persistência. |
| 💾 Repository | Responsável pela comunicação com o banco de dados, abstraindo as operações de persistência e consulta. |
| 🔗 JPA (Java Persistence API) | Atua como uma ponte entre objetos Java e tabelas do banco de dados, facilitando o mapeamento e a persistência dos dados. |
| 🌐 REST | Define os padrões de comunicação via HTTP, essenciais para a construção de APIs modernas e interoperáveis. |
| 📦 Entity | Representa uma tabela do banco de dados como um objeto Java. Base para o mapeamento e a persistência dos dados. |
| 🧪 Testes | Garante que todas as funcionalidades funcionem como esperado. Pilar para a qualidade e robustez do software. |
| 📤 DTOs (Data Transfer Objects) | Objetos leves usados para transportar dados entre camadas, evitando o envio de informações desnecessárias. |
| 📚 Swagger | Ferramenta que gera uma documentação interativa da API, facilitando o entendimento e uso por outros desenvolvedores. |
| 🔐 Security | Cuida da autenticação (quem você é) e autorização (o que você pode fazer), protegendo os recursos da aplicação. |
| ⚙️ Configuration | Centraliza as configurações da aplicação, como portas, credenciais e parâmetros de comportamento. |
| 🚨 Exception Handler | Centraliza o tratamento de erros, permitindo respostas consistentes e amigáveis em caso de falhas. |
✅ Conhecer a arquitetura do Spring Boot ajuda a escrever sistemas mais limpos, coesos e testáveis. Cada camada tem sua função e respeitar essa separação é o primeiro passo para a excelência no desenvolvimento backend.
O Spring Boot continua sendo uma das ferramentas mais poderosas e utilizadas por desenvolvedores Java. Sua proposta de simplificar o desenvolvimento de aplicações robustas e prontas para produção o tornou o padrão de fato no desenvolvimento backend moderno.
Em 2025, dominar o Spring Boot é essencial para quem deseja se destacar como desenvolvedor backend. Com a crescente adoção de arquiteturas de microserviços e práticas nativas de nuvem, a demanda por profissionais especializados nesse ecossistema só aumenta.
O roadmap abaixo vai te guiar desde os conceitos fundamentais até os tópicos mais avançados, combinando teoria e prática de forma progressiva. Você entenderá como o ecossistema evoluiu — com recursos como compilação nativa, melhorias de performance e integração com a nuvem — e como aplicar esses conhecimentos no desenvolvimento de aplicações reais.
Um roadmap é um guia visual que apresenta etapas, habilidades ou conhecimentos necessários para atingir um objetivo específico. Ele ajuda a organizar o aprendizado ou desenvolvimento ao longo do tempo, mostrando caminhos recomendados e prioridades.
- 📘 Spring Boot Roadmap 2025 – AmigosCode
- 📗 Spring Boot Roadmap – roadmap.sh
Java Developer Roadmap – kamranahmedse/developer-roadmap (GitHub)





























