Skip to content

ydvSajal/BU_BASKET_DTI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›’ BU_Basket - Campus Marketplace

License: MIT TypeScript React Supabase Tailwind CSS

A modern, secure campus marketplace for students to buy, sell, and borrow items within their college community.

🌟 Features

πŸ” Secure Authentication

  • College email verification (@bennett.edu.in)
  • Email confirmation required for account activation
  • Secure session management with Supabase Auth

πŸ’¬ Multi-Buyer Chat System

  • 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

πŸ›οΈ Marketplace Features

  • Create and browse listings with images
  • Category-based organization
  • Price filtering and search
  • Responsive image galleries
  • Seller verification system

🎨 Modern UI/UX

  • Beautiful gradient designs with shadcn/ui components
  • Dark/light theme support
  • Mobile-responsive design
  • Smooth animations and transitions
  • Accessibility-compliant interface

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Git

Installation

# 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 dev

Visit http://localhost:8080 to see the application running.

Environment Setup

  1. Copy the environment template:
cp .env.example .env.local
  1. Configure your Supabase credentials in .env.local:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
  1. Set up Supabase database (see SUPABASE_EMAIL_SETUP.md)

πŸ—οΈ Project Structure

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

πŸ› οΈ Tech Stack

Frontend

Backend & Database

  • 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

Development & Deployment

πŸ“± Key Pages & Features

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 Commands

# 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 types

πŸš€ Deployment

GitHub Pages (Recommended)

Automatic deployment is configured via GitHub Actions:

  1. Push to main branch
  2. GitHub Actions builds and deploys automatically
  3. Site available at: https://yourusername.github.io/hostel-deal-finder/

Vercel

Deploy with Vercel

  1. Connect your GitHub repository to Vercel
  2. Set environment variables in Vercel dashboard
  3. Deploy automatically on every push

Manual Deployment

npm run build
# Upload dist/ folder to your hosting provider

🀝 Contributing

We welcome contributions! Here's how to get started:

πŸ› Bug Reports

  • Use the issue tracker
  • Include steps to reproduce
  • Provide browser/OS information

✨ Feature Requests

  • Check existing issues first
  • Describe the feature and use case
  • Consider implementation approach

πŸ”§ Development Workflow

  1. Fork the repository
git clone https://github.com/your-username/hostel-deal-finder.git
cd hostel-deal-finder
  1. Create a feature branch
git checkout -b feature/your-feature-name
  1. Make your changes
  • Follow the existing code style
  • Add tests if applicable
  • Update documentation
  1. Test your changes
npm run type-check
npm run lint
npm run build
  1. Commit and push
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name
  1. Create a Pull Request
  • Describe your changes
  • Link related issues
  • Request review

πŸ“‹ Contribution Guidelines

  • Code Style: Follow existing TypeScript/React patterns
  • Commits: Use Conventional Commits
  • Testing: Test your changes thoroughly
  • Documentation: Update README and comments as needed

🎯 Good First Issues

Look for issues labeled good first issue or help wanted:

  • UI improvements
  • Bug fixes
  • Documentation updates
  • New feature implementations

πŸ“š Documentation

All comprehensive documentation is available in the docs/ folder:

πŸ”’ Security

  • 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.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ Project Structure

β”œβ”€β”€ 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

πŸ™ Acknowledgments

πŸ“ž Support


⭐ Star this repository if you find it helpful!

Made with ❀️ for the student community

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors