Um gerador inteligente de sequências de passos de forró desenvolvido com Next.js, React e PostgreSQL.
O projeto permite criar sequências aleatórias de passos de forró, alternando entre perna direita e esquerda para dar idéias de variações.
- ForroZim - Gerador de Sequências de Passos de Forró
O ForroZim é uma aplicação web que ajuda dançarinos de forró a praticar e aprender novos passos.
O sistema gera sequências inteligentes de passos, garantindo uma alternância natural entre perna direita e esquerda, proporcionando uma experiência de dança mais fluida e realista.
- Sequência Inteligente: Algoritmo que alterna automaticamente entre passos de perna direita e esquerda
- Base de Dados Rica: Mais de 30 passos diferentes de forró categorizados por perna de início
- Interface Intuitiva: Interface limpa e responsiva para fácil uso
- Configurável: Possibilidade de ajustar o tamanho da sequência (2-50 passos)
- Geração de sequências aleatórias de passos de forró
- Alternância inteligente entre perna direita e esquerda
- Visualização clara dos passos com indicação da perna de início
- Configuração personalizada do tamanho da sequência
- Sistema de repetição que evita passos duplicados na mesma sequência
- Interface responsiva e moderna
- Next.js 15.5.4 - Framework React para aplicações web
- React 19.2.0 - Biblioteca para interfaces de usuário
- JavaScript ES6+ - Linguagem de programação
- Next.js API Routes - API serverless integrada
- PostgreSQL 16.0 - Banco de dados relacional
- node-pg-migrate - Sistema de migrações de banco
- Docker Compose - Containerização do banco de dados
- ESLint - Linting de código JavaScript
- Prettier - Formatação de código
- Jest - Framework de testes
- Husky - Git hooks para qualidade de código
- Commitlint - Padronização de commits
Antes de começar, certifique-se de ter instalado:
- Node.js (versão 18 ou superior)
- npm ou yarn
- Docker e Docker Compose
-
Clone o repositório
git clone https://github.com/atalhox/forrozim.git cd forrozim -
Instale as dependências
npm install
-
Configure as variáveis de ambiente
cp .env.example .env.development
Configure as seguintes variáveis no arquivo
.env.development:POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_USER=seu_usuario POSTGRES_DB=seu_db POSTGRES_PASSWORD=seu_password DATABASE_URL=postgresql://seu_usuario:sua_senha@localhost:5432/seu_db
O projeto utiliza PostgreSQL com Docker. O banco de dados será configurado automaticamente quando você executar o comando de desenvolvimento.
O projeto inclui migrações automáticas que:
- Criam a tabela
passoscom os campos necessários - Populam o banco com mais de 30 passos de forró diferentes
-
Inicie o ambiente de desenvolvimento
npm run dev
-
Acesse a aplicação Abra seu navegador e acesse:
http://localhost:3000/gerador -
Gere sua sequência
- Ajuste o tamanho da sequência (1-50 passos)
- Clique em "Gerar Sequência de Forró"
- Aproveite sua sequência personalizada!
Parâmetros:
tamanho(opcional): Número de passos na sequência (2-50, padrão: 2)tipo(opcional): Tipo de resposta (sequenciaoutodos, padrão:sequencia)
Exemplos:
# Gerar sequência de 15 passos
GET /api/v1/passos?tamanho=15&tipo=sequencia
# Listar todos os passos disponíveis
GET /api/v1/passos?tipo=todosResposta de Sucesso:
{
"mensagem": "Sequência inteligente de 15 passos gerada com sucesso!",
"total": 30,
"sequencia_tamanho": 15,
"tipo_resposta": "sequencia",
"dados": [
{
"id": 1,
"nome": "Basicão Direita",
"perna_inicio": "direita",
"total_pisadas": 3,
"created_at": "2024-01-15T10:30:00.000Z"
},
{
"id": 2,
"nome": "Balancinho Esquerda",
"perna_inicio": "esquerda",
"total_pisadas": 3,
"created_at": "2024-01-15T10:30:00.000Z"
}
]
}forrozim/
├── src/
│ ├── lib/
│ │ ├── compose.yaml # Configuração Docker para PostgreSQL
│ │ ├── db.js # Configuração do banco de dados
│ │ ├── wait-for-db.js # Script para aguardar banco estar pronto
│ │ └── migrations/ # Migrações do banco de dados
│ │ ├── 1759968632716_create-passos.js
│ │ └── 1759969610116_populate-passos-forro.js
│ └── pages/
│ ├── api/
│ │ ├── teste.js # Endpoint de teste
│ │ └── v1/
│ │ └── passos/
│ │ └── index.js # API principal dos passos
│ └── gerador.jsx # Página principal do gerador
├── coverage/ # Relatórios de cobertura de testes
├── package.json # Dependências e scripts
├── next.config.mjs # Configuração do Next.js
├── eslint.config.mjs # Configuração do ESLint
├── jest.config.js # Configuração do Jest
└── README.md # Este arquivo
# Desenvolvimento
npm run dev # Inicia o servidor de desenvolvimento
# Banco de Dados
npm run services:up # Inicia o PostgreSQL via Docker
npm run services:stop # Para o PostgreSQL
npm run services:down # Remove o container do PostgreSQL
# Migrações
npm run migrations:create # Cria nova migração
npm run migrations:up # Executa migrações pendentes
# Qualidade de Código
npm run lint # Executa ESLint
npm run lint:eslint:check # Verifica problemas de lint
npm run lint:prettier:check # Verifica formatação
npm run lint:prettier:fix # Corrige formatação automaticamente
npm run format # Formata o código com Prettier
# Testes
npm run test # Executa testes
npm run test:watch # Executa testes em modo watch
# Produção
npm run build # Build para produção
npm run start # Inicia servidor de produçãoContribuições são sempre bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
O projeto utiliza o padrão Conventional Commits:
feat: adiciona nova funcionalidade
fix: corrige bug
docs: atualiza documentação
style: mudanças de formatação
refactor: refatoração de código
test: adiciona ou modifica testes
chore: tarefas de manutenção
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido por atalhox
Aproveite seu forró!