EventShere is a venue booking and event management platform built for a global audience. It connects event planners with venue owners, handles guest coordination, seat assignment, and payments in multiple currencies through a unified API.
The project is organized as an npm workspace monorepo containing three packages: a Node.js/Express server, a React frontend client, and a shared constants/types library consumed by both.
| Package | Path | Description |
|---|---|---|
@eventshere/server |
server/ |
REST API, Socket.IO, and all business logic |
@eventshere/client |
client/ |
React frontend application |
@eventshere/shared |
shared/ |
Types, constants, and utility functions shared between server and client |
Backend
- Node.js, Express, TypeScript
- PostgreSQL — relational data (users, venues, bookings, events, guests)
- MongoDB — venue layout storage (seat maps, zone configurations)
- Redis — session caching and rate limit state
- Socket.IO — real-time check-in, layout collaboration, and live announcements
Frontend
- React, TypeScript, Vite
Infrastructure
- Docker Compose (Postgres 16, MongoDB 7, Redis 7)
- Cloudinary — media storage (photos, videos, 3D models)
- SendGrid — transactional email
Payments
- Paystack — NGN, GHS, KES, ZAR
- Flutterwave — XOF, UGX, TZS, RWF, and broader African coverage
- Stripe — USD, GBP, EUR, and other international currencies
- Node.js 18 or higher
- npm 9 or higher
- Docker Desktop (for local databases)
1. Clone the repository
git clone https://github.com/MicMond01/EventShere.git
cd EventShere2. Install all dependencies
This installs packages for all three workspaces in one step.
npm install3. Build the shared package
The server and client both import from @eventshere/shared. Build it first so the local symlinks resolve correctly.
cd shared && npm run build && cd ..4. Configure the server environment
cp server/.env.example server/.envEdit server/.env and fill in the required values. See server/README.md for a full description of every variable.
5. Start the databases
docker-compose up -dThis starts PostgreSQL on port 5432, MongoDB on port 27017, and Redis on port 6379. All data is persisted in named Docker volumes.
6. Run the database migration
cd server && npm run db:migrate7. Start the development servers
Open two terminals:
# Terminal 1 — API server (port 5000)
cd server && npm run dev
# Terminal 2 — React client (port 5173)
cd client && npm run devEventShere/
├── client/ # React frontend
├── server/ # Express API server
├── shared/ # Shared constants and types
│ └── src/
│ └── constants/ # Currencies, countries, tiers, gateway map
├── docker-compose.yml # Local database services
└── package.json # Workspace root
- Create a branch from
mainusing the conventionfeature/<name>orfix/<name>. - Make your changes. Keep commits scoped to a single concern.
- Ensure
npx tsc --noEmitpasses in bothserver/andclient/before opening a pull request. - Open a pull request against
mainwith a clear description of the change and any relevant testing steps.
ISC