A modern, secure campus marketplace for students to buy, sell, and borrow items within their college community.
- College email verification (@bennett.edu.in)
- Email confirmation required for account activation
- Secure session management with Supabase Auth
- Real-time messaging between buyers and sellers
- Multiple buyers can chat independently with the same seller
- Isolated conversation threads for privacy
- Unread message notifications and badges
- Conversation management inbox
- Create and browse listings with images
- Category-based organization
- Price filtering and search
- Responsive image galleries
- Seller verification system
- Beautiful gradient designs with shadcn/ui components
- Dark/light theme support
- Mobile-responsive design
- Smooth animations and transitions
- Accessibility-compliant interface
- Node.js 18+ and npm
- Git
# Clone the repository
git clone https://github.com/ydvSajal/hostel-deal-finder.git
cd hostel-deal-finder
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:8080 to see the application running.
- Copy the environment template:
cp .env.example .env.local- Configure your Supabase credentials in
.env.local:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Set up Supabase database (see SUPABASE_EMAIL_SETUP.md)
src/
βββ components/ # Reusable UI components
β βββ layout/ # Navigation, footer, etc.
β βββ sections/ # Page sections
β βββ ui/ # shadcn/ui components
βββ hooks/ # Custom React hooks
βββ integrations/ # Third-party integrations
β βββ supabase/ # Supabase client and types
βββ lib/ # Utility functions
βββ pages/ # Application pages/routes
βββ App.tsx # Main application component
supabase/
βββ migrations/ # Database migrations
βββ config.toml # Supabase configuration
- React 18 - Modern React with hooks and concurrent features
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful, accessible component library
- React Router - Client-side routing
- React Hook Form - Performant forms with validation
- TanStack Query - Data fetching and caching
- Lucide React - Beautiful icons
- Supabase - Backend-as-a-Service
- PostgreSQL database with Row Level Security
- Real-time subscriptions for chat
- Authentication and user management
- File storage for images
- Supabase Auth - Email verification and session management
- ESLint - Code linting
- TypeScript ESLint - TypeScript-specific linting
- GitHub Actions - CI/CD pipelines
- Vercel / GitHub Pages - Deployment options
| Route | Description | Features |
|---|---|---|
/ |
Homepage | Hero section, features overview, authentication status |
/listings |
Browse marketplace | View all listings, search, filter, chat buttons |
/sell |
Create listing | Upload images, set price, add description |
/chat |
Individual chat | Real-time messaging, auto-scroll, timestamps |
/conversations |
Chat inbox | Manage all conversations, unread counts |
/login |
Authentication | Email verification, secure login/signup |
/test-chat |
Testing | Verify multi-buyer chat functionality |
# Development
npm run dev # Start dev server
npm run build # Build for production
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run type-check # TypeScript type checking
# Database
npx supabase start # Start local Supabase
npx supabase db reset # Reset database
npx supabase gen types # Generate TypeScript typesAutomatic deployment is configured via GitHub Actions:
- Push to
mainbranch - GitHub Actions builds and deploys automatically
- Site available at:
https://yourusername.github.io/hostel-deal-finder/
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on every push
npm run build
# Upload dist/ folder to your hosting providerWe welcome contributions! Here's how to get started:
- Use the issue tracker
- Include steps to reproduce
- Provide browser/OS information
- Check existing issues first
- Describe the feature and use case
- Consider implementation approach
- Fork the repository
git clone https://github.com/your-username/hostel-deal-finder.git
cd hostel-deal-finder- Create a feature branch
git checkout -b feature/your-feature-name- Make your changes
- Follow the existing code style
- Add tests if applicable
- Update documentation
- Test your changes
npm run type-check
npm run lint
npm run build- Commit and push
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name- Create a Pull Request
- Describe your changes
- Link related issues
- Request review
- Code Style: Follow existing TypeScript/React patterns
- Commits: Use Conventional Commits
- Testing: Test your changes thoroughly
- Documentation: Update README and comments as needed
Look for issues labeled good first issue or help wanted:
- UI improvements
- Bug fixes
- Documentation updates
- New feature implementations
All comprehensive documentation is available in the docs/ folder:
- Complete Documentation Index - Full documentation overview
- Chat Functionality - Multi-buyer chat system details
- Supabase Setup - Database and email configuration
- Contributing Guide - Development workflow and guidelines
- Security Policy - Security guidelines and reporting
- Code of Conduct - Community standards
- Email Verification: Required for all accounts
- Row Level Security: Database-level access control
- Input Validation: Client and server-side validation
- Authentication: Secure session management
Report security issues privately to the maintainers.
This project is licensed under the MIT License - see the LICENSE file for details.
βββ docs/ # π Complete documentation
β βββ README.md # Project overview
β βββ CONTRIBUTING.md # Contribution guidelines
β βββ SECURITY.md # Security policy
β βββ ... # More documentation
βββ src/ # π» Source code
βββ supabase/ # ποΈ Database migrations
βββ .github/ # π§ GitHub workflows & templates
βββ ... # Configuration files
- shadcn/ui for the beautiful component library
- Supabase for the backend infrastructure
- Lucide for the icon set
- Tailwind CSS for the styling system
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Contact the maintainers
β Star this repository if you find it helpful!
Made with β€οΈ for the student community