Transforme seu suor em conquistas. Um aplicativo de apostas em desafios fitness em grupo, focado em gamificação, saúde e engajamento social.
O PushOn não é apenas um rastreador de exercícios. É uma plataforma onde a disciplina é recompensada. A ideia central é que usuários possam criar ou entrar em grupos de desafios (ex: "10k passos por dia durante 30 dias"), onde há um sistema de apostas e recompensas.
Quem cumpre os objetivos ganha; quem falha ajuda a impulsionar o prêmio dos vencedores. O objetivo é usar o incentivo financeiro ou social para combater o sedentarismo.
Entre em competições de curto e longo prazo com amigos ou desconhecidos. Crie seus próprios desafios personalizados ou participe de desafios já existentes na comunidade.
Coloque "stakes" em seus objetivos para aumentar o comprometimento. Quanto maior a aposta, maior o compromisso com o sucesso.
Ganhe prêmios, badges ou créditos ao completar as metas do grupo. O sistema de recompensas motiva a continuação de hábitos saudáveis.
Acompanhe quem está liderando o desafio no leaderboard integrado. Visualize seu progresso em relação aos outros participantes.
Validação de atividades para garantir a transparência das apostas. Registre suas atividades com foto ou dados de saúde sincronizados.
- Frontend: React Native / Expo
- Estado Global: React Context API
- Autenticação: Autenticação customizada (AuthContext)
- Armazenamento de Mídia: Cloudinary
- Geolocalização: Serviço de Geolocalização integrado
- API: Backend customizado
Este frontend consome uma API customizada para o funcionamento completo das funcionalidades de apostas e desafios. A arquitetura separada entre frontend e backend garante:
- Segurança: Regras de apostas e dados sensíveis ficam protegidos no servidor
- Performance: Processamento pesado de rankings é realizado no backend
- Escalabilidade: A mesma API pode alimentar múltiplas plataformas (Web, Android, iOS)
Para mais informações sobre a API, consulte o repositório do App.Fitness Backend
FrontAppFitness/
├── assets/ # Recursos estáticos
│ ├── fontes/ # Fontes personalizadas
│ ├── icon/ # Ícones da aplicação
│ └── imagens/ # Imagens e mídia
├── components/ # Componentes reutilizáveis
├── pages/ # Telas da aplicação
├── navigation/ # Configuração de navegação
├── services/ # Serviços (API, Cloudinary, etc)
├── src/ # Código adicional (contextos, serviços)
├── styles/ # Temas e estilos globais
├── utils/ # Utilitários diversos
├── App.js # Componente principal
├── index.js # Ponto de entrada
├── app.json # Configuração do Expo
├── tsconfig.json # Configuração TypeScript
└── package.json # Dependências do projeto
- Node.js >= 14.x
- npm ou yarn
- Expo CLI:
npm install -g expo-cli
- Clone o repositório:
git clone https://github.com/seu-usuario/FrontAppFitness.git
cd FrontAppFitness- Instale as dependências:
npm install
# ou
yarn install- Inicie o projeto:
npm start
# ou
yarn start- Abra em seu dispositivo:
- Escanear o QR code com o aplicativo Expo Go
- Ou utilizar um emulador Android/iOS
| Tela | Descrição |
|---|---|
| LoginScreen | Autenticação de usuários |
| SignUpScreen | Registro de novos usuários (fluxo em 4 etapas) |
| HomeScreen | Dashboard principal com desafios ativos |
| CriarDesafio | Criação de novos desafios |
| MeusDesafios | Gerenciamento de desafios do usuário |
| DetalhesDesafios | Visualização de detalhes do desafio |
| EncontrarGruposScreen | Descoberta de grupos e desafios |
| CriarGrupoScreen | Criação de grupos personalizados |
| GroupDetailsScreen | Detalhes e informações do grupo |
| Ranking | Leaderboard em tempo real |
| Perfil | Perfil do usuário logado |
| PerfilVisitante | Visualização de perfis de outros usuários |
| Notificacao | Centro de notificações |
| CheckInFlow | Fluxo de validação de atividades |
- Button, CustomButton: Componentes de botão reutilizáveis
- Modal, ModalConfirm, ModalFeedback: Modais para confirmações e feedback
- Header, BottomNav: Navegação e header padrão
- ProgressBar: Exibição de progresso
- TimelineList, TimelineItem: Visualização de cronograma
- DesafioCard, InfoCard, StatsCard: Cards de informação
- SelectorWheel, WheelSelector: Seletores personalizados
- BackgroundDefault, BackgroundWelcome: Componentes de background
- NotificationBell: Badge de notificações
O projeto utiliza um contexto de autenticação (AuthContext) para gerenciar o estado de login e dados do usuário. Localize em: src/context/AuthContext.js
Comunicação com o backend: services/api.js
Gerenciamento de uploads de mídia: services/cloudinaryService.js
Serviço de localização integrado: services/geolocationService.js
O projeto utiliza um sistema de tema centralizado em styles/theme.js para manter consistência visual em toda a aplicação.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Encontrou um problema? Abra uma issue no repositório e descreva seu problema com o máximo de detalhe possível.