Your Campus Marketplace. Sell your legacy, find your loot.
 
 

- Overview
- Core Features
- User Roles & Journeys
- Platform Enhancements
- Tech Stack
- Folder Structure
- Getting Started
- Contributing
- Project Roadmap
- Contact & Acknowledgments
UniLoot is a hyper-local, college-exclusive e-commerce platform built for seamless, secure, and affordable student-to-student selling. Graduating seniors can list used items (books, electronics, furniture, etc.), and juniors can find campus essentials either at a fixed price or by placing bids in auctions. The platform fosters trust via college email verification and reputation/rating mechanisms.
- Dual Product Listings
- Fixed Price ("Buy Now"): Set by seller; juniors can purchase instantly.
- Auction (Negotiable): 48-hour bidding, minimum increment βΉ100, seller can accept highest bid early.
 
- User Authentication
- Register/login with secure password protocol.
- Mandatory college email verification for access.
 
- Seller Dashboard
- Create, edit, manage listings, track bids, finalize sales.
 
- Buyer Experience
- Browse, filter, search; add fixed-price items to cart or bid in auctions.
- View and manage cart, bidding history.
 
- Integrated Payments
- Secure payment flow using Razorpay/Stripe, with platform commission if applicable.
 
- Shopping Cart
- Multi-item management and purchase.
 
- Onboards with college email.
- Lists products for sale, chooses fixed or auction format.
- Tracks and manages active listings and bids.
- Can accept a bid or let the auction finish.
- Receives funds when sale is confirmed.
- Registers with college email.
- Searches, browses, and filters all listings.
- Adds fixed-price items to cart and makes instant purchases.
- Places bids on auction items, receives live outbid notifications.
- Pays for items and arranges pickup with seller.
- User Profiles: Rate and review system builds trust for future transactions.
- Direct Messaging: Secure in-app chat for questions, logistics, and negotiation.
- Advanced Categories & Search: Find items by type, price, or sale type.
- Escrow System: Funds released only after buyers confirm item receipt.
- Notification System: Real-time email/app alerts for outbidding, sales, auction results, and more.
- Wishlist: Buyers can save and revisit interesting listings.
- Admin Dashboard: Site management, dispute resolution, and analytics.
| Layer | Technology Suggestion | 
|---|---|
| Frontend | React.js (w/ Next.js SSR), or Vue.js | 
| Backend | Node.js (Express.js), or Python (Django) | 
| Database | PostgreSQL (preferred) or MongoDB | 
| Real-time | Socket.IO or WebSockets (for bids & chat) | 
| Payments | Razorpay or Stripe (API-integrated) | 
| Nodemailer, SendGrid, or similar | |
| Deployment | Docker, Vercel/Netlify for frontend, VPS/cloud | 
UniLoot/
βββ .github/                 # GitHub specific configurations
β   βββ workflows/           # CI/CD workflows
β   βββ ISSUE_TEMPLATE/      # Issue templates
β   βββ Contributor_Guide/   # Contribution guidelines
βββ frontend/                # Frontend application (to be created)
βββ backend/                 # Backend application (to be created)
βββ docs/                    # Documentation (to be created)
βββ CODE_OF_CONDUCT.md       # Code of conduct
βββ README.md                # This file
βββ package.json             # Node.js dependencies
- Node.js (v20 or higher)
- npm or yarn
- Git
- 
Clone the repository git clone https://github.com/OPCODE-Open-Spring-Fest/UniLoot.git cd UniLoot
- 
Install dependencies npm install 
- 
Set up commit hooks npm run prepare 
Make sure your commit messages are clear and descriptive.
# Example commit messages
git commit -m "Add user authentication feature"
git commit -m "Fix payment gateway issue"
git commit -m "Update README with setup instructions"- Validates that pull requests have required labels before merging
- Required labels (one from each group):
- Type: Type:Easy,Type:Medium, orType:Hard
- Semver: Semver:major,Semver:minor, orSemver:patch
- Status: PR:Accept
 
- Type: 
- Runs on: Pull request opened, edited, synchronized, reopened, labeled, or unlabeled events
All checks must pass before a pull request can be merged.
We welcome contributions from the community! π
Please read our Contributing Guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes with clear and descriptive commit messages
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
Make sure to:
- Follow the Code of Conduct
- Write clear and descriptive commit messages
- Add appropriate labels to your PR (Type, Semver, and PR:Accept)
- Ensure all GitHub Actions checks pass
- Update documentation as needed
- Repository setup
- CI/CD pipeline configuration
- Database schema design
- API architecture planning
- User authentication system
- Product listing functionality
- Bidding system implementation
- Payment gateway integration
- Real-time notifications
- In-app messaging
- User rating and review system
- Admin dashboard
- Beta testing
- Bug fixes and optimization
- Documentation completion
- Production deployment
This project is maintained by the OPCODE community at IIIT Bhagalpur.
- Thanks to all contributors who help make UniLoot better!
- Built as part of the Open Spring Fest initiative
- Special thanks to the open-source community
- π§ Email: opcode@iiitbh.ac.in
- π Website: OPCODE IIIT Bhagalpur
- π¬ Join our community discussions