A comprehensive React Native mobile application for the Discord Event Management System (EvEi). This app provides students and club administrators with a seamless way to discover, register for, and manage events.
- Event Discovery: Browse and search for upcoming events
- Smart Filtering: Filter events by category, date, location, and more
- One-Click Registration: Simple event registration process
- QR Code Check-in: Quick attendance tracking via QR codes
- Personal Dashboard: View registered events and attendance history
- Real-time Updates: Get notified about event changes
- Event Management: Create, edit, and manage events
- Attendance Tracking: QR code generation and scanning for check-ins
- Registration Management: View and manage event registrations
- Analytics Dashboard: Event performance and attendance analytics
- Data Export: Export attendance data to Excel/CSV
- Host Settings: Comprehensive event management tools
The app includes:
- Welcome Screen: Onboarding for new users
- Authentication: Login and registration screens
- Home Screen: Event feed with upcoming events
- Explore Screen: Advanced search and filtering
- Event Details: Complete event information and registration
- Profile Screen: User dashboard and preferences
- Host Settings: Club admin management tools (for club admins only)
- Framework: React Native with Expo
- Navigation: React Navigation 6
- State Management: React Context API
- Backend: Firebase (Firestore, Auth, Storage)
- UI Components: Custom components with consistent design system
- Camera Integration: Expo Camera for QR scanning
- Icons: Expo Vector Icons
Before running the app, make sure you have:
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI (
npm install -g @expo/cli) - Expo Go app on your mobile device
- Firebase project with proper configuration
cd evei-mobile-fresh
npm install --legacy-peer-depsUpdate the Firebase configuration in src/config/firebase.js:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "your-sender-id",
appId: "your-app-id"
};Create a .env file in the root directory:
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your-project-idnpx expo startOr use the provided batch file:
./start-app.bat- Install Expo Go from App Store (iOS) or Google Play (Android)
- Scan the QR code displayed in the terminal
- The app will load on your device
evei-mobile-fresh/
βββ src/
β βββ components/ # Reusable UI components
β β βββ EventCard.js # Event display component
β β βββ QRCodeScanner.js # QR code scanning component
β βββ contexts/ # React Context providers
β β βββ AuthContext.js # Authentication state management
β β βββ EventsContext.js # Events state management
β βββ navigation/ # Navigation configuration
β β βββ AppNavigator.js # Main app navigation
β β βββ TabNavigator.js # Bottom tab navigation
β βββ screens/ # App screens
β β βββ auth/ # Authentication screens
β β β βββ WelcomeScreen.js
β β β βββ LoginScreen.js
β β β βββ RegisterScreen.js
β β βββ main/ # Main app screens
β β β βββ HomeScreen.js
β β β βββ ExploreScreen.js
β β β βββ ProfileScreen.js
β β β βββ HostSettingsScreen.js
β β βββ EventDetailsScreen.js
β βββ styles/ # Design system and themes
β β βββ theme.js # Colors, typography, spacing
β βββ config/ # Configuration files
β βββ firebase.js # Firebase configuration
βββ App.js # Main app component
βββ package.json # Dependencies and scripts
βββ README.md # This file
The app uses a consistent design system with:
- Primary: #007AFF (iOS Blue)
- Success: #34C759 (Green)
- Warning: #FF9500 (Orange)
- Error: #FF3B30 (Red)
- Background: #F2F2F7 (Light Gray)
- Headings: Bold, various sizes (28px, 22px, 18px)
- Body Text: Regular, 14px-16px
- Small Text: 12px for secondary information
- Cards: Rounded corners, subtle shadows
- Buttons: Primary, secondary, and text variants
- Inputs: Consistent styling with focus states
- Email/password authentication via Firebase Auth
- Role-based access (Student vs Club Admin)
- Automatic user profile creation
- Secure session management
- Real-time event synchronization
- Advanced search and filtering
- Category-based organization
- Registration management
- Dynamic QR code generation for events
- Camera-based QR scanning
- Offline scanning support
- Attendance tracking
- Tab-based navigation for main screens
- Stack navigation for detailed views
- Role-based tab visibility
- Smooth transitions
- Onboarding: Welcome β Register/Login
- Discovery: Home β Browse Events β Event Details
- Registration: Event Details β Register β Confirmation
- Attendance: QR Scan β Check-in Confirmation
- Profile: View registered events and history
- Authentication: Login with admin credentials
- Management: Host Settings β Create/Manage Events
- Tracking: QR Scanner β Record Attendance
- Analytics: View registration and attendance data
- Export: Download attendance reports
- Authentication: Secure Firebase Auth integration
- Data Validation: Input sanitization and validation
- Role-based Access: Different UI based on user roles
- Secure Storage: Firebase security rules
- Error Handling: Graceful error management
- Lazy Loading: Components loaded on demand
- Image Optimization: Compressed images with caching
- Real-time Updates: Efficient Firestore listeners
- Offline Support: Core features work without internet
- Bundle Optimization: Code splitting and tree shaking
The app includes:
- Component Testing: Individual component tests
- Integration Testing: Screen flow tests
- E2E Testing: Complete user journey tests
- Device Testing: Multiple device and OS testing
- Use Expo Go for development testing
- Hot reloading for rapid development
- Debug tools and error tracking
- Build standalone apps for iOS and Android
- App Store and Google Play deployment
- Over-the-air updates via Expo
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Metro bundler errors: Clear cache with
npx expo start -c - Firebase connection: Check your Firebase configuration
- QR scanner not working: Ensure camera permissions are granted
- App not loading: Check network connection and Expo Go version
- Check the Expo documentation
- Review React Navigation docs
- Firebase documentation
For support and questions:
- Create an issue in the repository
- Check existing documentation
- Contact the development team
EvEi Mobile App - Making event management simple and efficient! π