Skip to content

A multi-user app for managing e-books across sections in an online library. Built with Flask for backend, Vue.js for UI, and SQLite for data storage. Librarians manage sections and e-books, while users can access and request them. Features include role-based access,search, Celery based automated reminders, and Redis-powered performance optimization

Notifications You must be signed in to change notification settings

ghanashyam-r/LibraryManagement

Repository files navigation

Library Management System

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.

Features

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.

Application Stack

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)

Screenshots

Landing Page

Library · 6 10pm · 09-16

User Dashboard

Library

Search Functionality

Library · 5 29pm · 09-16

Borrowed Books

Library · 5 29pm · 09-16 (1)

Admin Dashboard

Library · 5 21pm · 09-16

Sections CRUD

Library · 5 21pm · 09-16 (1)

E-Books CRUD

Library · 5 22pm · 09-16

Monthly report via email client

MailHog

Mailhog interface with the Celery Tasks executed

MailHog · 5 24pm · 09-16

About

A multi-user app for managing e-books across sections in an online library. Built with Flask for backend, Vue.js for UI, and SQLite for data storage. Librarians manage sections and e-books, while users can access and request them. Features include role-based access,search, Celery based automated reminders, and Redis-powered performance optimization

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published