Projeto acadêmico que transforma atividade física em uma moeda virtual chamada Capiba.
Stack principal
- Frontend: Vite + React
- Backend: Node.js + Express
- Banco: PostgreSQL
- Pré-requisitos
- Estrutura do projeto
- Configuração do banco de dados
- Variáveis de ambiente
- Como rodar
- Scripts disponíveis
- Testes
- Fluxo de desenvolvimento
- Informações adicionais
- Licença
Instale as ferramentas abaixo antes de rodar o projeto:
| Ferramenta | Versão recomendada | Para que serve |
|---|---|---|
| Node.js | v18+ | Executar frontend e backend |
| npm ou Yarn | — | Gerenciar dependências |
| PostgreSQL | 14+ | Banco de dados |
| dotenv | — | Carregar variáveis de ambiente (no backend) |
| Thunder Client / Postman | — | Testar rotas do backend |
Exemplo da árvore de diretórios (resumida):
CAPIBAFIT-devsoft/
├── src/
│ ├── backend/
│ │ ├── api/ # Rotas Express (/activities, /users, /challenges…)
│ │ ├── services/ # Reward Engine, Queue, WelcomeBonus, etc.
│ │ ├── database/ # Conexão PostgreSQL + scripts SQL
│ │ ├── integrations/ # Mock de APIs externas
│ │ ├── server.js # Servidor Express (porta 3001)
│ │ └── .env # Credenciais locais (não comitar)
│ └── frontend/
│ ├── src/ # Código React
│ └── services/ # Comunicação com backend
├── docs/
│ └── database/
│ └── create_tables.sql # Script de criação de tabelas
├── tests/ # Testes unitários (Jest)
├── package.json
└── README.md
- Criar o banco local (executar no psql ou cliente equivalente):
CREATE DATABASE capibafit;- Conectar no banco:
\c capibafit- Executar o script de criação de tabelas (na raiz do projeto):
psql -U postgres -d capibafit -f docs/database/create_tables.sqlO script cria, entre outras, as tabelas principais users e transactions.
Crie o arquivo src/backend/.env com as credenciais locais (NÃO comitar o arquivo):
DB_USER=postgres
DB_PASSWORD=SUA_SENHA
DB_HOST=localhost
DB_PORT=5432
DB_NAME=capibafit
PORT_BACKEND=3001Adapte os nomes conforme o código do backend (ex.: PORT_BACKEND ou PORT).
- Instalar dependências (na raiz do repositório):
npm install- Rodar o backend:
npm run start:backend
# Backend padrão: http://localhost:3001- Rodar o frontend:
npm run start:frontend
# Frontend (Vite) padrão: http://localhost:5173Se os scripts estiverem definidos em package.json, os comandos acima iniciam os serviços.
| Comando | Descrição |
|---|---|
npm start |
Inicia o frontend (se configurado) |
npm run start:frontend |
Inicia apenas o frontend |
npm run start:backend |
Inicia o backend (Express) |
npm test |
Executa os testes (Jest) |
Verifique package.json para confirmar os comandos exatos.
Executar todos os testes:
npm testSe houver erro indicando dependências faltando para Jest, execute npm install novamente.
- Criar uma branch para a tarefa:
git checkout -b feature/sprintX-taskY- Fazer alterações em
src/backend/api/para rotas esrc/backend/services/para regras de negócio. - Testar rotas localmente com Thunder Client ou Postman.
- Commit → Push → Abrir Merge Request/PR para
main.
As regras de negócio (streaks, bônus, motor de crédito, cálculos e validações) estão em src/backend/services.
Planejamentos e funcionalidades futuras (exemplos): HU7 Metas, HU8 Gamificação, HU9 Recompensa por tipo de atividade.
Alterações de esquema do banco devem ser refletidas nas migrations e no docs/database/create_tables.sql.
PROJETO EDUCACIONAL — Equipe 10 - DESENVOLVIMENTO DE SOFTWARE 2025.2 CIn-UFPE