A comprehensive full-stack web application connecting Event Clients with Professional Vendors. This platform facilitates the entire lifecycle of event organization, from posting requirements to bidding, negotiation, and final agreement, enhanced with AI matching and real-time collaboration tools.
The Event Management Marketplace is designed to streamline the chaotic process of finding reliable vendors for events. It acts as a bridge where:
- Clients can post detailed event requirements, browse vendor profiles, receive competitive bids, and manage their events.
- Vendors can find new business opportunities, submit proposals, track their bid history, and build their reputation.
The system emphasizes transparency, efficiency, and communication, featuring real-time messaging, detailed proposal tracking, and an intelligent matching engine.
This platform was built to solve the fragmentation and friction in the event planning industry. Most marketplaces only offer directory listings; this project focuses on the entire lifecycleโfrom the first creative spark in a 3D Moodboard to the final signature on a Digital Contract.
Why this project exists: AI-First Discovery: Moving away from simple keyword search to a weighted multi-objective matching engine. Visual Collaboration: Bridging the gap between client ideas and vendor execution using Three.js spatial planning. Professional Governance: Implementing "FAANG-level" vendor analytics, reputation scoring, and dispute resolution systems.
A high-level overview of the Modular Monolith architecture:
Event-Management-Startup/
โโโ client/ # Frontend React Application
โ โโโ src/
โ โ โโโ api/ # Axios instances & API definitions
โ โ โโโ components/ # Shared UI (ChatWindow, Navbar, Modals)
โ โ โโโ features/ # Feature-Sliced Architecture
โ โ โ โโโ admin/ # Admin Dashboard & Premium Management
โ โ โ โโโ auth/ # Login & Register Forms
โ โ โ โโโ client/ # Client Dashboard Logic
โ โ โ โโโ complaints/ # Ticket & Dispute System
โ โ โ โโโ dashboard/ # Main Role-Based Router
โ โ โ โโโ events/ # Event Feed & Opportunity Board
โ โ โ โโโ landing/ # 3D Animated Landing Page
โ โ โ โโโ messages/ # Real-time Chat Interface
โ โ โ โโโ proposals/ # Bidding & Contract Modals
โ โ โ โโโ users/ # Profile & Vendor Directory
โ โ โ โโโ vendor/ # Vendor Dashboard & Calendar
โ โ โโโ context/ # Theme Context (Light/Dark)
โ โ โโโ layouts/ # App Shell & Route Guards
โ โ โโโ stores/ # Zustand State (Auth, Socket)
โ โ โโโ lib/ # Utilities (Three.js helpers, formatters)
โ
โโโ server/ # Backend Express API
โ โโโ prisma/ # Database Schema (SQLite)
โ โโโ src/
โ โ โโโ common/ # Shared Services
โ โ โ โโโ services/ # Socket.io, Cron Jobs
โ โ โ โโโ middleware/ # Auth Middleware
โ โ โโโ modules/ # Domain-Driven Modules
โ โ โ โโโ admin/ # User Governance & Soft Delete
โ โ โ โโโ analytics/ # Predictive Insights & Reporting
โ โ โ โโโ auth/ # JWT Authentication
โ โ โ โโโ calendar/ # Vendor Availability Logic
โ โ โ โโโ complaints/ # Dispute Resolution Logic
โ โ โ โโโ contracts/ # Digital Signatures
โ โ โ โโโ events/ # Core Event CRUD
โ โ โ โโโ matching/ # AI Scoring Engine
โ โ โ โโโ messages/ # Chat Persistence
โ โ โ โโโ moodboard/ # 3D & 2D Galleries
โ โ โ โโโ planner/ # Kanban & Budgeting
โ โ โ โโโ premium/ # Monetization & Verification
โ โ โ โโโ users/ # Profile Management
โ โ โโโ index.ts # Server Entry Point
โ
โโโ package.json # Root configuration
- Event Lifecycle Management:
- Posting: Clients create events with specific details (budget, location, date).
- Bidding System: Vendors submit proposals with custom cover letters and dynamic pricing.
- Digital Contracts: Secure "Pending -> Signed" workflow for finalizing agreements.
- Status Flow:
Open->In Progress(Accepted) ->Completed->Reviewed.
- Social & Engagement:
- Stories: Vendors can post ephemeral updates (24h expiry) to showcase recent work, similar to Instagram.
- Reviews: 1-5 Star rating system with text comments.
- Role-Based Dashboards:
- Client: Manage posted events, view incoming bids, and track budget. Redesigned filter representation for easier access.
- Vendor: View "Opportunity Board" (Event Feed), track active jobs, and manage availability.
- Enhanced UX & Design:
- Responsive: Fully optimized layout ensuring proper functionality across all screen sizes.
- Authentication: Completely redesigned Login and Sign-Up pages with improved animations and layout.
- Landing Page: Enhanced design with platform statistics, featured events showcase, and streamlined CTA.
- Messaging: Redesigned chat interface for a smoother communication experience.
- AI Smart Match Engine (
/modules/matching):- Algorithm: A weighted scoring system (Symbolic AI) that ranks vendors based on 4 vectors:
- Relevance (40%): Keyword matching against vendor bio and tags.
- Reputation (20%): Weighted average of star ratings and review count.
- Reliability (20%): Response time and completion rates.
- Boost (20%): Premium subscription status.
- Constraint Checking: Automatically filters out vendors with conflicting dates in the Availability Calendar.
- Smart Search: Includes a budget range slider interface (in progress) and advanced filtering by Location, Category, and Rating.
- Algorithm: A weighted scoring system (Symbolic AI) that ranks vendors based on 4 vectors:
- Interactive Event Planner:
- Kanban Board: Drag-and-drop task management.
- Budget Tracker: Real-time comparison of "Estimated" vs "Actual" spending using Recharts.
- Guest List: Manage guest attendance status (Pending, Confirmed, Declined).
- Physics-Enabled 3D Planner (
/modules/moodboard):- Engine: Powered by Three.js (
@react-three/fiber) and Cannon.js (@react-three/cannon). - Features: Interactive drag-and-drop furniture placement, collision detection, rotation controls, and real-time cloud saving.
- Engine: Powered by Three.js (
- Vendor Calendar:
- Monthly View: New calendar interface for managing availability.
- Quick Blocking: One-click functionality to block/unblock specific dates.
- Subscription Models: 3 distinct Premium Package options displayed with detailed perks.
- Payment & Verification:
- Manual payment proof upload (handled via Multer) for package requests.
- Support for Bank Transfer details managed by Admins.
- Visibility Boosts:
- Featured Badge: Gold crown indicator for premium vendors.
- Priority Sorting: Premium vendors appear at the top of search results.
- Automated Governance: Hourly Cron jobs (
node-cron) check subscription validity and auto-downgrade expired accounts.
- User Lifecycle:
- Hold: Temporarily block login access.
- Soft Delete: Mark for deletion (30-day grace period).
- Purge: Permanent data removal.
- Complaint Center: Dedicated ticket system for dispute resolution between clients and vendors, now supporting file attachments.
- Analytics: Platform-wide stats on active users, revenue, and event completion rates.
Authentication
POST /api/auth/register- Create a new account.POST /api/auth/login- Authenticate and receive JWT.
Events
GET /api/events- List all open events (with filters).POST /api/events- Create a new event.GET /api/events/my- List events created by the logged-in user.
Proposals
POST /api/proposals- Submit a bid for an event.PUT /api/proposals/:id/accept- Client accepts a proposal.
Matching & Discovery
POST /api/matching/find- (AI Engine) Returns ranked vendors based on event criteria.- Note: Logic resides in
server/src/modules/matching/matching.service.ts.
- Note: Logic resides in
Monetization
POST /api/premium/request- Submit a premium plan request (requiresmultipart/form-datafor proof).
- Project Monorepo Setup (Client/Server)
- JWT Authentication & Role-Based Access Control
- Database Schema Design (Prisma)
- Basic User Profiles
- Event Creation & Listing
- Bidding/Proposal System
- Digital Contracts & Signatures
- Review & Rating System
- Socket.io Setup
- Instant Messaging (Chat)
- Stories (Ephemeral Content)
- Live Notifications
- AI Smart Match Algorithm
- 3D Event Planner (Three.js + Cannon.js)
- Vendor Availability Calendar
- Kanban Task Manager
- Premium Subscription Logic
- Admin Dashboard & User Governance
- Complaint/Ticket System
- Automated Cron Jobs for Subscription Expiry
- Payment Gateway: Integration with Stripe/Razorpay for automatic subscription billing.
- Mobile App: React Native port for iOS/Android.
- Social Login: Google/Apple Auth integration.
- Framework: React 19 with Vite
- Language: TypeScript
- State Management: Zustand
- Styling: Tailwind CSS v4
- Animations: Framer Motion
- 3D Engine: React Three Fiber & Cannon.js
- Charts: Recharts
- Notifications: Sonner
- HTTP Client: Axios
- Utils: clsx, tailwind-merge, class-variance-authority
- Runtime: Node.js
- Framework: Express.js
- Architecture: Modular Monolith (Domain-Driven Design)
- Language: TypeScript
- Database: SQLite (Local file-based)
- ORM: Prisma
- Real-time: Socket.io
- Scheduling: Node-Cron
- File Handling: Multer
The SQLite database uses a relational model with the following key entities:
- User: Central entity for all roles (
CLIENT,VENDOR,ADMIN).- Key Fields:
role,isVerified,accountStatus,credits(for promotion). - Relations: One-to-many with
Event,Proposal,Review,Message.
- Key Fields:
- Event: Represents a job posting.
- Lifecycle:
OPEN->IN_PROGRESS->COMPLETED. - Relations: Links to
MoodBoard(one-to-one) andProposal(one-to-many).
- Lifecycle:
- Proposal: A vendor's bid on an event.
- Flow: Starts as
PENDING, can becomeACCEPTEDorREJECTED. - Relations: Links to
Contract(one-to-one).
- Flow: Starts as
- PremiumRequest: Handles vendor upgrade requests.
- Storage: Stores
paymentProofUrlpointing to/uploads.
- Storage: Stores
- Node.js (v18 or higher)
- npm
-
Install all dependencies:
npm run install-all
-
Database Setup:
cd server npx prisma migrate dev npx prisma generate cd ..
-
Environment Configuration: The application requires a
.envfile in theserverdirectory. Ensure the following variables are set:Variable Description Default/Example PORTThe port for the backend server. 5000DATABASE_URLConnection string for the SQLite database. file:./dev.dbJWT_SECRETSecret key for signing JSON Web Tokens. your_super_secret_key_123VITE_API_URL(Client-side) Base URL for the backend API. http://localhost:5000
Start both the Backend and Frontend servers:
npm run dev- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000
| Command | Description |
|---|---|
npm run install-all |
Installs root, client, and server dependencies. |
npm run dev |
Runs both Frontend and Backend concurrently. |
npx prisma migrate dev |
(Run in /server) Applies schema changes and updates DB. |
npx prisma generate |
(Run in /server) Regenerates the Prisma Client. |
npx prisma studio |
(Run in /server) GUI to view/edit database records. |
npx tsx --env-file=./server/.env seed-admin.ts |
Seeds the initial Master Admin account. |
npx tsx test-db.ts |
Verifies database connectivity. |
-
Smart Vendor Search (Budget Slider):
- Status: The UI component exists, but the backend matching algorithm (
MatchingService) may need an update to strictly filter by thebudgetrange parameter passed from the frontend. - File:
server/src/modules/matching/matching.service.ts
- Status: The UI component exists, but the backend matching algorithm (
-
Payment Proofs:
- Implementation: Uses
Multerfor file uploads. Files are saved toserver/uploadswith a timestamp prefix. - File:
server/src/modules/premium/premium.routes.ts
- Implementation: Uses
-
3D Moodboard:
- Logic: Spatial data is stored as a JSON string in the
MoodBoardtable (spatialDatacolumn) to allow flexibility without complex relation tables for every furniture item.
- Logic: Spatial data is stored as a JSON string in the
A Master Admin account is available for testing administrative features:
- Login URL:
/login - Email:
admin@eventstart.com - Password:
adminpassword123