A Plataforma Ameciclo é uma aplicação web full-stack que centraliza e visualiza dados abertos sobre mobilidade ativa na Região Metropolitana do Recife. Desenvolvida com tecnologias modernas, oferece ferramentas interativas para estudantes, jornalistas, pesquisadores, cicloativistas e cidadãos interessados em uma cidade mais humana, democrática e sustentável.
- 📊 Observatórios Especializados: Ideciclo, Sinistros Fatais, Vias Inseguras, SAMU, CicloDados
- 🗺️ Visualizações Interativas: Mapas (Mapbox), gráficos (Highcharts), tabelas dinâmicas
- 📈 Contagens de Ciclistas: Dados históricos com análises comparativas
- 📚 Biciclopédia: FAQ sobre mobilidade ativa
- 📁 Documentos Públicos: Acesso a relatórios e estudos
- 🎨 Acessibilidade: Controles WCAG (tamanho de fonte, alto contraste, dark mode)
- Remix 2.16 - Framework full-stack com SSR
- React 18.2 - Biblioteca UI
- TypeScript 5.1 - Tipagem estática
- Vite 5.1 - Build tool
- Tailwind CSS 3.4 - Framework CSS utility-first
- Framer Motion - Animações
- Lucide React - Ícones
- Highcharts - Gráficos interativos
- Mapbox GL - Mapas interativos
- FullCalendar - Calendário de eventos
- TanStack Query - Cache e sincronização
- React Context API - Estado global
IMPORTANTE: Certifique-se de ter as versões corretas instaladas antes de prosseguir.
# 1. Clone o repositório
git clone https://github.com/Ameciclo/ameciclo.git
cd ameciclo
# 2. Instale as dependências
npm install
# 3. Configure as variáveis de ambiente (opcional)
cp .env.example .env
# Edite o arquivo .env com suas credenciais
# 4. Inicie o servidor de desenvolvimento
npm run devO projeto estará disponível em: http://localhost:5173
npm run dev # Inicia servidor de desenvolvimento
npm run build # Gera build de produção
npm start # Inicia servidor de produção
npm run lint # Verifica qualidade do código
npm run typecheck # Verifica tipos TypeScriptameciclo/
├── app/
│ ├── components/ # 182+ componentes React
│ │ ├── Commom/ # Componentes globais
│ │ ├── CicloDados/ # Plataforma colaborativa
│ │ ├── ViasInseguras/ # Análise de vias
│ │ └── ...
│ ├── routes/ # 27 rotas (file-based routing)
│ ├── loader/ # Loaders para SSR
│ ├── services/ # Lógica de negócio e APIs
│ ├── contexts/ # React Context
│ ├── hooks/ # Custom hooks
│ └── utils/ # Utilitários
├── public/ # Assets estáticos
├── docs/ # Documentação de APIs
└── package.json
Crie um arquivo .env na raiz do projeto:
# APIs Externas
API_GARFO_URL=http://api.garfo.ameciclo.org
CMS_BASE_URL=http://do.strapi.ameciclo.org
# Mapbox (obtenha em https://mapbox.com)
MAPBOX_ACCESS_TOKEN=pk.seu_token_aqui
# Google Calendar
GOOGLE_CALENDAR_API_KEY=sua_chave_aqui
# Analytics
GOOGLE_ANALYTICS_ID=G-PQNS7S7FD3
# Ambiente
NODE_ENV=developmentAcesse a documentação completa em: ameciclo.org/documentacao
A documentação inclui:
- Visão geral da arquitetura
- Estrutura detalhada do projeto
- Guia de componentes
- Rotas e APIs
- Boas práticas de desenvolvimento
- Configurações e deploy
- Solução de problemas
Contribuições são bem-vindas! Siga os passos:
-
Clone o repositório
git clone https://github.com/Ameciclo/ameciclo.git cd ameciclo -
Crie uma branch
git checkout -b feature/minha-funcionalidade
-
Desenvolva e teste
npm install npm run dev npm run lint npm run typecheck
-
Commit e push
git add . git commit -m "feat: adiciona nova funcionalidade" git push origin feature/minha-funcionalidade
-
Abra um Pull Request no GitHub
- Use Conventional Commits:
feat:,fix:,docs:,style:,refactor: - Sempre tipifique com TypeScript
- Siga os padrões de estilo do ESLint
- Componentes em PascalCase, arquivos de serviço em camelCase
rm -rf node_modules package-lock.json
npm installlsof -ti:5173 | xargs kill -9Configure MAPBOX_ACCESS_TOKEN no arquivo .env
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Ameciclo - Associação Metropolitana de Ciclistas do Recife
- 🌐 Website: ameciclo.org
- 📧 Email: contato@ameciclo.org
- 📱 Instagram: @ameciclo
