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