A full-stack marketplace platform designed for university students to buy and sell goods, featuring real-time messaging.
- 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
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!
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 devAccess: Open http://localhost:5173 in your browser.
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
- 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
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 studioStart Development:
# Backend
cd backend && ./setup.sh dev
# Frontend
cd frontend && ./setup.sh devDatabase:
cd backend && npx prisma studio # View/edit databaseCommon 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# Backend
cd backend && ./setup.sh build && ./setup.sh start
# Frontend
cd frontend && ./setup.sh build && ./setup.sh preview