Skip to content

kylechang133/BearBazaar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐻 BearBazaar

A full-stack marketplace platform designed for university students to buy and sell goods, featuring real-time messaging.

✨ Features

  • Marketplace: Create, browse, and search listings with images and location
  • Real-Time Chat: Direct messaging between buyers and sellers via WebSocket
  • User Profiles: Secure authentication with customizable profiles and image uploads
  • Modern UI: Responsive design built with React 19, TailwindCSS, and Radix UI

🛠️ Tech Stack

Frontend: React 19, Vite, TailwindCSS, Radix UI, React Router
Backend: Node.js, Express, Prisma, SQLite, WebSocket, JWT, bcrypt

💡 Pro Tip: This project includes convenient setup scripts (./setup.sh) for easy development and deployment. Use them for the best experience!

🚀 Quick Start

Prerequisites: Node.js (v16+), npm (v7+)

Setup & Run:

# Backend
cd backend && ./setup.sh setup && ./setup.sh dev

# Frontend (new terminal)
cd frontend && ./setup.sh setup && ./setup.sh dev

Access: Open http://localhost:5173 in your browser.

📁 Project Structure

BearBazaar/
├── backend/              # Express API + WebSocket server
│   ├── prisma/          # Database schema
│   ├── src/
│   │   ├── controllers/ # Request handlers
│   │   ├── routes/      # API endpoints
│   │   ├── services/    # Business logic
│   │   ├── middleware/  # Auth middleware
│   │   └── utils/       # Utility functions
│   ├── uploads/         # User uploaded files
│   └── setup.sh         # Backend setup script
├── frontend/            # React application
│   ├── src/
│   │   ├── components/  # UI components
│   │   ├── pages/       # Page components
│   │   ├── contexts/    # React contexts
│   │   ├── hooks/       # Custom hooks
│   │   └── backend/     # API client
│   ├── public/          # Static assets
│   └── setup.sh         # Frontend setup script
└── README.md

🔌 Key API Endpoints

  • Auth: /auth/signup, /auth/login, /auth/logout
  • Listings: /listings (GET, POST), /listings/:id (GET, PUT, DELETE)
  • Chat: /chat/conversations, /chat/messages
  • User: /user/profile, /upload/image

💾 Database

The app uses Prisma ORM with SQLite. Main models:

  • User - Authentication and profiles
  • Listing - Marketplace items
  • Conversation - Chat threads
  • Message - Chat messages

View/edit database:

cd backend
npx prisma studio

🧪 Development

Start Development:

# Backend
cd backend && ./setup.sh dev

# Frontend
cd frontend && ./setup.sh dev

Database:

cd backend && npx prisma studio  # View/edit database

🛠️ Setup Scripts

Common Commands:

# Backend
./setup.sh setup    # Full setup
./setup.sh dev      # Start dev server
./setup.sh clean    # Clean environment
./setup.sh help     # Show all commands

# Frontend  
./setup.sh setup    # Full setup
./setup.sh dev      # Start dev server
./setup.sh build    # Build for production
./setup.sh help     # Show all commands

🏗️ Production

# Backend
cd backend && ./setup.sh build && ./setup.sh start

# Frontend
cd frontend && ./setup.sh build && ./setup.sh preview

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.6%
  • Other 0.4%