A comprehensive event management platform for the German University in Cairo (GUC)
Features β’ Installation β’ Usage β’ API Documentation β’ Contributing
- About the Project
- Features
- Technologies Used
- System Architecture
- Getting Started
- User Roles
- API Documentation
- Project Structure
- Database Schema
- Screenshots
- Roadmap
- Contributing
- License
- Contact
- Acknowledgments
Hat-Ya-Seedy-El-Computer is a full-stack event management platform designed specifically for the German University in Cairo (GUC). The system provides a centralized solution for managing various campus activities including workshops, conferences, trips, bazaars, gym sessions, court reservations, and vendor management.
Educational institutions often struggle with fragmented event management systems. This platform solves that problem by providing:
- Unified Platform: Single system for all event types
- Role-Based Access: 7 different user roles with specific permissions
- Payment Integration: Stripe payments and internal wallet system
- Automated Workflows: Email notifications, QR codes, automatic refunds
- Comprehensive Reporting: Analytics and export capabilities for administrators
This project leverages modern web technologies to deliver a fast, scalable, and maintainable application:
Frontend:
- React - UI library
- Vite - Build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- React Router - Client-side routing
- Axios - HTTP client
Backend:
- Node.js - JavaScript runtime
- Express - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB ODM
Additional Services:
- Stripe - Payment processing
- Nodemailer - Email service
- JWT - Authentication tokens
- β Multiple Event Types: Workshops, Trips, Bazaars, Conferences, Booths, Gym Sessions
- β Advanced Filtering: Search by name, location, type, date, and professor
- β Smart Sorting: Sort events by date, popularity, or availability
- β Event Archiving: Automatic archiving of past events
- β Role-Based Restrictions: Limit events to specific user groups
- β QR Code Generation: For external visitors and event check-ins
- β Favorites System: Users can bookmark events
- β Professor Submission: Faculty can submit workshop proposals
- β Review System: Events Office approval/rejection workflow
- β Status Tracking: pending, accepted, rejected, needs_edits
- β Edit Requests: Office can request modifications
- β Participant Management: View registered users and capacity
- β Stripe Integration: Secure credit/debit card payments
- β Digital Wallet: Internal wallet for payments and refunds
- β Automatic Refunds: Money returned to wallet on cancellation
- β Email Receipts: Automatic payment confirmation emails
- β Transaction History: Complete payment audit trail
- β Vendor Registration: Complete onboarding with document upload
- β Tax Card Verification: Upload tax cards and company logos
- β ID Management: Upload IDs for booth attendees
- β Participation Requests: Apply for bazaars and booths
- β Fee Management: Pay participation fees online
- β Loyalty Program: Apply to GUC loyalty program with custom discounts
- β Booth Polling: Voting system for booth selection
- β Gym Session Management: Create, edit, and cancel sessions
- β Court Reservations: Basketball, Tennis, Football courts
- β Real-time Availability: See available time slots
- β Auto-cancellation: Unconfirmed reservations auto-cancel
- β Email Notifications: Alerts for changes and cancellations
- β Event Ratings: 5-star rating system
- β Comments: Users can leave detailed feedback
- β Moderation: Admins can remove inappropriate comments
- β Attendance Verification: Only attendees can rate/comment
- β In-app Notifications: Real-time system notifications
- β Email Verification: Account activation emails
- β Payment Receipts: Automatic receipt generation
- β Workshop Updates: Acceptance/rejection notifications
- β Attendance Certificates: Email certificates after events
- β Cancellation Alerts: Notify users of cancelled events
- β Attendance Reports: Filter by event name, type, and date
- β Sales Reports: Revenue tracking with filtering and sorting
- β Export Functionality: Download registrations as XLSX
- β User Analytics: Track participation and engagement
- β Revenue Insights: Analyze income by event type
- β User Management: Block/unblock users
- β Content Moderation: Remove inappropriate comments
- β Workshop Review Dashboard: Centralized approval interface
- β Vendor Requests: Approve/reject vendor applications
- β System-wide Settings: Configure platform parameters
| Technology | Version | Purpose |
|---|---|---|
| React | 19.1.1 | UI component library |
| Vite | 7.1.7 | Build tool and dev server |
| Tailwind CSS | 3.4.3 | Utility-first styling |
| React Router DOM | 7.9.4 | Client-side routing |
| Axios | 1.12.2 | HTTP requests |
| Framer Motion | 12.23.24 | Animations |
| Lucide React | 0.545.0 | Icon library |
| React Hot Toast | 2.6.0 | Toast notifications |
| Sonner | 2.0.7 | Advanced notifications |
| DayJS | 1.11.19 | Date manipulation |
| QRCode | 1.5.4 | QR code generation |
| XLSX | 0.18.5 | Excel export |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | ES Modules | JavaScript runtime |
| Express | 5.1.0 | Web framework |
| MongoDB | Atlas | NoSQL database |
| Mongoose | 8.18.2 | MongoDB ODM |
| JWT | 9.0.2 | Authentication |
| Bcrypt | 6.0.0 | Password hashing |
| Stripe | 19.3.0 | Payment processing |
| Nodemailer | 7.0.6 | Email service |
| Resend | 6.4.2 | Email API |
| Multer | 2.0.2 | File uploads |
| Node-cron | 4.2.1 | Task scheduling |
| Joi | 18.0.1 | Validation |
| QRCode | 1.5.4 | QR generation |
| XLSX | 0.18.5 | Excel export |
| Canvas | 3.2.0 | Image manipulation |
| CORS | 2.8.5 | Cross-origin requests |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Layer β
β (React SPA - Role-based routing and state management) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β HTTPS/REST API
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββ
β Application Layer β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββ β
β β Express β β Middleware β β Authentication β β
β β Router β β - Auth β β - JWT Tokens β β
β β β β - Upload β β - Role Validation β β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββ β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββ
β Business Logic Layer β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Controllers (12 modules) β β
β β β’ Events β’ Users β’ Vendors β’ Payments β β
β β β’ Registrations β’ Notifications β’ Analytics β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββ
β Data Layer β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β MongoDB Atlas (22 Collections) β β
β β Users β’ Events β’ Workshops β’ Trips β’ Bazaars β β
β β Registrations β’ Payments β’ Wallets β’ Notifications β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β
βββββββββΌβββββββ βββββββββΌβββββββ βββββββββΌβββββββ
β Stripe β β Nodemailer β β File β
β Payment β β Email β β Storage β
β Gateway β β Service β β (Uploads) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
node --version
- npm (v9.0.0 or higher) or yarn
npm --version
- MongoDB Atlas Account (or local MongoDB instance)
- Stripe Account (for payment processing)
- Gmail Account (for email notifications)
Follow these steps to set up the project locally:
git clone https://github.com/Advanced-Computer-Lab-2025/Hat-Ya-Seedy-El-Computer.git
cd Hat-Ya-Seedy-El-Computercd backend
npm installcd ../frontend
npm installCreate a .env file in the backend directory:
cd backend
touch .envAdd the following environment variables:
# Server Configuration
PORT=5001
NODE_ENV=development
# Database Configuration
MONGODB_URI=your_mongodb_connection_string
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_min_32_characters
JWT_EXPIRE=7d
# Stripe Configuration
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
# Email Configuration (Gmail)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_specific_password
ADMIN_EMAIL=admin@guc.edu.eg
# Frontend URL
FRONTEND_URL=http://localhost:5173
# File Upload
MAX_FILE_SIZE=5242880
UPLOAD_PATH=./uploadsCreate a .env file in the frontend directory:
cd ../frontend
touch .envAdd the following:
VITE_API_URL=http://localhost:5001/api
VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_keyOpen two terminal windows:
Terminal 1 - Backend:
cd backend
npm run devServer will start on http://localhost:5001
Terminal 2 - Frontend:
cd frontend
npm run devApplication will open on http://localhost:5173
Build Frontend:
cd frontend
npm run buildStart Backend:
cd backend
npm startThe system supports 7 distinct user roles, each with specific permissions:
Access Level: Basic User
Capabilities:
- Browse and filter all events
- Register for workshops, trips, and conferences
- Reserve courts (basketball, tennis, football)
- Make payments via Stripe or wallet
- Rate and comment on attended events
- Manage favorites list
- View wallet balance and transaction history
- Receive email notifications and certificates
Access Level: Basic User+
Capabilities:
- All student capabilities
- Additional permissions for staff-only events
- Priority registration for certain events
Access Level: Academic User
Capabilities:
- All student capabilities
- Participate in academic events
- Provide feedback on workshops
- Access to TA-specific resources
Access Level: Content Creator
Capabilities:
- All TA capabilities
- Submit workshop proposals
- Track workshop approval status
- View workshop participants and remaining spots
- Receive notifications on workshop acceptance/rejection
- Edit submitted workshops based on feedback
Access Level: Event Manager
Capabilities:
- All event browsing capabilities
- Review and approve/reject workshop proposals
- Create and manage all event types
- Archive past events
- Generate QR codes for external visitors
- Create polls for vendor booth selection
- Manage gym sessions (create, edit, cancel)
- Generate attendance and sales reports
- Export registration data to Excel
- Restrict events to specific user groups
Access Level: System Administrator
Capabilities:
- All Events Office capabilities
- User management (block/unblock users)
- Content moderation (delete comments)
- View system-wide analytics
- Access to all reports and data
- System configuration
Access Level: External Partner
Capabilities:
- Apply for bazaar participation
- Request booth reservations
- Upload required documents (tax card, IDs, logo)
- Pay participation fees
- Apply for GUC loyalty program
- Manage booth details and promotions
- Cancel participation requests
http://localhost:5001/api
Most endpoints require JWT authentication. Include the token in the Authorization header:
Authorization: Bearer <your_jwt_token>
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /users/register |
Register new user | No |
| POST | /users/login |
User login | No |
| GET | /users/verify-email/:token |
Verify email | No |
| POST | /users/forgot-password |
Request password reset | No |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /events |
Get all events | Yes |
| GET | /events/:id |
Get event by ID | Yes |
| POST | /events |
Create event | Yes (Events Office) |
| PUT | /events/:id |
Update event | Yes (Events Office) |
| DELETE | /events/:id |
Delete event | Yes (Events Office) |
| GET | /events/filter |
Filter events | Yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /events/workshop |
Submit workshop | Yes (Professor) |
| PUT | /events/workshop/:id/status |
Update status | Yes (Events Office) |
| GET | /events/workshops/pending |
Get pending workshops | Yes (Events Office) |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /registrations |
Register for event | Yes |
| GET | /registrations/user/:userId |
Get user registrations | Yes |
| DELETE | /registrations/:id |
Cancel registration | Yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /payments/create-intent |
Create payment intent | Yes |
| POST | /payments/confirm |
Confirm payment | Yes |
| GET | /wallet/balance |
Get wallet balance | Yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /vendors/apply |
Apply as vendor | Yes |
| PUT | /vendors/:id |
Update vendor info | Yes |
| POST | /vendors/booth-request |
Request booth | Yes (Vendor) |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /courts/available |
Get available slots | Yes |
| POST | /courts/reserve |
Reserve court | Yes |
| DELETE | /courts/:id |
Cancel reservation | Yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /gymsessions |
Get all sessions | Yes |
| POST | /gymsessions |
Create session | Yes (Events Office) |
| PUT | /gymsessions/:id |
Update session | Yes (Events Office) |
| DELETE | /gymsessions/:id |
Cancel session | Yes (Events Office) |
For complete API documentation with request/response examples, see API_DOCS.md (to be created).
Hat-Ya-Seedy-El-Computer/
β
βββ backend/
β βββ src/
β β βββ config/
β β β βββ db.js # MongoDB connection
β β β
β β βββ controllers/
β β β βββ eventController.js # Event CRUD operations
β β β βββ userController.js # User management
β β β βββ vendorController.js # Vendor operations
β β β βββ paymentController.js # Payment processing
β β β βββ registrationController.js # Event registrations
β β β βββ notificationController.js # Notifications
β β β βββ gymSessionController.js # Gym management
β β β βββ courtReservationController.js # Court bookings
β β β βββ pollController.js # Vendor polls
β β β βββ walletController.js # Wallet operations
β β β βββ analyticsController.js # Reports & analytics
β β β
β β βββ models/ # 22 Mongoose schemas
β β β βββ User.js # User model
β β β βββ Event.js # Base event model
β β β βββ Workshop.js # Workshop model
β β β βββ Conference.js # Conference model
β β β βββ Trip.js # Trip model
β β β βββ Bazaar.js # Bazaar model
β β β βββ Booth.js # Booth model
β β β βββ GymSession.js # Gym session model
β β β βββ CourtReservation.js # Court reservation model
β β β βββ Registration.js # Event registration model
β β β βββ Payment.js # Payment model
β β β βββ Wallet.js # Wallet model
β β β βββ Transaction.js # Transaction model
β β β βββ Vendor.js # Vendor model
β β β βββ VendorRequest.js # Vendor application model
β β β βββ Notification.js # Notification model
β β β βββ Comment.js # Comment model
β β β βββ Rating.js # Rating model
β β β βββ Poll.js # Poll model
β β β βββ LoyaltyApplication.js # Loyalty program application
β β β βββ LoyaltyPartner.js # Loyalty partner model
β β β
β β βββ routes/ # API route definitions
β β β βββ userRoutes.js
β β β βββ eventRoutes.js
β β β βββ vendorRoutes.js
β β β βββ paymentRoutes.js
β β β βββ registrationRoutes.js
β β β βββ notificationRoutes.js
β β β βββ gymSessionRoutes.js
β β β βββ courtRoutes.js
β β β βββ pollRoutes.js
β β β βββ walletRoutes.js
β β β βββ analyticsRoutes.js
β β β
β β βββ middlewares/
β β β βββ authMiddleware.js # JWT authentication
β β β βββ uploadMiddleware.js # File upload handling
β β β
β β βββ validation/
β β β βββ signupValidationSchema.js
β β β βββ adminCreationSchema.js
β β β βββ facultyApprovalSchema.js
β β β βββ vendorValidation.js
β β β
β β βββ utils/
β β β βββ sendEmail.js # Email utility
β β β βββ stripe.js # Stripe configuration
β β β βββ scheduler.js # Cron jobs
β β β
β β βββ server.js # Application entry point
β β
β βββ uploads/ # Uploaded files storage
β βββ .env # Environment variables (DO NOT COMMIT)
β βββ .env.example # Environment template
β βββ package.json # Backend dependencies
β βββ .gitignore
β
βββ frontend/
β βββ public/ # Static assets
β β
β βββ src/
β β βββ features/ # Feature-based modules
β β β βββ admin/ # Admin components
β β β βββ auth/ # Authentication
β β β βββ student/ # Student features
β β β βββ professor/ # Professor features
β β β βββ staffTA/ # Staff/TA features
β β β βββ vendor/ # Vendor features
β β β βββ eventOffice/ # Events Office features
β β β βββ gym/ # Gym management
β β β βββ polls/ # Polling system
β β β
β β βββ api/ # API service layer
β β β βββ axiosInstance.js # Axios configuration
β β β βββ eventApi.js # Event API calls
β β β βββ userApi.js # User API calls
β β β βββ vendorApi.js # Vendor API calls
β β β βββ registrationApi.js # Registration API calls
β β β βββ gymApi.js # Gym API calls
β β β βββ adminApi.js # Admin API calls
β β β βββ notificationApi.js # Notification API calls
β β β βββ pollApi.js # Poll API calls
β β β βββ courtsApi.js # Court API calls
β β β
β β βββ routes/ # Route configurations
β β β βββ AppRoutes.jsx # Main router
β β β βββ AdminRoutes.jsx # Admin routes
β β β βββ StudentRoutes.jsx # Student routes
β β β βββ ProfessorRoutes.jsx # Professor routes
β β β βββ StaffTARoutes.jsx # Staff/TA routes
β β β βββ VendorRoutes.jsx # Vendor routes
β β β βββ eventsOfficeRoutes.jsx # Events Office routes
β β β βββ gymRoutes.jsx # Gym routes
β β β
β β βββ context/ # React Context API
β β β βββ AuthContext.jsx # Authentication context
β β β βββ NotificationContext.jsx # Notification context
β β β
β β βββ components/ # Shared components
β β β βββ common/ # Reusable UI components
β β β βββ layout/ # Layout components
β β β βββ forms/ # Form components
β β β
β β βββ hooks/ # Custom React hooks
β β β
β β βββ utils/ # Utility functions
β β β
β β βββ assets/ # Images, fonts, etc.
β β β
β β βββ App.jsx # Root component
β β βββ main.jsx # Application entry
β β βββ index.css # Global styles
β β
β βββ dist/ # Build output
β βββ index.html # HTML template
β βββ vite.config.js # Vite configuration
β βββ tailwind.config.js # Tailwind CSS config
β βββ postcss.config.js # PostCSS config
β βββ eslint.config.js # ESLint configuration
β βββ package.json # Frontend dependencies
β βββ .env # Frontend env vars (DO NOT COMMIT)
β
βββ .git/ # Git repository
βββ .gitignore # Git ignore rules
βββ README.md # This file
βββ LICENSE # License file
{
_id: ObjectId,
name: String,
email: String (unique),
password: String (hashed),
role: Enum ['student', 'staff', 'ta', 'professor', 'eventsOffice', 'admin', 'vendor'],
isVerified: Boolean,
isBlocked: Boolean,
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
type: Enum ['workshop', 'trip', 'bazaar', 'conference', 'booth'],
title: String,
description: String,
location: String,
startDate: Date,
endDate: Date,
capacity: Number,
remainingSpots: Number,
price: Number,
restrictions: [String], // User roles
status: Enum ['active', 'archived', 'cancelled'],
organizerId: ObjectId (ref: User),
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
eventId: ObjectId (ref: Event),
userId: ObjectId (ref: User),
paymentStatus: Enum ['pending', 'paid', 'refunded'],
paymentMethod: Enum ['stripe', 'wallet'],
attendanceStatus: Enum ['registered', 'attended', 'absent'],
registrationDate: Date
}{
_id: ObjectId,
userId: ObjectId (ref: User),
amount: Number,
type: Enum ['event_registration', 'vendor_fee', 'court_reservation'],
status: Enum ['pending', 'completed', 'failed', 'refunded'],
stripePaymentId: String,
createdAt: Date
}{
_id: ObjectId,
userId: ObjectId (ref: User),
balance: Number,
transactions: [{
amount: Number,
type: Enum ['credit', 'debit'],
description: String,
date: Date
}]
}For complete schema documentation, see DATABASE.md (to be created).
- User authentication and authorization
- Event management (CRUD operations)
- Workshop submission and approval workflow
- Payment integration (Stripe + Wallet)
- Email notification system
- Court reservation system
- Vendor management
- Reporting and analytics
- Mobile app (React Native)
- Push notifications
- Advanced analytics dashboard
- Calendar integration (Google Calendar, iCal)
- Social media sharing
- Multi-language support (Arabic/English)
- AI-powered event recommendations
- Chatbot for event inquiries
- Video streaming for online workshops
- Blockchain-based attendance verification
- Integration with university systems (SIS)
- Mobile payment options (e-wallets)
- Performance optimization
- CDN integration for static assets
- Advanced caching strategies
- Load testing and scaling
- Microservices architecture migration
We welcome contributions from the community! Here's how you can help:
-
Fork the Repository
git clone https://github.com/Advanced-Computer-Lab-2025/Hat-Ya-Seedy-El-Computer.git cd Hat-Ya-Seedy-El-Computer -
Create a Feature Branch
git checkout -b feature/amazing-feature
-
Make Your Changes
- Write clean, maintainable code
- Follow the existing code style
- Add comments where necessary
- Update documentation if needed
-
Commit Your Changes
git add . git commit -m "Add: amazing new feature"
Commit Message Guidelines:
Add:for new featuresFix:for bug fixesUpdate:for updates to existing featuresRefactor:for code refactoringDocs:for documentation changes
-
Push to Your Fork
git push origin feature/amazing-feature
-
Open a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Provide a clear description of your changes
- Reference any related issues
- Use ES6+ features
- Use functional components with hooks
- Follow Airbnb JavaScript Style Guide
- Use meaningful variable and function names
- Keep functions small and focused
- Add JSDoc comments for complex functions
- Use Tailwind utility classes
- Follow mobile-first responsive design
- Maintain consistent spacing and colors
- Use custom classes sparingly
- Write clear, descriptive commit messages
- Keep commits atomic (one feature/fix per commit)
- Pull latest changes before creating PR
- Resolve conflicts before submitting PR
Found a bug? Please create an issue with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Your environment (OS, browser, Node version)
Have an idea? We'd love to hear it! Open an issue with:
- Clear description of the feature
- Use cases and benefits
- Potential implementation approach
This project is licensed under the ISC License.
ISC License
Copyright (c) 2025, Advanced Computer Lab - GUC
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
German University in Cairo - Advanced Computer Lab 2025
- Project Repository: GitHub
- Issue Tracker: GitHub Issues
- Email: acl2025@guc.edu.eg
For questions or support, please open an issue on GitHub or contact the development team.
- React - The amazing UI library
- Express - Fast, unopinionated web framework
- MongoDB - The database for modern applications
- Stripe - Payment processing platform
- Tailwind CSS - Utility-first CSS framework
- GUC community needs and feedback
- Modern event management platforms
- Educational institution requirements
- German University in Cairo for supporting this project
- Advanced Computer Lab instructors and TAs
- All contributors and testers
- Open source community
Made with β€οΈ by the Advanced Computer Lab Team