A comprehensive multi-user application designed to manage e-books across various sections in an online library. This system allows librarians to manage sections and e-books while enabling general users to access and request e-books. The project is built using Flask for the backend, VueJS for the frontend, SQLite for data storage, Redis for caching, and Celery for batch jobs.
1. Role-Based Access Control (RBAC)
-Librarian: Manages sections, e-books, user requests, and reviews user statistics.
-General User: Accesses and requests e-books, views sections, and provides feedback on e-books.
2. Core Functionalities
-Admin and User Login: Role-based login with a registration page.
-Librarian Dashboard: View statistics on active users, grant requests, issued e-books, etc.
-Section and e-Book Management: Librarians can create, edit, delete sections and e-books.
-Search Functionality: Users can search for e-books based on section, author, title, and other parameters.
-e-Book Requests: Users can request/return a maximum of 5 e-books at a time and leave feedback.
-Grant/Revoke e-Books: Librarians can approve or revoke user access to e-books.
3. Backend Jobs
-Daily Reminders: Automatic reminders for users with approaching return dates.
-Monthly Activity Report: Automatically generate and email a report summarizing e-book activities.
-CSV Export: Librarians can trigger the export of e-book records as a CSV file.
4. Performance Optimization
-Caching: Redis is used to cache frequently accessed data and optimize performance.
-Scheduled Jobs: Celery handles background tasks such as sending reminders and generating reports.
Backend: Flask (Python), SQLite (Database), Redis (Caching), Celery (Background Jobs)
Frontend: Vue.js, Bootstrap (for UI styling)
Other Technologies: Jinja2 (for server-side rendering of monthly report), Mailhog (for email simulation)