Empower your college clubs/societies with precision and ease – revolutionize your inventory management effortlessly!
The Club Inventory Management System is a comprehensive solution designed to streamline and optimize the management of resources within college clubs and societies. This intuitive system provides a user-friendly interface for club coordinators and members to efficiently handle club inventories, track item borrowings, and manage overall club logistics. By seamlessly integrating with databases, the system ensures accurate and real-time updates, enhancing the overall organizational efficiency of college clubs. From dynamic inventory displays to secure user authentication, the Club Inventory Management System offers a robust platform tailored to meet the diverse needs of club administrators and members alike.
- The application is developed for two types of users
- Students
- Club/Society Coordinators of College
- The application employs a secure user authentication mechanism using a combination of username and hashed passwords.
- During the sign-up process, the user's password undergoes one-way hashing using the bcrypt algorithm before being stored in the database.
- This ensures that sensitive user credentials are not stored in plaintext, adding a layer of security to protect user accounts.
- Users can choose a club from the dynamically populated list on the webpage.
- The displayed club options are updated in real-time based on the latest information from the SQL table.
- The inventory dynamically displays items fetched from the backend, showcasing their available quantities.
- Users have the flexibility to set the desired quantity for each item before adding them to their selection.
- Added items can be easily removed with the
Remove Item
button for a seamless customization experience.- Once users finalize their selections, they can proceed to the borrow cart by clicking the "Borrow" button.
- The selected items, along with their respective quantities, are conveniently displayed for review on this page.
- It is mandatory for users to enter a return date before proceeding with the borrowing process.
- Upon confirming the borrow action, the item data is updated in the user's document within a MongoDB collection.
- Simultaneously, an email containing details such as the student's name, institute ID, and the borrowed items is sent to the corresponding club's email address.
- Users can choose a club from a dynamic dropdown menu populated with available clubs.
- Detailed information about previously borrowed items from the selected club is fetched and displayed.
- Users can efficiently select individual items or use
Return All
for a bulk return.- Upon confirmation, the system updates the database and sends an informative return email to the club.
- Coordinators can sign in to their respective clubs using a unique code.
- This unique code is predefined in the backend SQL table.
- This serves as the club dashboard, offering options to view the borrower's list, add inventory, modify club profile, and edit the inventory list.
- This page displays the list of all current club inventories.
- Users can edit the quantity of items, reflecting backend updates.
- Additionally, inventories can be deleted here, removing them from both the frontend and backend.
- This page presents a list of borrowers who have borrowed items from the specific club, with data fetched from the MongoDB backend.
- By clicking on the
Item List
, users can view all the items borrowed by the respective student.
- Clicking on
Add Inventory
opens a pop-up where users can input new items along with quantities, updating the backend data.- The system does not accept items that are already present in the inventory list.
- Clicking on
Change Profile
opens a pop-up where users can input club description, club profile image, and club email ID for receiving mails.- Users only need to fill the fields they want to change.
- Clicking
Update
will update the club profile in the backend.
-
Clubs
: This table is designed for the purpose to store clubs profile information.Description
:club_id
varchar(10) PRIMARY KEYclub
varchar(100)Info
varchar(2000)Img_link
varchar(255)email
varchar(500)unique_id
varchar(100)
-
Items
: This table is designed for the purpose to store all the items with a item id.Description
:item_id
varchar(50) PRIMARY KEYitem
varchar(500)club_id
varchar(10) FOREIGN KEY REFERENCE fromClubs(club_id)
quantity
int
-
Student
: This table is designed for the purpose to store all the student information.Description
:username
varchar(50) PRIMARY KEYname
varchar(100)password
varchar(100)Institute_id
varchar(50)
{
"_id": {
"$oid": ""
},
"username": "",
"name": "",
"institute_id": "",
"club_info": [
{
"club_id": "",
"club": "",
"borrow_status": "",
"items": [
{
"name": "",
"quantity": ,
"return_date": ""
}
]
},
{
"club_id": "",
"club": "",
"borrow_status": "",
"items": [
{
"name": "",
"quantity": ,
"return_date": ""
}
]
},
]
}
-
_id
: The unique identifier for the document in the MongoDB collection, automatically generated. -
username
: The username associated with the user (e.g., "as"). -
name
: The name of the user (e.g., "Ashu"). -
institute_id
: The institute ID of the user (e.g., "B21AI007"). -
club_info
: An array containing information about the user's involvement in different clubs.For each
club_info
object within the array:-
club_id
: The unique identifier for the club. -
club
: The name of the club (e.g., "Robotics Society"). -
borrow_status
: Indicates whether the user has borrowed items from the club ("Yes" or empty for no borrowing). -
items
: An array containing details about the items borrowed by the user from the club.For each
items
object within the array:name
: The name of the borrowed item (e.g., "Temperature sensor").quantity
: The quantity of the borrowed item.return_date
: The date by which the borrowed item is expected to be returned.
-
Instructions on how to set up and run your project locally. Include prerequisites and installation steps.
- Atleast have sql and mongoDB installed in local and if its on cloud then well and good.
Clone the repository and get into the directory havong the project files.
go mod download
go build
go run .