Skip to content

open-foco/app.gainshot

Repository files navigation

GainShot Logo

GainShot

Registre o físico. Grave o esforço. Mostre o progresso.

Aplicativo mobile de registro de progresso físico com marcador de treino incorporado nas fotos.

React Native Expo TypeScript Version


📱 Screenshots

Home
Histórico
Treino
Seleção de treino
Músculos
Mapa muscular
Preview
Preview do marcador

✨ Funcionalidades

  • 📸 Registro fotográfico — Câmera frontal/traseira ou importação da galeria
  • 🏋️ Mapa muscular anatômico — Bonequinho interativo com frente e costas, 13 grupos musculares
  • 🏷️ Stamp de treino — Marcador visual queimado na foto com zonas ativadas, stats e data
  • 🎨 Marcador personalizável — 4 posições, 3 tamanhos, 4 temas (Dark/Light/Minimal/Clear)
  • 📊 6 modalidades — Musculação, Corrida, Bike, Natação, Descanso e Outro
  • 🗂️ Histórico local — Lista cronológica de todos os registros com detalhes completos
  • 📤 Compartilhamento — Foto com marcador pronta para Instagram, WhatsApp e outras redes
  • 🔒 100% offline — Nenhum dado enviado para servidores, tudo salvo localmente

🛠️ Stack

Tecnologia Uso
React Native 0.83 Framework mobile
Expo 55 Plataforma de desenvolvimento
React Navigation Navegação entre telas
Zustand Estado global
expo-sqlite Banco de dados local
react-native-svg Bonequinho muscular anatômico
react-native-view-shot Composição do marcador na foto
expo-camera Captura de foto
EAS Build Build e distribuição

🚀 Como rodar

Pré-requisitos

  • Node.js 18+
  • Java 17 (o projeto não é compatível com Java 21+)
  • Expo Go no celular ou emulador Android

Instalação

# Clone o repositório
git clone https://github.com/seu-usuario/gainshot.git
cd gainshot

# Instale as dependências
npm install

Rodando o projeto

# Expo Go (desenvolvimento rápido)
npx expo start

# Build nativo Android (necessário para salvar na galeria)
npx expo run:android

📦 Build de release

# APK para distribuição direta
eas build --platform android --profile preview

# Build de produção para Play Store
eas build --platform android --profile production

📁 Estrutura do Projeto

├── src/
│   ├── components/
│   │   ├── MuscleFigureFront.tsx   # Bonequinho SVG anatômico — frente
│   │   ├── MuscleFigureBack.tsx    # Bonequinho SVG anatômico — costas
│   │   ├── Stamp.tsx               # Marcador de treino
│   │   └── RecordCard.tsx          # Card do histórico
│   ├── screens/
│   │   ├── HomeScreen.tsx          # Histórico + navegação
│   │   ├── CameraScreen.tsx        # Captura de foto
│   │   ├── WorkoutSelectScreen.tsx # Seleção de modalidade
│   │   ├── WorkoutDetailsScreen.tsx# Mapa muscular + stats
│   │   ├── PreviewScreen.tsx       # Preview e personalização do marcador
│   │   ├── RecordDetailScreen.tsx  # Detalhe de um registro
│   │   └── StampSettingsScreen.tsx # Configurações globais do marcador
│   ├── store/
│   │   └── index.ts                # Zustand store
│   ├── db/
│   │   └── database.ts             # SQLite
│   ├── types/
│   │   └── index.ts                # Tipos TypeScript
│   ├── utils/
│   │   └── theme.ts                # Cores e constantes
│   └── navigation/
│       └── AppNavigator.tsx        # React Navigation
├── assets/                         # Ícones e splash
└── App.tsx

🎨 Paleta de Cores

Token Cor Hex
Accent Laranja #D85A30
Accent Dark Laranja escuro #993C1D
Background Preto profundo #111111
Surface Cinza escuro #1A1A1A
Elevated Cinza médio #222222
Border Cinza sutil #2A2A2A
Text Primary Branco suave #EEEEEE
Text Secondary Cinza #888888

🗺️ Fluxo de uso

Home (histórico)
└── Câmera
      └── Seleção de treino
            └── Detalhes do treino (mapa muscular + stats)
                  └── Preview + personalizar marcador
                        └── Salvar e compartilhar

📄 Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

About

📸 Fitness progress tracker with workout stamp overlay — React Native + Expo

Topics

Resources

License

Stars

Watchers

Forks

Contributors