The Library Management System is a multi-user application designed to efficiently manage the process of issuing e-books to users. It serves both librarians and general users, allowing them to request, read, and return e-books. Librarians have additional privileges to manage sections and e-books, and to approve or revoke access to books.
- HTML
 - CSS
 - Bootstrap
 
- Flask
 
- Jinja
 
- SQLite
 
- Flask: A micro web framework for Python.
 - SQL Alchemy: A Python SQL toolkit and Object-Relational Mapping (ORM) library.
 - Flask-SQL Alchemy: An extension for Flask that adds support for SQL Alchemy.
 - Flask-RESTful: An extension for Flask that adds support for quickly building REST APIs.
 - Matplotlib: A comprehensive library for creating static, animated, and interactive visualizations in Python.
 - Seaborn: A data visualization library based on Matplotlib that provides a high-level interface for drawing attractive and informative statistical graphics.
 
- Visual Studio Code (VS Code)
 
- User Authentication: Users and librarians can log in to access the system.
 - Section Management: Librarians can add new sections with details like name, date created, and description.
 - Book Management: Librarians can add new books with attributes such as title, content, author(s), etc.
 - Book Issuing: Users can request books, and librarians can approve or reject these requests.
 - Book Return: Users can return books after reading.
 - Data Visualization: Graphical representation of data such as user roles distribution, book request status, and section-wise book count.
 - File Handling: Functionality for uploading and downloading e-books.
 - Search Options: Users can search for books.
 
- 
Clone the repository:
git clone https://github.com/Akashkunwar/Library_Management_System.git
 - 
Navigate to the project directory:
cd Library_Management_System - 
Create a virtual environment:
python3 -m venv venv
 - 
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
 - On macOS/Linux:
source venv/bin/activate 
 - On Windows:
 - 
Install the dependencies:
pip install -r requirements.txt
 - 
Set up the database:
flask db init flask db migrate -m "Initial migration." flask db upgrade - 
Run the application:
flask run
 
- Access the application in your web browser at 
http://127.0.0.1:5000. - Use the provided credentials to log in:
- Admin: 
admin/admin - Super User: 
super/user - User: 
user/user - Demo User: 
demo/user - Dummy User: 
dummy/dummy 
 - Admin: 
 - Explore the functionalities of the system such as adding sections, managing books, issuing and returning books, and visualizing data.
 
In version 2.0, we plan to introduce the following major changes:
- Frontend: Vue.js
 - Backend Enhancements: API-driven operations, Redis for caching, and Celery for batch jobs.
 
- General User Signup and Login: Using RBAC (Role-Based Access Control)
 - Mandatory Librarian Login: Using RBAC
 - Advanced Security: User and admin authentication using username or email and password with Flask Security or JWT-based Token Authentication
 
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License.
Feel free to contact me if you have any questions or suggestions. Thank you for checking out my project!

