A cutting-edge, production-ready event management platform built with React, TypeScript, and Firebase. Create, manage, and attend events with powerful features including real-time updates, comprehensive analytics, social sharing, and much more.
- π― Production-Ready: Fully tested, optimized build with comprehensive error handling
- π Real-time Everything: Live updates for events, RSVPs, comments, and announcements
- π Dark Mode: Beautiful dark theme with smooth transitions
- π± PWA Support: Install as a mobile app with offline capabilities
- π Advanced Analytics: Admin dashboard with charts and statistics
- π Secure: Complete Firebase security rules and role-based access control
- βΏ Accessible: WCAG compliant with keyboard navigation support
- β Email/Password authentication
- β Google OAuth integration
- β Protected routes with role-based access (User/Admin)
- β User profile management
- β Persistent sessions
- β Full CRUD operations for events
- β Rich event details (title, description, dates, location, capacity)
- β High-quality image uploads (Firebase Storage)
- β Event categorization (10+ categories)
- β Flexible tagging system
- β Real-time event status (upcoming, ongoing, completed)
- β Event editing with version control
- β Bulk operations for admins
- β Real-time RSVP tracking with Firestore
- β Multiple response options (Going, Maybe, Not Going)
- β Guest count management
- β Live attendee count updates
- β Attendee list with contact information
- β Export attendees to CSV
- β RSVP status changes with notifications
- β Real-time comment system for events
- β Threaded discussions
- β User avatars and timestamps
- β Delete own comments
- β Admin moderation capabilities
- β Create and manage announcements
- β Priority levels (Low, Medium, High)
- β Real-time updates across all users
- β Event-specific or general announcements
- β Rich text formatting
- β Event Sharing: Share to Facebook, Twitter, LinkedIn, WhatsApp
- β QR Code Generation: Generate and download QR codes for easy check-in
- β Favorites/Bookmarks: Save events for later
- β Social Proof: See who else is attending
- β Comprehensive analytics and statistics
- β Interactive charts (Pie, Bar, Line charts)
- β User management overview
- β Event performance metrics
- β RSVP analytics
- β System health monitoring
- β Dark Mode: Toggle between light and dark themes
- β Skeleton Loaders: Smooth loading experiences
- β Toast Notifications: Real-time feedback
- β Error Boundaries: Graceful error handling
- β 404 Page: Custom not found page
- β Mobile Responsive: Perfect on all devices
- β Keyboard Navigation: Full accessibility support
- β Export attendee lists to CSV
- β QR code check-in system
- β Social media integration
- β Calendar integration ready
- β Email notifications ready
- React 19 - Latest version with concurrent features
- TypeScript - 100% type-safe codebase
- Vite - Lightning-fast build tool
- Tailwind CSS - Utility-first CSS with dark mode
- React Router v6 - Modern routing
- Recharts - Beautiful, responsive charts
- React Icons - Comprehensive icon library
- React Toastify - Elegant notifications
- date-fns - Modern date utility library
- React Share - Social sharing components
- QRCode.react - QR code generation
- PapaParse - CSV parsing and generation
- html-to-image - Export to images
- Firebase Authentication - Secure user management
- Cloud Firestore - Real-time NoSQL database
- Firebase Storage - Scalable file storage
- Firebase Security Rules - Data protection
- Firestore Indexes - Optimized queries
- ESLint - Code quality
- PostCSS - CSS processing
- Autoprefixer - Browser compatibility
Event-Management-System/
βββ public/
β βββ manifest.json # PWA manifest
β βββ sw.js # Service worker
β βββ icons/ # App icons
βββ src/
β βββ components/
β β βββ announcements/ # Announcement components
β β β βββ AnnouncementCard.tsx
β β β βββ AnnouncementForm.tsx
β β βββ common/ # Shared components
β β β βββ ErrorBoundary.tsx
β β β βββ Loading.tsx
β β β βββ ErrorMessage.tsx
β β β βββ ProtectedRoute.tsx
β β β βββ DarkModeToggle.tsx
β β β βββ SkeletonLoader.tsx
β β βββ events/ # Event components
β β β βββ EventCard.tsx
β β β βββ EventForm.tsx
β β β βββ RSVPSection.tsx
β β β βββ Comments.tsx
β β β βββ AttendeesList.tsx
β β β βββ FavoriteButton.tsx
β β β βββ ShareEvent.tsx
β β β βββ QRCodeModal.tsx
β β β βββ ExportAttendees.tsx
β β βββ layout/ # Layout components
β β βββ Navbar.tsx
β βββ contexts/ # React contexts
β β βββ AuthContext.tsx
β β βββ ThemeContext.tsx
β βββ hooks/ # Custom hooks
β β βββ useEvents.ts
β β βββ useRSVPs.ts
β β βββ useAnnouncements.ts
β βββ pages/ # Page components
β β βββ Home.tsx
β β βββ Login.tsx
β β βββ Register.tsx
β β βββ Events.tsx
β β βββ EventDetails.tsx
β β βββ EditEvent.tsx
β β βββ Dashboard.tsx
β β βββ Announcements.tsx
β β βββ AdminDashboard.tsx
β β βββ NotFound.tsx
β βββ services/ # Firebase services
β β βββ authService.ts
β β βββ eventService.ts
β β βββ rsvpService.ts
β β βββ announcementService.ts
β β βββ commentService.ts
β β βββ favoriteService.ts
β βββ types/ # TypeScript definitions
β β βββ index.ts
β βββ utils/ # Utility functions
β β βββ dateUtils.ts
β β βββ validation.ts
β βββ config/ # Configuration
β βββ firebase.ts
βββ firestore.rules # Security rules
βββ firestore.indexes.json # Database indexes
βββ storage.rules # Storage security rules
βββ firebase.json # Firebase config
βββ tailwind.config.js # Tailwind configuration
- Node.js 16 or higher
- npm or yarn
- Firebase account
-
Clone the repository
git clone <repository-url> cd Event-Management-System
-
Install dependencies
npm install
-
Firebase Setup
Create a Firebase project at console.firebase.google.com
Enable these services:
- Authentication: Email/Password + Google
- Firestore Database: Start in production mode
- Storage: Default settings
-
Configure environment
Copy
.env.exampleto.env:cp .env.example .env
Add your Firebase config:
VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Deploy Firebase rules
firebase deploy --only firestore:rules,storage
-
Run development server
npm run dev
npm run buildBuild output will be in dist/ directory.
-
Sign Up/Login
- Create account with email or Google
- Secure authentication with Firebase
-
Browse Events
- View all events with search and filters
- See event details, location, and capacity
- Check real-time RSVP counts
-
RSVP to Events
- Choose: Going, Maybe, or Not Going
- Specify number of guests
- View other attendees
-
Engage with Events
- Add comments and discussions
- Favorite events for later
- Share on social media
- Download QR codes
-
Manage Your Events
- Create events with rich details
- Upload event images
- Edit and update events
- Track RSVPs and attendance
- Export attendee lists
Set first user as admin in Firestore:
- Go to Firebase Console β Firestore
- Open
userscollection - Find your user document
- Set
rolefield to"admin"
Admin capabilities:
- Access admin dashboard at
/admin - View system-wide analytics
- Manage all events and users
- Monitor RSVP trends
- Export data and reports
- Moderate comments
- View detailed statistics
Toggle between light and dark themes. Preference is saved to localStorage and persists across sessions.
All data syncs in real-time using Firestore listeners:
- Event changes
- New RSVPs
- Comments
- Announcements
Share events on:
- Copy link to clipboard
- Generate unique QR codes for each event
- Download as PNG
- Scan to view event details
- Perfect for event check-in
- Export attendee lists to CSV
- Includes name, email, RSVP status, guest count
- Perfect for event planning
Visualize your data:
- Event distribution by category
- Status breakdown (upcoming/ongoing/completed)
- User growth metrics
- RSVP trends
- Recent activity
- Firebase Security Rules for Firestore and Storage
- Role-based access control (RBAC)
- Input validation and sanitization
- Protected routes
- Secure file uploads (5MB limit, image types only)
- XSS protection
- CSRF protection
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers
- Install on home screen
- Offline capabilities
- App-like experience
- Push notifications (ready)
See CONTRIBUTING.md for contribution guidelines.
MIT License - see LICENSE file for details.
- Firebase for backend services
- Tailwind CSS for styling
- React community
- All open-source contributors
For issues or questions:
- Open an issue on GitHub
- Check existing documentation
- Review FAQ section
- Email notifications
- Calendar integration
- Recurring events
- Event templates
- Multi-language support
- Advanced search with Algolia
- Video streaming integration
- Payment integration
- Ticket sales
- Event analytics export
Built with β€οΈ using React, TypeScript, Firebase, and Tailwind CSS
Version: 2.0.0
Last Updated: November 2025