A comprehensive marketplace platform featuring Real Estate Agents, Service Providers, and Household Items with admin controls and impression tracking.
-
Three-Tier System:
- Real Estate Agents (1 Bedroom Flat, 2 Bedroom Flat, Duplex, etc.)
- Service Providers (Carpenters, Painters, Electricians, Plumbers, etc.)
- Household Items (Kitchenware, Furniture, Gadgets, etc.)
-
User Registration:
- Required fields: First Name, Surname, Business Name (optional), Email, Phone, Address, State, Local Government, Gender (optional)
- Email verification required before account activation
- Profile visibility controls (users can hide certain fields)
-
Listing Management:
- Default 5 listings per account (admin configurable)
- Maximum 5 pictures per listing (admin configurable)
- YouTube video support with overlay display
- Admin controls for business name and video display at individual, tier, and tier listing page levels
-
Admin Dashboard:
- Impressions matrix for tracking account visibility
- Create and manage tier listing pages
- Send notifications (individual, tier, tier listing page, or all)
- User and listing management
- Configurable limits per user
-
Design:
- Bright, modern design with magenta (#990f4b) accent colors
- Responsive layout
- Smooth animations and transitions
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create a
.envfile:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/marketplace
JWT_SECRET=your_jwt_secret_key_here
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=465
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
EMAIL_FROM=noreply@marketplace.com
FRONTEND_URL=http://localhost:3000
ADMIN_EMAIL=admin@marketplace.com- Start the backend:
npm run dev- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm startThe frontend will open at http://localhost:3000
marketplace-platform/
├── backend/
│ ├── config/
│ │ └── database.js
│ ├── models/
│ │ ├── User.js
│ │ ├── Listing. js
│ │ ├── TierListingPage.js
│ │ └── Notification.js
│ ├── controllers/
│ │ ├── authController.js
│ │ ├── listingController.js
│ │ └── adminController.js
│ ├── routes/
│ │ ├── auth.js
│ │ ├── listings. js
│ │ └── admin.js
│ ├── middleware/
│ │ └── auth.js
│ ├── utils/
│ │ └── emailService.js
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Header.jsx
│ │ │ └── BannerVideo.jsx
│ │ ├── pages/
│ │ │ ├── TierListingPage.jsx
│ │ │ └── AdminDashboard.jsx
│ │ └── App.js
│ └── package.json
└── . env
POST /api/auth/register- Register a new userGET /api/auth/verify-email- Verify email with tokenPOST /api/auth/login- Login user
POST /api/listings/create- Create a new listingPUT /api/listings/:listingId- Update listingGET /api/listings/user-listings- Get user's listingsGET /api/listings/:tier/:tierCategory- Get listings by tier and categoryPOST /api/listings/: listingId/add-picture- Add picture to listing
POST /api/admin/tier-listing-page- Create tier listing pagePUT /api/admin/business-display/: userId- Toggle business name displayPUT /api/admin/video-display/:pageId- Toggle video displayPOST /api/admin/send-notification- Send notificationsGET /api/admin/impressions-matrix- Get impressions dataPUT /api/admin/listing-limit/: userId- Update listing limitPUT /api/admin/picture-limit/:userId- Update picture limit
- Primary Color: #990f4b (Magenta)
- Secondary Color: #cc0d5c (Light Magenta)
- Background: Linear gradients with light variants
- Text: Dark gray (#333, #555, #666)
- Accent: White with magenta accents
- Node.js & Express. js
- MongoDB with Mongoose
- JWT for authentication
- Nodemailer for email
- bcryptjs for password hashing
- React.js
- React Router for navigation
- CSS3 for styling
- Axios for API calls
- Payment integration
- Advanced search and filtering
- User ratings and reviews
- Messaging system
- Analytics dashboard
- Mobile app
- Live chat support
MIT License
For support, contact admin@marketplace.com
ENVIRONMENT CONFIG:
PORT=5000 NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/marketplace
JWT_SECRET=your_jwt_secret_key_here
EMAIL_HOST=smtp.gmail.com EMAIL_PORT=465 EMAIL_USER=your_email@gmail.com EMAIL_PASSWORD=your_app_password EMAIL_FROM=noreply@marketplace.com
FRONTEND_URL=http://localhost:3000
ADMIN_EMAIL=admin@marketplace.com
--- END ---