This project is a Library Management System developed as a major assignment for my Python programming course. The system is designed to streamline the process of managing books, borrowers, and loans within a library environment, featuring advanced recommendation capabilities to enhance user experience.
- Book Management: Add, edit, delete, and view book details.
- User Management: Register and manage user accounts, including personal information and roles (e.g., librarian, student).
- Loan Management: Record book loans, returns, and overdue tracking.
- Statistics Dashboard: Comprehensive statistics and analytics for library operations, including book popularity, borrowing trends, etc.
- Book Search: Search for specific books by title, author, or other criteria.
- Book Browsing: View available books in the library catalog.
- Book Borrowing: Request and borrow books from the library.
- Borrowing History: Track personal borrowing history and current loans.
- Book Search: Search for specific books by title, author, or other criteria.
- Personalized Recommendations: Get book suggestions based on your borrowing history and preferences.
Collaborative Filtering Recommendation System: The system implements an intelligent recommendation engine that uses collaborative filtering based on the k-Nearest Neighbors (k-NN) algorithm with cosine similarity as the distance metric. By analyzing users' borrowing history and finding similarities between users or books, the system suggests relevant titles that align with individual reading preferences.
- Programming Language: Python v3.10.11
- Web Framework: FastAPI
- Database: PostgreSQL
- Machine Learning: scikit-learn, pandas, numpy (for recommendation system)
- Framework: React.js
- Runtime: Node.js v22.14
- Styling: CSS (with Bootstrap for basic styling)
- Clone the repository:
git clone https://github.com/hoangpc0112/library-management.git cd library-management - Navigate to the backend directory:
cd backend - Set up your virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install backend dependencies:
pip install -r requirements.txt
- Navigate to the frontend directory:
cd ../frontend - Install frontend dependencies:
npm install
- Navigate to the backend directory and activate virtual environment:
cd backend source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Start the FastAPI server:
The API will be available at
uvicorn main:app --reload
http://localhost:8000 - Access API Documentation:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
- Swagger UI:
- In a new terminal, navigate to the frontend directory:
cd frontend - Start the React development server:
The frontend will be available at
npm run dev
http://localhost:3000
- Phạm Chính Hoàng - phamchinhhoang@gmail.com
- Project Link: https://github.com/hoangpc0112/library-management