Um portfรณlio interativo e responsivo desenvolvido com Flutter Web, integrando Supabase como backend e demonstrando arquitetura profissional, UI/UX avanรงada, animaรงรตes complexas e gerenciamento de estado robusto.
Este projeto vai alรฉm de uma simples landing page estรกtica. Ele implementa conceitos avanรงados de renderizaรงรฃo, interatividade e arquitetura:
- ๐ Sistema de Autenticaรงรฃo: Login com Supabase Auth e persistรชncia de sessรฃo
- ๐ Painel Admin (CRUD Completo): Gerenciamento de projetos, experiรชncias, habilidades e certificados em tempo real
- ๐ Internacionalizaรงรฃo (i18n): Suporte para mรบltiplos idiomas (PT-BR e EN)
- ๐ Dark Mode: Alternรขncia entre tema claro e escuro com persistรชncia
- ๐ Hero Section com Fรญsica: รcones de tecnologia com efeito magnรฉtico reverso (repulsรฃo ao mouse)
- ๐ง Header Glassmorphism: Navegaรงรฃo flutuante com blur e transparรชncia dinรขmica
- ๐ฅ๏ธ Cards Hologrรกficos 3D: Efeito tilt 3D seguindo o cursor com iluminaรงรฃo dinรขmica
- โก Animaรงรตes Fluidas: Micro-interaรงรตes com
flutter_animatee animaรงรตes customizadas - ๐ฑ Totalmente Responsivo: Layout adaptativo para Mobile, Tablet e Desktop
- ๐ฌ Intro Animada: Loading screen estilo terminal hacker com efeitos de digitaรงรฃo
- Linguagem: Dart 3.x
- Framework: Flutter 3.27+ (Web, Android, iOS)
- Backend: Supabase (PostgreSQL + Auth + Storage)
- Padrรฃo de Projeto: MVVM + Repository Pattern + Clean Architecture Elements
- Gerรชncia de Estado:
provider(ChangeNotifier) - Injeรงรฃo de Dependรชncia: Provider DI
- Design System: Atomic Design (Atoms โ Molecules โ Organisms)
- Animaรงรตes:
flutter_animate,AnimationControllercustomizados - UI Components:
google_fonts,font_awesome_flutter - Networking:
supabase_flutter,http - Utilidades:
url_launcher,flutter_dotenv - Internacionalizaรงรฃo:
flutter_localizations, ARB files
O projeto segue uma estrutura Atomic Design misturada com Clean Architecture para garantir escalabilidade e manutenรงรฃo:
lib/
โโโ core/ # Configuraรงรตes globais (Temas, Constantes, Utils)
โโโ data/ # Camada de Dados
โ โโโ mocks/ # Dados estรกticos (Currรญculo, Projetos)
โ โโโ models/ # Modelos de dados (ProjectModel, SkillModel)
โ โโโ repositories/ # Contratos e Implementaรงรตes de Repositรณrio
โโโ presentation/ # Camada de UI
โ โโโ controllers/ # Lรณgica de Estado (PortfolioController)
โ โโโ pages/ # Telas principais (HomePage)
โ โโโ widgets/ # Componentes Visuais (Atomic Design)
โ โโโ atoms/ # Botรตes, Chips, Elementos Magnรฉticos
โ โโโ molecules/ # Cards Interativos (ProjectCard, ExperienceCard)
โ โโโ organisms/ # Seรงรตes completas (Hero, Skills, Projects)
โโโ main.dart # Ponto de entrada e Injeรงรฃo de DependรชnciasO projeto implementa uma arquitetura hรญbrida robusta que combina os melhores aspectos de MVVM, Repository Pattern e Clean Architecture:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PRESENTATION LAYER โ
โ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Provider โ โ โ
โ โ VIEW โโโโโโโโโโโโบโ VIEW MODEL โ โ
โ โ (Pages + โ Binding โ (Controllers) โ โ
โ โ Widgets) โ โ โ โ
โ โ โ โ โข PortfolioController โ โ
โ โโโโโโโโโโโโโโโโโโ โ โข AuthController โ โ
โ โข home_page.dart โ โ โ
โ โข admin_dashboard_page.dart โ State Management: Provider โ โ
โ โข Atomic Design Components โ (ChangeNotifier Pattern) โ โ
โ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โ
โ Dependency
โ Injection
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATA LAYER โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Repository Interface (Contract) โ โ
โ โ โ โ
โ โ abstract class IPortfolioRepository { โ โ
โ โ Future<List<Project>> getProjects(); โ โ
โ โ Future<void> addProject(Project project); โ โ
โ โ } โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ implements โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Repository Implementation โ โ
โ โ โ โ
โ โ class SupabaseRepository โ โ
โ โ implements IPortfolioRepository { โ โ
โ โ โ โ
โ โ โข getProjects() โ โ
โ โ โข getExperiences() โ โ
โ โ โข getSkills() โ โ
โ โ โข getCertificates() โ โ
โ โ โข CRUD Operations โ โ
โ โ โข Error Handling โ โ
โ โ โข Logging โ โ
โ โ } โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ MODELS (Entities) โ โ
โ โ โ โ
โ โ โข ProjectModel โข SkillModel โ โ
โ โ โข ExperienceModel โข CertificateModel โ โ
โ โ โ โ
โ โ Responsibilities: โ โ
โ โ - Data structure definition โ โ
โ โ - JSON serialization (toMap/fromMap) โ โ
โ โ - Type validation โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ EXTERNAL DATA SOURCE โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ SUPABASE โ โ
โ โ โ โ
โ โ โข PostgreSQL DB โ โ
โ โ โข Auth System โ โ
โ โ โข Real-time Sync โ โ
โ โ โข Row Level Sec. โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
USER INTERACTION
โ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ View (Widget) โ โ User taps button, enters text
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ Event (onPressed, onChange)
โโโโโโโโโโโโโโโโโโโโโโโโ
โ ViewModel โ โ Receives event, updates state
โ (Controller) โ โ Calls repository methods
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ Method call
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Repository โ โ Handles data operations
โ (Data Layer) โ โ Interacts with Supabase
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ HTTP/gRPC
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Supabase API โ โ Returns data
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ Response
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Repository โ โ Converts to Models
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ Models
โโโโโโโโโโโโโโโโโโโโโโโโ
โ ViewModel โ โ Updates state
โ (Controller) โ โ notifyListeners()
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โ State change
โโโโโโโโโโโโโโโโโโโโโโโโ
โ View (Widget) โ โ Rebuilds with new data
โโโโโโโโโโโโโโโโโโโโโโโโ
- S - Single Responsibility: Cada classe tem uma responsabilidade รบnica
- O - Open/Closed: Extensรญvel via interfaces (IPortfolioRepository)
- L - Liskov Substitution: SupabaseRepository pode ser substituรญdo por MockRepository
- I - Interface Segregation: Interfaces especรญficas para cada tipo de repositรณrio
- D - Dependency Inversion: Controllers dependem de abstraรงรตes (interfaces)
- Repository Pattern: Abstraรงรฃo da camada de dados
- MVVM: Separaรงรฃo entre View e lรณgica de negรณcio
- Dependency Injection: Provider para injeรงรฃo de dependรชncias
- Observer Pattern: ChangeNotifier para reatividade
- Atomic Design: Componentizaรงรฃo hierรกrquica de UI
| Benefรญcio | Descriรงรฃo |
|---|---|
| ๐งช Testabilidade | Fรกcil criar mocks para testes unitรกrios |
| ๐ง Manutenibilidade | Mudanรงas isoladas nรฃo afetam outras camadas |
| ๐ Escalabilidade | Fรกcil adicionar novas features sem quebrar cรณdigo existente |
| ๐ Reusabilidade | Componentes podem ser reutilizados em diferentes contextos |
| ๐ฅ Colaboraรงรฃo | Estrutura clara facilita trabalho em equipe |
| ๐ Debugging | Fluxo de dados previsรญvel facilita identificaรงรฃo de bugs |
Certifique-se de ter o Flutter SDK instalado.
-
Clone o repositรณrio:
git clone [https://github.com/DevFullStack-Franklyn-R-Silva/meu_curriculo_flutter.git](https://github.com/DevFullStack-Franklyn-R-Silva/meu_curriculo_flutter.git) cd meu_curriculo_flutter -
Instale as dependรชncias:
flutter pub get
-
Rode no Chrome:
flutter run -d chrome
Para gerar a versรฃo de produรงรฃo e hospedar gratuitamente:
# Gere o build de web (substitua o href pelo nome do seu repositรณrio)
flutter build web --release --base-href "/meu_curriculo_flutter/"
# O conteรบdo gerado estarรก na pasta /build/webFranklyn Roberto Mobile Developer (Flutter) & Fullstack
Desenvolvido com ๐ e Flutter.