SIBI is an administrative system developed for the complete management of a virtual library. The goal is to provide ease, security, and practicality in the daily operations of library management.
SIBI offers a wide range of functionalities to simplify and optimize library management:
- Complete Authentication: User registration, access control, and permission management.
- Complete Library Management: Book registration, loan control, and user management.
- Book Registration: Register new books with detailed information such as title, author, genre, stock quantity, and description, with data validations to ensure integrity.
- Equipment Registration: Add equipment with specific details (model, serial number, quantity) and validations to avoid duplicates.
- Equipment Booking: A booking system that controls availability, validates quantity to prevent exceeding available stock, and allows new bookings only after the equipment is returned.
- Book Loans: Loan management, with stock control and automatic updates when loans are made and returned.
- Loan and Booking Control: Monitoring of all active transactions, with a history of checkouts and returns, and overdue notifications.
- User Management: User registration and authentication, with permission levels and activity history for tracking transactions.
- Advanced Security: Access policies to protect sensitive data.
- Metrics Analysis: Recording performance metrics for system analysis and optimization.
To run the project locally, follow these steps:
-
Clone the Repository: Use the following command:
git clone https://github.com/kaykeeb3/sibi-api-2024.git
-
Navigate to the Server:
cd apps/server
-
Copy the configuration file with connection data and environment variables:
cp .env.example .env
-
Run PostgreSQL service via Docker (if you don't have PostgreSQL installed on your computer):
docker-compose up -d
-
Run Prisma Migrations:
npx prisma migrate dev
-
Start the HTTP server:
npm run dev
- Node.js (REST)
- Prisma
- PostgreSQL
- TypeScript
We are excited to have you interested in contributing to our project. To facilitate interaction, we would like to highlight a few important points:
Use the discussions tab to share ideas and suggestions for the project.
If you encounter issues or want to suggest new tasks, use the issues tab.
If you wish to contribute with code, fork the repository and submit a pull request after making your changes.
Tip π‘: Don't be afraid to make a Pull Request; use this opportunity to receive constructive feedback.