Cougar Library is a library management application designed for both users and employees to login and interact with their library. With this application, you can search for specific library items, borrow, place on hold, and return, create and delete item instances, and send notifications to users and employees alike.
Live Website: https://cougarlibraryy.netlify.app/
Depending on your login credentials, our system can identfy whether you are a 'user', 'librarian', or 'admin' and take you to their respective pages.

Users are able to not only check out books and place devices on hold, but also return their books and remove their holds on items in our system.

Users are able to receive notifications generated automatically by our system and mark them as read.

Users and employees alike are able to browse through our library's extensive catalogue of books and devices. Employees are also able to edit existing items and add or delete new items.

Librarians can manage user holds, fines, and view reports regarding the data from their library.

Admins can add and edit librarians and users, manage the library catalogue, and edit the status of books currently in maintenance.

- Clone the repository and navigate into the repo folder
git clone git@github.com:aadibaahmed/Library_Management_System.git
cd Library_Management_System
- Setup the backend
cd server
npm install
- Setup the frontend
cd client
npm install
Create a .env file:
REACT_APP_API_URL=http://localhost:8000
Then run the app:
npm start
Library_Management_System/
├── client/
│ ├── public/
│ └── src/
├── server/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── db.js
│ └── server.js
├── README.md
└── README_images
client: frontendserver: backendREADME_images: images used in README file
public: generic index.htmlsrc: frontend components and pages likeAccount.jsx,DeleteBook.jsx, andManageLibrarians.jsx
server.js: API endpointsdatabase.js: database connection- controllers (
add_librarian.js,cancel_hold.js,borrow_book.js, etc.): receive input from routes, process data, and respond
Frontend: React
Backend: NodeJS
Database: MySQL
| Name | Github |
|---|---|
| Adiba Ahmed | @aadibaahmed |
| Maximiliano Jesse Ovalle | @maximilianovalle |
| Alan Tony-Itoyah | @atonyit |
| Josh Gulizia | @jguliz |