Sistema educacional completo para aprendizado e prática de Quality Assurance (QA)
O Hub de Leitura é um sistema de gestão de biblioteca desenvolvido especificamente para ensinar e praticar Quality Assurance. Cada funcionalidade representa cenários reais que profissionais de QA encontram no dia a dia.
- ✅ Aprenda testando - Sistema real com cenários complexos
- ✅ API REST completa - Todos os tipos de endpoint
- ✅ Diferentes perfis - Usuário comum vs Administrador
- ✅ Autenticação JWT - Sistema de login profissional
- ✅ Cenários de erro - Como sistemas falham na prática
- ✅ Documentação Swagger - API bem documentada
- ✅ Interface moderna - Frontend para testes E2E
- Registro e login de usuários
- Autenticação JWT com expiração
- Perfis diferenciados (Usuário/Admin)
- Atualização de perfil
- Listagem com filtros e busca
- CRUD completo (Admin)
- Controle de estoque
- Upload de capas
- Categorização
- Reserva de livros disponíveis
- Controle de prazos
- Gestão de retiradas e devoluções
- Histórico completo
- Alertas de atraso
- Dashboard com estatísticas
- Gestão de todas as reservas
- Controle de usuários
- Relatórios e exportações
- Logs do sistema
- Node.js - Runtime JavaScript
- Express.js - Framework web
- SQLite - Banco de dados leve
- JWT - Autenticação
- Bcrypt - Criptografia de senhas
- Joi - Validação de dados
- Swagger - Documentação da API
- HTML5/CSS3 - Estrutura e estilo
- Bootstrap 5 - Framework CSS
- JavaScript ES6+ - Interatividade
- Font Awesome - Ícones
- Chart.js - Gráficos (futuro)
- Node.js 18+ instalado
- Git instalado
- Editor de código (Visual Studio Code recomendado)
git clone https://github.com/fabioaraujoqa/hub-de-leitura.git
cd hub-de-leitura
npm install
npm start
- Sistema: http://localhost:3000
- API Docs: http://localhost:3000/api-docs
- Admin: http://localhost:3000/admin-dashboard.html
- Email: admin@biblioteca.com
- Senha: admin123
- Permissões: Acesso total ao sistema
- Email: usuario@teste.com
- Senha: user123
- Permissões: Reservas e consultas
# Login
curl -X POST http://localhost:3000/api/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@biblioteca.com","password":"admin123"}'
# Listar livros (com token)
curl -X GET http://localhost:3000/api/books \
-H "Authorization: Bearer SEU_TOKEN_AQUI"
- Importe a coleção do Swagger: http://localhost:3000/api-docs
- Configure o token JWT no cabeçalho Authorization
- Teste todos os endpoints disponíveis
- Fork o repositório
- Crie cenários de teste adicionais
- Adicione novos endpoints para prática
- Documente bugs intencionais para os alunos encontrarem
- Envie um Pull Request
- Reporte bugs encontrados (é parte do aprendizado!)
- Sugira melhorias na documentação
- Compartilhe casos de teste interessantes
- Contribua com exemplos de automação
# Pare o servidor "CTRL + C" e delete o arquivo do banco
rm database/biblioteca.db
ou apague manualmente entrando na pasta.
# Rode o comando para recriar o banco
npm run db
# Reinicie o servidor para recriar as tabelas
npm start
# Encontrar processo usando a porta
lsof -ti:3000
# Finalizar processo
kill -9 PID_DO_PROCESSO
- Faça login novamente para obter um novo token
- Tokens expiram em 1 hora por padrão
- Delete o arquivo
database/biblioteca.db
- Rode o comando
npm run db
para recriar o banco
- ✅ Uso educacional e acadêmico
- ✅ Modificação para fins didáticos
- ✅ Distribuição para alunos
- ✅ Criação de cursos baseados no projeto
- ❌ Uso comercial direto
- ❌ Venda do código
- ❌ Redistribuição sem créditos
Desenvolvido com ❤️ para a comunidade de Quality Assurance.
Contribuidores:
- Fábio Araújo
"A qualidade nunca é um acidente; ela é sempre o resultado de um esforço inteligente." - John Ruskin