Este é o backend de um sistema simples de gerenciamento de biblioteca desenvolvido com Node.js e Express.js. Os dados são armazenados em memória (sem uso de banco de dados), ideal para fins educacionais ou projetos iniciais.
- Node.js
- Express.js
- dotenv – Armazenamento de variáveis sensíveis
- uuid – Geração de identificadores únicos
- bcrypt – Criptografia de senhas
📁 src/
├── controllers/ # Lógica de negócio
├── authController.js
├── booksController.js
├── loansController.js
├── errors
├── HttpError.js
├── middleware/ # Middlewares customizados
├── authMiddleware.js
├── errorMiddleware.js
├── routes/ # Definição de rotas
├── auth.js
├── api.js
├── models # Modelos de dados
├── booksModel.js
├── loansModel.js
├── userModel.js
└── server.js # Ponto de entrada da aplicação
-
Clone o repositório
git clone https://github.com/JorgeCasalini/Library-system.git cd Library-system -
Instale as dependências
npm install
-
Configure as variáveis de ambiente
PORT=3000 JWT_KEY = ...
-
Inicie a aplicação
npm start
O servidor estará rodando em http://localhost:3000
- As senhas dos usuários são armazenadas utilizando hashes com
bcrypt. - Dados sensíveis (como a porta do servidor) são carregados através do arquivo
.envcomdotenv. - Cada entidade possui um ID único gerado com
uuid, garantindo unicidade sem depender de banco de dados.
- 📚 CRUD de livros
- 👤 CRUD de usuários (com senha criptografada)
- 🔄 Registro de empréstimos e devoluções
- 🔎 Filtros e busca em memória
- Persistência em banco de dados (MongoDB ou PostgreSQL)
- Implementação de autenticação com JWT
- Validação de dados (ex: com Joi)
- Testes automatizados com Jest
- Documentação com Swagger
Este projeto está sob a licença MIT.