EventBond is a full-stack event booking system that allows users to browse and book events, manage their bookings, and provides an integrated web-based admin panel for event, user, and booking management.
-
User Features:
- Browse and search for upcoming events
- Book events and manage your bookings
- View event details, images, and categories
- Multi-language support (English & Arabic)
-
Admin Features:
- Manage events (create, edit, delete, upload images)
- Manage users (view, edit roles, delete)
- Manage all bookings (view, delete)
- Admin dashboard and sidebar navigation
- Frontend: React (with TypeScript, Vite), Tailwind CSS, i18next (for translations)
- Backend: NestJS (TypeScript), TypeORM, JWT Auth, REST API
- Database: PostgreSQL
eventbond-api/ # Backend (NestJS)
eventbond-client/ # Frontend (React + Vite)
- Node.js (v16+ recommended)
- npm (v8+ recommended)
- PostgreSQL (v12+ recommended)
git clone https://github.com/your-username/EventBond.git
cd EventBond- Create a PostgreSQL database (e.g.,
eventbond_db). - Note your DB username, password, host, and port.
cd eventbond-apiMake a .env file in the root directory of eventbond-api
Edit your .env file to match your PostgreSQL credentials:
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USERNAME=your_db_user
DATABASE_PASSWORD=your_db_password
DATABASE_NAME=eventbond
DATABASE_SSL=true # enable SSL connection or not
JWT_SECRET=your_jwt_secret
ADMIN_EMAIL=admin@example.com
ADMIN_USERNAME=admin
ADMIN_PASSWORD=Very12Str@ng75Pa$$word
Install dependencies:
npm installStart the backend server:
# For development (with hot reload)
npm run start:dev
# For production
npm run build
npm run start:prodThe backend will typically run on http://localhost:3000.
cd ../eventbond-clientInstall dependencies:
npm installConfigure API URL:
Edit .env or vite.config.ts (or similar) to set the backend API URL, e.g.:
VITE_API_URL=http://localhost:3000/api
Start the frontend:
# For development
npm run dev
# For production build
npm run build
npm run previewThe frontend will typically run on http://localhost:5173 (or as specified by Vite).
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000/api
- You may need to create an admin user directly in the database or via a registration endpoint, then manually set their
roletoadminin the users table.
Both frontend and backend use environment variables for configuration. See .env.example files in each folder for details.
npm run start:dev— Start NestJS in development modenpm run build— Build the backendnpm run start:prod— Start the backend in productionnpm run test— Run backend tests
npm run dev— Start React app in development modenpm run build— Build the frontendnpm run preview— Preview the production build