A modern, full-stack library management system featuring a premium UI, robust tracking capabilities, and a comprehensive set of management tools for both librarians and students.
Aurevia is designed to streamline library operations through an intuitive interface and powerful backend automation. It provides real-time analytics, automated email notifications (OTP), and a secure multi-role authentication system.
- Framework: React.js (Vite)
- Styling: Tailwind CSS
- State Management: React Context API
- Charts/Analytics: Chart.js & react-chartjs-2
- Icons: Lucide React & React Icons
- Transitions/Animations: Custom CSS Animations & Tailwind Transitions
- HTTP Client: Axios
- Runtime: Node.js
- Framework: Express.js
- ORM: Sequelize
- Database: MySQL
- Authentication: JSON Web Tokens (JWT) & Bcrypt for password hashing
- Mail Service: Nodemailer (OTP & Notifications)
- Dashboard: Real-time stats on total users, book inventory, availability, and borrowing trends.
- Inventory Management: Comprehensive CRUD operations for library books, including archiving functionality.
- Membership Management: Oversight of registered users, role assignments, and system access.
- Borrowing Records: Track active borrows, return statuses, and historical library usage.
- Book Discovery: Browse available books in the library with category filtering.
- Personal Dashboard: View active borrows and personal library activity.
- Secure Access: Profile management and secure logout.
- OTP Verification: Email-based One-Time Password for secure signup.
- Password Recovery: Secure forgot password flow with email verification.
- Rate Limiting: Protection against brute-force attacks on sensitive endpoints.
- Session Management: JWT-based stateless authentication.
- Responsive Design: Fully optimized for Desktop, Tablet, and Mobile views.
- Node.js installed
- MySQL Database running
git clone <repository-url>
cd Aurevia-Library-Management-SystemInstall dependencies for the root, client, and server:
# Root
npm install
# Client
cd client && npm install
# Server
cd ../server && npm installCreate a .env.local file in the server directory and configure the following:
# DATABASE CONFIGURATION
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=library_db
# SERVER CONFIGURATION
PORT=8000
JWT_SECRET=your_jwt_secret
# EMAIL CONFIGURATION (Nodemailer)
MAIL_USER=your_email@gmail.com
MAIL_PASS=your_app_passwordFrom the root directory, run:
npm run dev- Server will run on
http://localhost:8000 - Client will run on
http://localhost:5173(standard Vite port)
Built with ❤️ for ITEC 116 SYSTEM INTEGRATION