Este é um Sistema de Gestão de Voluntários desenvolvido em React Router V7 (framework mode), TypeScript, TailwindCSS e Firebase. O objetivo é ajudar líderes e voluntários a organizar e controlar as horas de trabalho.
-
Frontend:
- Feito com React + TypeScript
- Utiliza React Router V7 para navegação.
- Estilização com TailwindCSS.
-
Backend:
- Utiliza Firebase para autenticação e banco de dados em produção.
- Em desenvolvimento, usa um arquivo
db.jsonlocal para simular o banco.
-
Renderização:
- Suporte a Server-side Rendering (SSR) para melhor performance.
-
Build & Deploy:
Scripts prontos para build (npm run build) e deploy via Docker.
Primeiro, instale as dependências do projeto:
npm installPara diferentes ambientes de desenvolvimento:
# Ambiente local (utiliza o arquivo db.json como banco de dados local)
npm run dev:local
# Ambiente de staging (utiliza variáveis de ambiente definidas no arquivo .env)
npm run dev:stagingNota para usuários Windows: Se você encontrar problemas com os comandos de ambiente, utilize os comandos abaixo:
# Ambiente local npm run dev:local:win # Ambiente de staging npm run dev:staging:win
- Crie o arquivo
db.jsonna pastaapp/.server/db/. Esse arquivo não será versionado. - A aplicação estará disponível em
http://localhost:5173.
Para gerar a build de produção, execute:
npm run buildPara iniciar o servidor de produção:
npm run startPara construir e rodar a aplicação usando Docker:
docker build -t comq-app .
# Execute o container
docker run -p 3000:3000 comq-app- React (^19.1.0) - Biblioteca de interface
- React Router (^7.5.3) - Roteamento e framework
- TypeScript (^5.8.3) - Tipagem estática
- TailwindCSS (^4.1.4) - Framework CSS
- Firebase (^11.7.1) - Banco de dados e autenticação
- Firebase Admin (^13.3.0) - SDK administrativo
- Node.js - Runtime do servidor
- Vite (^6.3.3) - Bundler e dev server
- @react-router/dev - Ferramentas de desenvolvimento
- Sempre utilize tipos e interfaces para garantir segurança e clareza no código.
- Separe componentes, rotas e lógica de servidor em pastas distintas.
- Use nomes claros e descritivos para arquivos, funções e variáveis.
- Prefira classes utilitárias do TailwindCSS.
- Evite estilos inline.
- Não versionar arquivos sensíveis ou de dados locais (
db.json,.env).
Se você estiver no Windows e encontrar problemas com os scripts dev:local ou dev:staging, instale o cross-env:
npm install --save-dev cross-envDepois atualize os scripts no package.json:
{
"scripts": {
"dev:local": "cross-env ENV=local react-router dev",
"dev:staging": "cross-env ENV=staging react-router dev"
}
}Se a porta 5173 estiver ocupada, o Vite automaticamente tentará usar a próxima porta disponível.
Construído com ❤️ usando React Router e Firebase. 💻🚀👍