EN: Complete guide for Gym Owners, Managers, and Administrators to manage gym operations, staff, members, and finances.
PT: Guia completo para Proprietários de Ginásios, Gerentes e Administradores gerir operações do ginásio, staff, membros e finanças.
- Dashboard | Painel
- Member Management | Gestão de Membros
- Class Scheduling | Agendamento de Aulas
- Staff Management | Gestão de Staff
- Financial Management | Gestão Financeira
- Discipline & Rank Management | Gestão de Disciplina & Graduação
- Reports & Analytics | Relatórios & Análises
- Settings | Configurações
Your dashboard provides real-time overview of gym operations:
| Widget | Description |
|---|---|
| Today's Attendance | Members checked in today |
| Upcoming Classes | Next scheduled classes (3 hours) |
| Active Members | Total active membership count |
| Revenue This Month | Total payments received |
| Pending Actions | Tasks requiring attention (low stock, overdue payments) |
| Recent Activity | Latest check-ins, bookings, payments |
Seu painel fornece visão geral em tempo real das operações do ginásio:
| Widget | Descrição |
|---|---|
| Presença Hoje | Membros com check-in hoje |
| Próximas Aulas | Próximas aulas agendadas (3 horas) |
| Membros Ativos | Total de contagem de associação ativa |
| Receita Este Mês | Total de pagamentos recebidos |
| Ações Pendentes | Tarefas requerendo atenção (stock baixo, pagamentos atrasados) |
| Atividade Recente | Últimos check-ins, reservas, pagamentos |
- Go to Members → Add Member
- Fill in:
- Personal details (name, email, phone)
- Date of birth
- Emergency contact
- Address
- Assign membership plan
- Set initial status (Active/Pending)
- Click Create Member
Each member has complete profile with:
- Personal Info - Name, contact, address, photo
- Emergency Contact - Name and phone number
- Health Information - Conditions, allergies, blood type (secure)
- Membership - Plan, start date, expiration, status
- Family - Dependents (if family billing)
- Activity - Check-in history, class attendance
- Payments - Invoice and payment history
- Ranks - Current grades in disciplines (if applicable)
| Status | Description |
|---|---|
| Active | Member can access gym, book classes, check-in |
| Inactive | No access, membership expired or cancelled |
| Suspended | Access temporarily blocked (payment issues, conduct) |
| Pending | New member awaiting activation |
To add family members:
- Open primary member profile
- Go to Family tab
- Click Add Dependent
- Fill dependent details
- Set relationship (parent/guardian)
Dependents can check-in independently but billing is tied to primary member.
Members can request:
- Data Export - Download all their data
- Account Deletion - Anonymize and delete account
- Consent Management - Manage marketing preferences
These requests appear in Settings → Data Protection for review.
- Vá a Membros → Adicionar Membro
- Preencha:
- Detalhes pessoais (nome, email, telefone)
- Data de nascimento
- Contacto de emergência
- Endereço
- Atribua plano de associação
- Defina estado inicial (Activo/Pendente)
- Clique em Criar Membro
Cada membro tem perfil completo com:
- Informações Pessoais - Nome, contacto, endereço, foto
- Contacto de Emergência - Nome e número de telefone
- Informações de Saúde - Condições, alergias, tipo sanguíneo (seguro)
- Associação - Plano, data de início, expiração, estado
- Família - Dependentes (se facturação familiar)
- Atividade - Histórico de check-in, frequência em aulas
- Pagamentos - Histórico de facturas e pagamentos
- Graduações - Graduações actuais em disciplinas (se aplicável)
| Estado | Descrição |
|---|---|
| Activo | Membro pode aceder ao ginásio, reservar aulas, fazer check-in |
| Inactivo | Sem acesso, associação expirada ou cancelada |
| Suspenso - Acesso temporariamente bloqueado (problemas de pagamento, conduta) | |
| Pendente - Novo membro aguardando activação |
Para adicionar membros da família:
- Abra o perfil do membro principal
- Vá à aba Família
- Clique em Adicionar Dependente
- Preencha os detalhes do dependente
- Defina a relação (pai/guardião)
Dependentes podem fazer check-in independentemente mas a facturação está vinculada ao membro principal.
Membros podem solicitar:
- Exportação de Dados - Baixar todos os seus dados
- Exclusão de Conta - Anonimizar e excluir conta
- Gestão de Consentimento - Gerir preferências de marketing
Estas solicitações aparecem em Configurações → Proteção de Dados para revisão.
- Go to Classes → Add Class
- Fill in:
- Title - Class name
- Discipline - (Optional) Link to a discipline
- Workout Template - (Optional) Pre-defined workout to use
- Coach - Assign trainer/instructor
- Location - Room or training area
- Date & Time - Start and end time
- Capacity - Maximum participants
- Is Mandatory - Mark if required (belt tests, assessments)
- Click Create Class
- Go to Classes → Add Series
- Fill in:
- Title, Coach, Location, Capacity
- Start Date - First occurrence
- End Date - Last occurrence (optional)
- Recurrence - Days of week (e.g., Mon, Wed, Fri)
- Time - Start and end time
- Click Create Series
- System generates individual class instances
| Type | Description | Use Case |
|---|---|---|
| Regular | Standard group class | Daily classes, open sessions |
| Mandatory | Required attendance | Belt tests, assessments, program requirements |
| Assessment | Evaluation sessions | Skill testing, fitness assessments |
When scheduling classes with disciplines:
- Only members enrolled in that discipline can see the class
- Rank requirements are enforced
- Attendance contributes to rank progression
System automatically detects:
- Coach conflicts - Coach double-booked at same time
- Location conflicts - Room already booked
- Capacity conflicts - Overlapping classes in same location
- Open class details
- Go to Attendance tab
- See:
- Booked members
- Checked-in members
- No-show members
- Waitlist
- Vá a Aulas → Adicionar Aula
- Preencha:
- Título - Nome da aula
- Disciplina - (Opcional) Vincular a uma disciplina
- Modelo de Treino - (Opcional) Treino predefinido para usar
- Treinador - Atribuir treinador/instrutor
- Localização - Sala ou área de treino
- Data & Hora - Hora de início e fim
- Capacidade - Máximo de participantes
- É Obrigatória - Marcar se necessário (testes de faixa, avaliações)
- Clique em Criar Aula
- Vá a Aulas → Adicionar Série
- Preencha:
- Título, Treinador, Localização, Capacidade
- Data de Início - Primeira ocorrência
- Data de Fim - Última ocorrência (opcional)
- Recorrência - Dias da semana (ex: Seg, Qua, Sex)
- Hora - Hora de início e fim
- Clique em Criar Série
- Sistema gera instâncias de aula individuais
| Tipo | Descrição | Caso de Uso |
|---|---|---|
| Regular | Aula de grupo padrão | Aulas diárias, sessões abertas |
| Obrigatória - Frequência requerida | Testes de faixa, avaliações, requisitos de programa | |
| Avaliação - Sessões de avaliação | Teste de habilidades, avaliações de fitness |
Ao agendar aulas com disciplinas:
- Apenas membros inscritos nessa disciplina podem ver a aula
- Requisitos de graduação são aplicados
- Frequência contribui para progressão de graduação
Sistema detecta automaticamente:
- Conflitos de Treinador - Treinador com reserva dupla no mesmo horário
- Conflitos de Localização - Sala já reservada
- Conflitos de Capacidade - Aulas sobrepostas na mesma localização
- Abra os detalhes da aula
- Vá à aba Presença
- Veja:
- Membros reservados
- Membros com check-in
- Membros que não apareceram
- Lista de espera
- Go to Staff → Add Staff
- Fill in:
- Personal details
- Role (Coach, Trainer, Receptionist, etc.)
- Assigned gym (if multi-gym organization)
- Click Create Staff
For coaches/trainers/instructors:
- Open staff member profile
- Go to Disciplines tab
- Add disciplines they're qualified to teach
- Mark as Certified if they have formal certification
- Add certification date and notes
Track staff certifications with expiry dates:
- Open staff profile
- Go to Certifications tab
- Add:
- Certification name
- Issuing organization
- Issue date
- Expiry date (if applicable)
- System alerts when certifications are expiring
- Open staff profile
- Go to Availability tab
- Set:
- Working days
- Available hours
- Use this information when scheduling classes
- Go to Staff → Absences
- Staff can request or admin can create absence
- Fill in:
- Staff member
- Start and end date
- Reason (vacation, sick, training)
- Status (pending/approved/rejected)
- Approve or reject requests
- Vá a Staff → Adicionar Staff
- Preencha:
- Detalhes pessoais
- Função (Treinador, Recepcionista, etc.)
- Ginásio atribuído (se organização multi-ginásio)
- Clique em Criar Staff
Para treinadores/instrutores:
- Abra o perfil do membro do staff
- Vá à aba Disciplinas
- Adicione as disciplinas que estão qualificados a ensinar
- Marque como Certificado se tiverem certificação formal
- Adicione data de certificação e notas
Rastreie certificações de staff com datas de expiração:
- Abra o perfil do staff
- Vá à aba Certificações
- Adicione:
- Nome da certificação
- Organização emissora
- Data de emissão
- Data de expiração (se aplicável)
- Sistema alerta quando certificações estão expirando
- Abra o perfil do staff
- Vá à aba Disponibilidade
- Defina:
- Dias de trabalho
- Horários disponíveis
- Use esta informação ao agendar aulas
- Vá a Staff → Ausências
- O staff pode solicitar ou admin pode criar ausência
- Preencha:
- Membro do staff
- Data de início e fim
- Motivo (férias, doença, treinamento)
- Estado (pendente/aprovado/rejeitado)
- Aprove ou rejeite solicitações
Create and manage membership plans:
- Go to Settings → Membership Plans
- Click Add Plan
- Configure:
- Plan name
- Price
- Duration (days)
- Description
- Click Save
- Go to Payments → New Payment
- Fill in:
- Member
- Amount
- Payment method (Multicaixa, cash, bank transfer, other)
- Reference number (for Multicaixa)
- Description
- Click Process Payment
Invoices are auto-generated when payments are processed, or you can create manually:
- Go to Payments → Invoices
- Click Create Invoice
- Add line items (membership, products, services)
- Assign to member
- Set due date
- Click Generate
Create promotional discounts:
- Go to Settings → Discounts
- Click Add Discount
- Configure:
- Code name
- Discount type (percentage/fixed)
- Discount value
- Max uses (optional)
- Valid date range
- Is active
- Click Save
- Go to Finance → Bank Reconciliation
- Import bank statement (CSV)
- System auto-matches payments
- Review unmatched items
- Confirm reconciliation
Crie e gerie planos de associação:
- Vá a Configurações → Planos de Associação
- Clique em Adicionar Plano
- Configure:
- Nome do plano
- Preço
- Duração (dias)
- Descrição
- Clique em Salvar
- Vá a Pagamentos → Novo Pagamento
- Preencha:
- Membro
- Valor
- Método de pagamento (Multicaixa, dinheiro, transferência bancária, outros)
- Número de referência (para Multicaixa)
- Descrição
- Clique em Processar Pagamento
Facturas são geradas automaticamente quando pagamentos são processados, ou você pode criar manualmente:
- Vá a Pagamentos → Facturas
- Clique em Criar Fatura
- Adicione itens de linha (associação, produtos, serviços)
- Atribua ao membro
- Defina data de vencimento
- Clique em Gerar
Crie descontos promocionais:
- Vá a Configurações → Descontos
- Clique em Adicionar Desconto
- Configure:
- Nome do código
- Tipo de desconto (percentual/fixo)
- Valor do desconto
- Máximo de usos (opcional)
- Período de validade
- Está activo
- Clique em Salvar
- Vá a Finanças → Reconciliação Bancária
- Importe extrato bancário (CSV)
- Sistema corresponde automaticamente pagamentos
- Revise itens não correspondidos
- Confirme reconciliação
- Go to Disciplines → Add Discipline
- Fill in:
- Discipline name (e.g., BJJ, Yoga)
- Category
- Description
- Has belt/rank system? (Yes/No)
- Click Save
For disciplines with ranks:
- Open discipline details
- Go to Ranks tab
- Add ranks:
- Rank name (e.g., White Belt)
- Level (1-7)
- Color (for UI display)
- Requirements (time in grade, skills needed)
- Criteria (JSON - assessment rubric)
- Click Save
- Open member profile
- Go to Ranks tab
- Add:
- Discipline
- Current rank
- Date awarded
- Notes
- Click Save
When a member passes assessment:
- Go to Ranks → Promote Member
- Select member and discipline
- Choose new rank
- Enter promotion details (date, notes)
- Certificate is auto-generated
- Member receives notification
Warning: This will deactivate ALL related content (classes, workouts, exercises).
- Go to Disciplines
- Select discipline
- Click Deactivate
- Confirm deactivation
- All classes, workout templates, and exercises are hidden from members
- Vá a Disciplinas → Adicionar Disciplina
- Preencha:
- Nome da disciplina (ex: BJJ, Yoga)
- Categoria
- Descrição
- Tem sistema de faixa/graduação? (Sim/Não)
- Clique em Salvar
Para disciplinas com graduações:
- Abra os detalhes da disciplina
- Vá à aba Graduações
- Adicione graduações:
- Nome da graduação (ex: Faixa Branca)
- Nível (1-7)
- Cor (para exibição na UI)
- Requisitos (tempo na graduação, habilidades necessárias)
- Critérios (JSON - rubrica de avaliação)
- Clique em Salvar
- Abra o perfil do membro
- Vá à aba Graduações
- Adicione:
- Disciplina
- Graduação atual
- Data atribuída
- Notas
- Clique em Salvar
Quando um membro passar na avaliação:
- Vá a Graduações → Promover Membro
- Selecione membro e disciplina
- Escolha nova graduação
- Insira detalhes da promoção (data, notas)
- Certificado é gerado automaticamente
- Membro recebe notificação
Aviso: Isso desactivará TODO o conteúdo relacionado (aulas, treinos, exercícios).
- Vá a Disciplinas
- Seleccione disciplina
- Clique em Desactivar
- Confirme a desactivação
- Todas as aulas, modelos de treino e exercícios ficam ocultos para membros
| Report | Description | Export |
|---|---|---|
| Attendance Report | Check-ins by date/member | CSV, PDF |
| Class Attendance | Attendance per class | CSV, PDF |
| Revenue Report | Payments by period | CSV, PDF |
| Member Report | Active members, new signups | CSV, PDF |
| Payment Aging | Outstanding invoices | CSV, PDF |
| Inventory Report | Stock levels, low stock | CSV, PDF |
| Rank Progress | Member progression | CSV, PDF |
- Go to Reports
- Select report type
- Set date range and filters
- Click Generate
- Review results
- Click Export to download
| Relatório | Descrição | Exportação |
|---|---|---|
| Relatório de Presença | Check-ins por data/membro | CSV, PDF |
| Presença em Aulas | Frequência por aula | CSV, PDF |
| Relatório de Receitas | Pagamentos por período | CSV, PDF |
| Relatório de Membros | Membros activos, novos registos | CSV, PDF |
| Envelhecimento de Pagamentos - Facturas pendentes | CSV, PDF | |
| Relatório de Inventário | Níveis de stock, stock baixo | CSV, PDF |
| Progresso de Graduação - Progresso de membros | CSV, PDF |
- Vá a Relatórios
- Seleccione tipo de relatório
- Defina intervalo de datas e filtros
- Clique em Gerar
- Revise resultados
- Clique em Exportar para baixar
- Go to Settings → Gym Profile
- Edit:
- Gym name
- Address
- Contact information
- Logo
- Operating hours
- Click Save
Configure accepted payment methods:
- Go to Settings → Payment Methods
- Enable/disable:
- Multicaixa
- Cash
- Bank Transfer
- Other
- Configure Multicaixa settings if used
Manage training areas:
- Go to Settings → Locations
- Add locations:
- Name
- Capacity
- Equipment available
- Floor/room number
- Set active/inactive
Create reusable class templates:
- Go to Settings → Class Types
- Add class type:
- Name
- Default duration
- Default capacity
- Color for calendar
- Click Save
- Vá a Configurações → Perfil do Ginásio
- Edite:
- Nome do ginásio
- Endereço
- Informações de contacto
- Logótipo
- Horário de funcionamento
- Clique em Salvar
Configure métodos de pagamento aceites:
- Vá a Configurações → Métodos de Pagamento
- Active/desactive:
- Multicaixa
- Dinheiro
- Transferência Bancária
- Outros
- Configure definições Multicaixa se usado
Gerir áreas de treino:
- Vá a Configurações → Localizações
- Adicione localizações:
- Nome
- Capacidade
- Equipamento disponível
- Número de andar/sala
- Defina activo/inactivo
Crie modelos de aula reutilizáveis:
- Vá a Configurações → Tipos de Aulas
- Adicione tipo de aula:
- Nome
- Duração padrão
- Capacidade padrão
- Cor para calendário
- Clique em Salvar
Q: What happens to classes when I deactivate a discipline? A: All classes, workout templates, and exercises linked to that discipline become inactive. Existing bookings are preserved but members cannot book new classes. Reactivating the discipline requires manual reactivation of content.
Q: Can I schedule mandatory classes for specific members only? A: No, mandatory classes are shown to all members enrolled in that discipline. Use regular classes and communicate requirements separately.
Q: How do I handle payments when a member is suspended? A: Suspended members cannot check-in or book classes. You can still record payments if they pay to reactivate their account.
Q: What's the difference between a workout template and a gym workout? A: Workout templates are reusable plans stored centrally. Gym workouts are instances assigned to specific members. Use templates to ensure consistency.
Q: How do I backup my data? A: Go to Settings → Data Export to download full gym data. Supabase also provides automated backups.
P: O que acontece com as aulas quando eu desactivo uma disciplina? R: Todas as aulas, modelos de treino e exercícios vinculados a essa disciplina tornam-se inactivos. Reservas existentes são preservadas mas membros não podem reservar novas aulas. Reactivar a disciplina requer reactivação manual do conteúdo.
P: Posso agendar aulas obrigatórias apenas para membros específicos? R: Não, aulas obrigatórias são mostradas a todos os membros inscritos nessa disciplina. Use aulas regulares e comunique requisitos separadamente.
P: Como lido com pagamentos quando um membro está suspenso? R: Membros suspensos não podem fazer check-in ou reservar aulas. Você ainda pode registrar pagamentos se pagarem para reactivar a sua conta.
P: Qual é a diferença entre um modelo de treino e um treino de ginásio? R: Modelos de treino são planos reutilizáveis armazenados centralmente. Treinos de ginásio são instâncias atribuídas a membros específicos. Use modelos para garantir consistência.
P: Como faço backup dos meus dados? R: Vá a Configurações → Exportação de Dados para baixar dados completos do ginásio. O Supabase também fornece backups automatizados.
- GitHub Issues: https://github.com/clrogon/nzila-gym-manager/issues
- Documentation: README.md