Sistema de gestão de escalas e músicas para ministérios de louvor. Gerencie escalas, membros, repertório e muito mais de forma simples e organizada.
- 📅 Gestão de Escalas: Crie e gerencie escalas de culto com facilidade
- 👥 Gestão de Membros: Organize sua equipe e suas funções
- 🎶 Catálogo de Músicas: Mantenha um repertório completo com tom, artista e links
- 🔐 Autenticação: Sistema de login seguro com roles (admin/membro)
- 🌓 Dark Mode: Interface com suporte a tema claro e escuro
- 📱 Responsivo: Funciona perfeitamente em desktop, tablet e mobile
- ⚡ Performance: Construído com as melhores práticas de React e TypeScript
Este projeto utiliza as seguintes tecnologias:
- React 18 - Biblioteca JavaScript para construção de interfaces
- TypeScript - Tipagem estática para JavaScript
- Vite - Build tool e dev server extremamente rápido
- Tailwind CSS - Framework CSS utility-first
- shadcn/ui - Componentes UI construídos com Radix UI
- Supabase - Backend como serviço (autenticação e banco de dados)
- React Router - Roteamento para aplicações React
- React Query - Gerenciamento de estado do servidor
- React Hook Form - Formulários performáticos
- Zod - Validação de schemas TypeScript-first
- date-fns - Manipulação de datas
- Lucide React - Ícones modernos e leves
Antes de começar, você precisa ter instalado:
- Node.js 18+ (instalar com nvm)
- npm ou yarn ou bun
- Uma conta no Supabase (para banco de dados e autenticação)
-
Clone o repositório
git clone <URL_DO_REPOSITORIO> cd harmonic
-
Instale as dependências
npm install # ou yarn install # ou bun install
-
Configure as variáveis de ambiente
Crie um arquivo
.envna raiz do projeto:VITE_SUPABASE_URL=https://seu-projeto.supabase.co VITE_SUPABASE_PUBLISHABLE_KEY=sua-chave-anon-public
Nota: Você pode obter essas credenciais no dashboard do Supabase em Settings > API
-
Configure o banco de dados
Execute as migrations do Supabase na pasta
supabase/migrations/:# Se você tem Supabase CLI instalado supabase db push # Ou execute manualmente no SQL Editor do Supabase
-
Inicie o servidor de desenvolvimento
npm run dev # ou yarn dev # ou bun dev
A aplicação estará disponível em
http://localhost:8080
harmonic/
├── public/ # Arquivos estáticos
├── src/
│ ├── components/ # Componentes React
│ │ ├── layout/ # Componentes de layout
│ │ └── ui/ # Componentes UI (shadcn)
│ ├── hooks/ # Custom hooks
│ ├── integrations/ # Integrações (Supabase)
│ ├── lib/ # Utilitários
│ ├── pages/ # Páginas da aplicação
│ ├── App.tsx # Componente principal
│ └── main.tsx # Entry point
├── supabase/
│ └── migrations/ # Migrations do banco de dados
├── .env # Variáveis de ambiente (não commitado)
└── package.json
npm run dev- Inicia o servidor de desenvolvimentonpm run build- Cria build de produçãonpm run build:dev- Cria build em modo desenvolvimentonpm run preview- Preview do build de produçãonpm run lint- Executa o linter
O sistema possui dois tipos de usuários:
- Admin: Acesso total ao sistema (criar/editar/deletar escalas, membros e músicas)
- Membro: Visualiza apenas suas escalas e informações pessoais
O projeto usa Supabase (PostgreSQL) com as seguintes tabelas principais:
profiles- Perfis de usuáriosuser_roles- Roles dos usuáriosescalas- Escalas de cultoescala_membros- Membros em cada escalaescala_musicas- Músicas de cada escalamusicas- Catálogo de músicasmembros_funcoes- Funções dos membros
- Conecte seu repositório ao Vercel
- Configure as variáveis de ambiente:
VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEY
- Deploy automático a cada push
- Conecte seu repositório ao Netlify
- Configure as variáveis de ambiente
- Build command:
npm run build - Publish directory:
dist
O projeto gera arquivos estáticos na pasta dist/ após o build, podendo ser hospedado em qualquer serviço de hospedagem estática.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
Este projeto é privado e de uso pessoal.
Desenvolvido com ❤️ para servir a igreja
Harmonic - Gerencie escalas, músicas e sua equipe de forma simples e organizada.