Campus++ is a comprehensive marketplace platform designed specifically for university students. It enables students to buy, sell, and trade items within their university community or across multiple universities. The platform facilitates safe and convenient transactions between students with features like in-app messaging, meetup scheduling, and bidding.
- University-focused Marketplace: Buy and sell items specifically targeted to university students
- User Authentication: Secure login and registration system for students with university email verification
- Listings Management: Create, edit, and manage listings with multiple images and detailed descriptions
- Profile System: Personalized user profiles showcasing listings and student information
- Categories: Browse items by categories like Textbooks, Electronics, Furniture, Tutoring, and more
- Location-based Meetups: Schedule and manage in-person meetups with interactive map selection
- Bidding System: Enable bidding on items for negotiable pricing
- Responsive Design: Works seamlessly on mobile, tablet, and desktop devices
- Real-time Chat: Integrated messaging system for communication between buyers and sellers
- Framework: Next.js 15 with React 19
- Type Safety: TypeScript
- Styling: TailwindCSS with Shadcn UI components
- Form Handling: React Hook Form with Zod validation
- UI Libraries: Lucide React icons, Radix UI primitives
- Mapping: Leaflet/React Leaflet for location services
- Runtime: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT for secure authentication
- Storage: Cloud storage for images and files
- API: RESTful API architecture
- Deployment: Vercel for serverless functions
- Separate Node.js server for real-time chat functionality
campusmarket/
├── client/ # Frontend Next.js application
│ ├── app/ # Next.js app router
│ ├── components/ # Reusable UI components
│ ├── lib/ # Utility functions and hooks
│ ├── public/ # Static assets
│ └── styles/ # Global styles
├── server/ # Backend Express.js API
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Express middleware
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── utils/ # Helper functions
└── chat-server/ # WebSocket server for real-time chat
- Node.js 20.x or higher
- MongoDB instance (local or Atlas)
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/yourusername/campusmarket.git
cd campusmarket- Install dependencies for client and server:
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install
# Install chat server dependencies
cd ../chat-server
npm install- Set up environment variables:
- Create
.env.localin the client directory - Create
.envin the server and chat-server directories - Add necessary environment variables (see
.env.examplefiles)
- Start development servers:
# Start client (from client directory)
npm run dev
# Start server (from server directory)
npm run dev
# Start chat server (from chat-server directory)
npm run devPOST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/verify-email/:token- Verify user email
GET /api/listings- Get all listingsGET /api/listings/:id- Get specific listingPOST /api/listings- Create new listingPUT /api/listings/:id- Update listingDELETE /api/listings/:id- Delete listing
GET /api/users/:id- Get user profilePUT /api/users/:id- Update user profileGET /api/users/:id/listings- Get user listings
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- University IT departments for API support
- Student beta testers and feedback providers
- Open source libraries and frameworks used in this project