A full-stack event management platform with admin and attendee features, real-time messaging, payments, check-in, and Google Sheets integration.
- Frontend: https://evenza-2pms.vercel.app/
- Backend: https://evanza-eventmanagement.onrender.com/api
- Event Management: Create, update, delete, and view events (admin & public views)
- Attendee Registration: Register for events, manage attendees, send reminders
- Payments: Stripe integration for event payments, refunds, and payment status
- Check-in System: QR and manual check-in/out, real-time stats
- Messaging: Broadcasts, announcements, surveys, unread message tracking
- Google Sheets Integration: Sync event data with Google Sheets
- User Authentication: Secure login/register for admins and users
- Admin Dashboard: Manage events, attendees, payments, and messages
-
Browse Events:
Visit the homepage to view all public events. Use the search bar to filter events by name or type. -
Register for an Event:
Click on an event to view details. Use the registration form to sign up. You may be prompted to pay (Stripe integration) if the event requires payment. -
Check Registration Status:
After registering, you can view your registrations in the "My Events" or "My Registrations" section. -
Check-in at Event:
On the day of the event, use the QR code provided (or manual check-in) to mark your attendance. -
Receive Messages & Announcements:
Stay updated with event announcements, surveys, and reminders sent by organizers. Unread messages will be highlighted in your dashboard. -
Participate in Surveys:
Complete surveys sent by organizers to provide feedback or answer event-related questions.
-
Login to Admin Dashboard:
Access the admin login page and sign in with your credentials. -
Create & Manage Events:
Use the dashboard to create new events, update existing ones, or delete events. Upload images and set event details. -
Manage Attendees:
View the list of attendees for each event. Update attendee information, send reminders, or remove attendees as needed. -
Monitor Payments:
Track payment status for each attendee. Issue refunds if necessary. -
Check-in Management:
Monitor real-time check-in stats. Manually check-in attendees or scan QR codes at the event entrance. -
Send Broadcasts & Announcements:
Communicate with all attendees via broadcasts, announcements, or surveys. -
Google Sheets Integration:
Sync event data with Google Sheets for reporting or backup.
- Home: View all public events.
- Event Details: Click any event for more info and registration.
- Login/Register: Use the navigation bar to access authentication pages.
- Dashboard: (Admins only) Manage all aspects of events and attendees.
- Profile/My Events: (Users) View your registrations and event participation.
Note:
- Make sure to use the correct frontend and backend URLs as provided above.
- For best experience, use the latest version of Chrome, Firefox, or Edge.
git clone https://github.com/yourusername/evanza-eventmanagement.git
cd evanza-eventmanagementCreate a .env file in the root and in /server with the following (example):
Frontend (.env):
VITE_API_URL=https://your-backend.onrender.com/api
Backend (server/.env):
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret
...
npm install
cd server && npm install# In project root
npm run devThis will start both frontend and backend (using concurrently).
- Frontend: Deploy
/src(Vite/React) to Vercel - Backend: Deploy
/server(Node/Express) to Render or Railway
All endpoints are prefixed with your backend URL:
https://your-backend.onrender.com/api
GET /events/public— List public eventsGET /events/public/all— List all public eventsGET /events/public/:id— Get public event detailsGET /events/public/search?q=...&type=...— Search eventsGET /events/debug/all— Debug: all events (admin)GET /events— List all events (admin)POST /events— Create event (admin)PUT /events/:id— Update event (admin)DELETE /events/:id— Delete event (admin)GET /events/:id/stats— Event stats
POST /attendees/register/:eventId— Register for eventGET /attendees/event/:eventId— List event attendeesPUT /attendees/:id— Update attendeeDELETE /attendees/:id— Delete attendeePOST /attendees/reminder/:eventId— Send reminder
POST /payments/create-intent— Create Stripe payment intentPOST /payments/process— Process paymentGET /payments/status/:attendeeId/:eventId— Payment statusGET /payments/event/:eventId— Event paymentsPOST /payments/refund/:paymentId— Refund payment
POST /checkin/qr— QR code check-inPOST /checkin/manual— Manual check-inPOST /checkin/checkout/:attendeeId— Checkout attendeeGET /checkin/stats/:eventId— Check-in stats
POST /messages/broadcast— Send broadcastPOST /messages/survey— Send surveyGET /messages/event/:eventId— Event messagesPOST /messages/survey-completed/:attendeeId— Complete surveyPOST /messages/announcement— Create announcementGET /messages/public/:eventId— Public messagesGET /messages/user/unread— User unread messagesPOST /messages/user/mark-seen— Mark messages as seen
POST /gsheet/setup/:eventId— Setup integrationGET /gsheet/data/:eventId— Get sheet dataGET /gsheet/appscript-code/:eventId— Get App Script code
POST /auth/user/login— User loginPOST /auth/user/register— User registerGET /auth/user/me— Get user profile
GET /user/registrations— My registrationsGET /user/registrations/:registrationId— Registration detailsGET /user/registration-status/:eventId— Check registration status
- Admins: Login to the dashboard to manage events, attendees, payments, and messages.
- Attendees: Register for events,