Sua vez, sem perder tempo
Plataforma digital de gestão de filas físicas em Angola. Simples, rápida e com baixo consumo de dados.
Kuilu é um sistema que permite:
- Usuários entrar em filas virtuais via web/mobile
- Estabelecimentos gerenciar chamadas e atendimentos
- Visualizar posição e tempo estimado de espera
- Funcionar offline com suporte PWA
- Java 21 com Spring Boot 3.2.1
- Spring WebFlux (reativo)
- PostgreSQL com R2DBC
- JWT para autenticação stateless
- OpenAPI/Swagger para documentação
- Next.js 14+ com TypeScript
- Tailwind CSS para estilo
- PWA para mobile
- Mobile-first design
git clone https://github.com/Helio-206/Kuilu.git
cd Kuilunpm installIsso instalará concurrently no root e preparará o projeto.
docker-compose up -dAcesse o Adminer em: http://localhost:8081
- Servidor: postgres
- Usuário: postgres
- Senha: postgres
- Database: kuilu_db
npm run devIsso iniciará:
- Backend: http://localhost:8080/api
- Frontend: http://localhost:3000
npm run install:allKuilu/
├── backend/ # Spring Boot WebFlux API
│ ├── pom.xml
│ └── src/main/java/ao/kuilu/
├── frontend/ # Next.js PWA
│ ├── package.json
│ └── app/
├── docs/ # Documentação
├── docker-compose.yml # PostgreSQL + Adminer
├── package.json # Root scripts
└── README.md
# Desenvolvimento (Frontend + Backend)
npm run dev
# Apenas Backend
npm run dev:backend
# Apenas Frontend
npm run dev:frontend
# Build tudo
npm run build
# Build Backend
npm run build:backend
# Build Frontend
npm run build:frontendA API usa JWT com dois roles:
- ADMIN: Pode criar filas e chamar próximo
- CLIENTE: Pode entrar em fila e ver posição
Endpoint de login:
POST /api/auth/login
{
"usuarioId": "550e8400-e29b-41d4-a716-446655440000",
"role": "CLIENTE"
}| Método | Endpoint | Permissão |
|---|---|---|
| POST | /filas |
ADMIN |
| GET | /filas/{id} |
Público |
| POST | /filas/{id}/entrar |
CLIENTE |
| POST | /filas/{id}/chamar-proximo |
ADMIN |
| GET | /filas/{id}/posicao/{usuarioId} |
CLIENTE |
NEXT_PUBLIC_API_URL=http://localhost:8080/apiDATABASE_URL=r2dbc:postgresql://localhost:5432/kuilu_db
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
JWT_SECRET=seu-secret-aqui
JWT_EXPIRATION=86400000cd backend
mvn testcd frontend
npm testdocker-compose up -ddocker-compose downdocker-compose logs -f postgres- Sistema de notificações em tempo real (WebSocket)
- Mobile app nativa (React Native)
- Analytics e relatórios
- Integração com pagamento
- Multi-idioma
- Autenticação com SMS
Contribuições são bem-vindas! Por favor:
- Fork o projeto
- Crie sua feature branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
- GitHub: Helio-206
- Projeto: https://github.com/Helio-206/Kuilu
Kuilu - Sua vez, sem perder tempo