Peer-to-peer marketplace for the Asian Institute of Technology (AIT) community
A comprehensive web application built with React, Node.js, and Express that enables AIT students, faculty, and staff to buy, sell, and trade items and services within the community.
- π User Authentication - Secure registration and login with JWT
- π€ Profile Management - Edit profile, upload profile picture
- β Verification System - Request verification badge with proof of identity
- ποΈ Buy & Sell - List products and services with images
- π° Thai Baht Currency - All prices in ΰΈΏ (1 USD = 35 THB)
- π Search & Filter - Find items by category, search terms
- π± Responsive Design - Works on desktop, tablet, and mobile
- π¨ Smooth Animations - Framer Motion for polished UX
- π₯ User Management - Add, delete, verify users
- β Verification Requests - Review and approve identity verification
- π¦ Item Management - Monitor and remove listings
- π Analytics Dashboard - View statistics and insights
- π’ Broadcast Notifications - Send announcements to users
- π Contact information hidden until login
- π AIT email certification (@ait.asia)
- π‘οΈ Admin-only protected routes
- π Password hashing with bcrypt
- Node.js 18+
- npm or yarn
- Clone the repository
git clone https://github.com/YOUR-USERNAME/uni-market.git
cd uni-market- Install dependencies
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm install- Start the backend
cd server
npm start
# Server runs on http://localhost:3001- Start the frontend (in new terminal)
cd client
npm run dev
# Client runs on http://localhost:5173- Open browser
http://localhost:5173
Admin: st126010@ait.asia / Htutkoko@17
User: user@ait.asia / password
- React 18 - UI library
- TypeScript - Type safety
- Vite - Build tool
- Framer Motion - Animations
- Axios - HTTP client
- React Router - Navigation
- Node.js - Runtime
- Express - Web framework
- JWT - Authentication
- bcrypt - Password hashing
- JSON file - Database (demo)
See detailed instructions in:
GITHUB_SETUP.md- Push code to GitHubQUICK_DEPLOY.md- Deploy to Render + Vercel
Or run the setup script:
./setup-github.sh- Backend: Render.com (Free tier)
- Frontend: Vercel.com (Free tier)
uni-market/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ context/ # Auth context
β β βββ types/ # TypeScript types
β βββ public/ # Static assets
β βββ package.json
βββ server/ # Express backend
β βββ index.js # Main server file
β βββ db.json # JSON database
β βββ package.json
βββ GITHUB_SETUP.md # GitHub setup guide
βββ QUICK_DEPLOY.md # Deployment guide
βββ README.md # This file
- Prices stored in USD backend
- Displayed in Thai Baht (ΰΈΏ) frontend
- Conversion rate: 1 USD = 35 THB
- Users upload proof of identity
- Admins review in dashboard
- Approved users get β badge
- Unregistered users can browse
- Must login to see seller contact info
- Protects user privacy
- User management (add/delete/verify)
- Item management (view/delete)
- Verification requests review
- Analytics and statistics
- Broadcast notifications
Backend (server/.env):
PORT=3001
JWT_SECRET=your-secret-key
NODE_ENV=development
FRONTEND_URL=http://localhost:5173Frontend (client/vite.config.ts):
server: {
proxy: {
'/api': {
target: 'http://localhost:3001',
changeOrigin: true
}
}
}POST /api/auth/register- Register new userPOST /api/auth/login- Login user
GET /api/users- Get all usersPUT /api/users/:id- Update user profileDELETE /api/users/:id- Delete user (admin)POST /api/users- Add user (admin)
GET /api/items- Get all itemsPOST /api/items- Create itemDELETE /api/items/:id- Delete item
POST /api/verification-requests- Submit requestGET /api/verification-requests- Get all (admin)PUT /api/verification-requests/:id/approve- ApprovePUT /api/verification-requests/:id/reject- Reject
This is a student project for the AIT community. Contributions are welcome!
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - feel free to use for educational purposes
HTUT KO KO
Student ID: st126010
Asian Institute of Technology
For issues or questions:
- Open an issue on GitHub
- Contact: st126010@ait.asia
- Asian Institute of Technology
- AIT Community
- Open source libraries used in this project
Made with β€οΈ for the AIT Community