CampusBid is a full-stack e-auction marketplace built on the MERN stack, exclusively designed for college students. It provides a secure and dynamic environment for peer-to-peer exchanges within a trusted campus ecosystem. The platform features real-time bidding, live user-to-user chat, student verification, and a gamified badge system to create an engaging and reliable experience for buying and selling second-hand goods like books, gadgets, and furniture.
- Student & Admin Verification: Gatekeeper access ensures only verified members of a campus community can participate.
- Real-Time Bidding & Chat: Leverages WebSockets (Socket.IO) to provide instant updates on bids and allows direct communication between buyers and sellers in real-time.
- Gamified Badges: A dynamic badge system incentivizes user participation and rewards achievements like winning auctions or selling items.
- Wishlist: Users can save items they are interested in to a personal watchlist for easy tracking.
- Admin Dashboard: A comprehensive panel for administrators to manage users, view platform statistics, and resolve user-submitted reports.
| Technology | Version / Link |
|---|---|
| Node.js | ^18.0.0 |
| React | ^18.2.0 |
| Express.js | ^4.19.2 |
| Mongoose | ^8.4.1 |
| Socket.IO | ^4.7.5 |
| Bootstrap | ^5.3.3 |
| JWT | ^9.0.2 |
| Vite | ^5.2.0 |
Clone the repository:
git clone https://github.com/AAC-Open-Source-Pool/CampusBid.git
cd CampusBid
Install backend dependencies
cd backend
npm install
Install frontend dependencies
cd Client
npm install
Set up environment variables
- In the backend directory, create a new file named
.env. - Copy and paste the following into the
.envfile, replacing the placeholder values with your own:
PORT=5000
MONGO_URI="your_mongodb_connection_string_here"
JWT_SECRET="your_super_secret_jwt_key_here"
ADMIN1_EMAIL=admin1@campusbid.com
ADMIN1_PASS=AdminPass123!
ADMIN2_EMAIL=admin2@campusbid.com
ADMIN2_PASS=AdminPass456!
Run the Application
- In your first terminal (inside the backend folder), start the backend:
npm start
- Open a second terminal (inside the Client folder), start the frontend:
npm run dev
Senior Mentor: Vaishnavi
Junior Mentor: Shruthi
Team Member 1: Tanmayi Shruti
Team Member 2: Sai Chayank
Team Member 3: Navodith
Team Member 4: Keerthana Priya
- Before choosing to propose changes to this project, it is advisable to go through the
README.mdfile of the project to get the philosophy and the motive that went behind this project. The pull request should align with the philosophy and the motive of the original poster of this project. - To add your changes, make sure that the programming language in which you are proposing the changes should be the same as the programming language that has been used in the project. The versions of the programming language and the libraries (if any) used should also match with the original code.
- Write a documentation on the changes that you are proposing. The documentation should include the problems you have noticed in the code (if any), the changes you would like to propose, the reason for these changes, and sample test cases.
- Submit a pull request via Git etiquette.
- Full Payment Integration: Implement a complete escrow payment system using any paid payment API to hold and release funds upon delivery confirmation securely.
- Event Flash Auctions: Add a feature for scheduled, themed sales events using node-cron to drive urgency and engagement.
- Advanced Gamification: Expand the badge system with more complex, time-based awards like "Top Bidder of the Month."
- Full Dispute Workflow: Build out the admin panel to include a formal process for managing user disputes, including evidence uploads and resolution tracking.

