GymNotes é um aplicativo web moderno e responsivo para organizar treinos de academia, visualizar progresso e engajar com a comunidade fitness.
Nota: Este projeto foi desenvolvido como um estudo sobre Qualidade de Código, explorando os impactos da abordagem conhecida como Vibe Coding no processo de desenvolvimento de software.
A proposta é priorizar a concepção, a comunicação e a tomada de decisões arquiteturais por meio de linguagem natural, reduzindo ao máximo a escrita manual de código. O desenvolvimento é conduzido quase integralmente através de interações com ferramentas de Inteligência Artificial, utilizando o ecossistema de IA da Google.
Atualmente, o projeto é desenvolvido com o auxílio do Antigravity IDE, dos serviços de IA do Google Cloud e das ferramentas de desenvolvimento derivadas do antigo Firebase Studio.
Embora a abordagem privilegie velocidade e experimentação, o projeto busca manter elevados padrões de qualidade, incluindo uma interface moderna e intuitiva, componentização consistente, arquitetura escalável e uma experiência de usuário cuidadosamente projetada.
O objetivo principal é avaliar até que ponto uma aplicação pode ser concebida, implementada e evoluída utilizando IA como principal mecanismo de desenvolvimento, sem abrir mão da qualidade técnica e da sustentabilidade do código produzido.
Este projeto utiliza Next.js (App Router) e segue uma estrutura limpa e orientada a funcionalidades (feature-driven):
src/app/: Contém todas as rotas e páginas da aplicação.page.tsx: A Landing Page pública, focada em conversão e com animações modernas.dashboard/: A tela inicial do usuário autenticado (resumo do dia).workouts/,history/,community/, etc.: Páginas de funcionalidades principais.
src/components/: Elementos de UI reutilizáveis.ui/: Componentes base e primitivos (ex: botões, inputs, cards).app-layout.tsx: O layout responsivo principal (Sidebar no desktop, Dock no mobile).
src/contexts/: Gerenciamento de estado global usando React Context.auth-context.tsx: Gerencia o estado de autenticação via Firebase.language-context.tsx: Gerencia a internacionalização (i18n) em tempo real (Português/Inglês).
src/lib/: Utilitários, tipagens e integrações.firebase-service.ts: Centraliza as queries e integrações com o Firestore.types.ts: Definições rigorosas do TypeScript para os modelos de domínio (Treino, Exercício, Usuário, etc).
src/locales/: Arquivos de tradução em JSON (en.json,pt.json).
Abaixo está o diagrama de Contexto de Sistema detalhando a arquitetura de alto nível do GymNotes.
graph TD
User(("Usuário"))
subgraph App
GymNotes["GymNotes Web App\n(Next.js / React)"]
end
subgraph Firebase
FirebaseAuth["Firebase Auth"]
Firestore["Cloud Firestore"]
end
User -->|Gerencia e executa treinos| GymNotes
GymNotes -->|Autenticação| FirebaseAuth
GymNotes -->|Treinos, Perfil e Histórico| Firestore
classDef person fill:#08427b,stroke:#052e56,color:#fff
classDef system fill:#8b5cf6,stroke:#5b21b6,color:#fff
classDef extSystem fill:#333333,stroke:#111111,color:#fff
class User person
class GymNotes system
class FirebaseAuth,Firestore extSystem
-
Instale as dependências:
npm install
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Abra
http://localhost:3000no seu navegador para ver o aplicativo em funcionamento.
- Framework: Next.js (App Router)
- UI & Estilos: React 18, Tailwind CSS, Lucide Icons, Glassmorphism
- Backend & Database: Firebase (Authentication & Cloud Firestore)
- Mindset: Vibe Coding
Este projeto está sob a licença MIT. Veja o arquivo para mais detalhes.
Consulte nossa Política de Segurança para obter informações sobre como relatar vulnerabilidades e nossas práticas de segurança.