Skip to content

msantt/PUSHON-FrontEnd

Repository files navigation

PushOn 🏅💰

Transforme seu suor em conquistas. Um aplicativo de apostas em desafios fitness em grupo, focado em gamificação, saúde e engajamento social.

Sobre o Projeto

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.

Funcionalidades Principais

Desafios em Grupo

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.

Sistema de Apostas (Social Betting)

Coloque "stakes" em seus objetivos para aumentar o comprometimento. Quanto maior a aposta, maior o compromisso com o sucesso.

Recompensas

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.

Ranking em Tempo Real

Acompanhe quem está liderando o desafio no leaderboard integrado. Visualize seu progresso em relação aos outros participantes.

Check-in de Treino

Validação de atividades para garantir a transparência das apostas. Registre suas atividades com foto ou dados de saúde sincronizados.

Stack Tecnológico

  • 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

Conexão com o Backend

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

Estrutura do Projeto

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

Como Começar

Pré-requisitos

  • Node.js >= 14.x
  • npm ou yarn
  • Expo CLI: npm install -g expo-cli

Instalação

  1. Clone o repositório:
git clone https://github.com/seu-usuario/FrontAppFitness.git
cd FrontAppFitness
  1. Instale as dependências:
npm install
# ou
yarn install
  1. Inicie o projeto:
npm start
# ou
yarn start
  1. Abra em seu dispositivo:
    • Escanear o QR code com o aplicativo Expo Go
    • Ou utilizar um emulador Android/iOS

Principais Telas

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

Principais Componentes

  • 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

Autenticação

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

Serviços

API

Comunicação com o backend: services/api.js

Cloudinary

Gerenciamento de uploads de mídia: services/cloudinaryService.js

Geolocalização

Serviço de localização integrado: services/geolocationService.js

Tema e Estilos

O projeto utiliza um sistema de tema centralizado em styles/theme.js para manter consistência visual em toda a aplicação.

Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Suporte

Encontrou um problema? Abra uma issue no repositório e descreva seu problema com o máximo de detalhe possível.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors