A comprehensive mobile application for managing campus events with AI-powered features, QR-based attendance tracking, and real-time analytics.
- Features
- Screenshots
- Tech Stack
- Architecture
- Installation
- Configuration
- Usage
- AI Features
- API Keys
- Building APK
- Project Structure
- Contributing
- License
- π± Browse upcoming campus events
- π« Register for events with one tap
- π View registration history
- π Unique QR code generation for each registration
- β Real-time event updates
- π Beautiful dark-themed UI with glassmorphism design
- π΄ Offline support with data persistence
- βοΈ Create and manage events
- π€ AI-powered event description generator (OpenAI GPT-3.5)
- π¨ AI-powered poster design generator (Stability AI)
- π· QR code scanning for attendance verification
- π Attendance analytics and insights
- π Secure admin authentication
- π₯ Real-time registration tracking
- ποΈ Event management (edit/delete)
- Smart Description Generator: Generate compelling event descriptions from keywords using OpenAI
- Automated Poster Design: Create professional event posters with Stability AI
- Intelligent Analytics: Track attendance patterns and predict turnout
- React Native - Mobile framework
- Expo - Development platform
- React Navigation - Navigation
- React Native QR Code - QR generation
- Expo Camera - QR scanning
- Firebase Authentication - User authentication
- Cloud Firestore - Real-time database
- Firebase Storage - File storage
- AsyncStorage - Local persistence
- OpenAI GPT-3.5 Turbo - Event description generation
- Stability AI (Stable Diffusion XL) - Poster design generation
- Expo CLI - Development server
- EAS Build - Cloud builds
- Git - Version control
βββββββββββββββββββββββββββββββββββββββββββ
β Mobile Application β
β (React Native + Expo) β
βββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββΌββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ
β Firebase β β OpenAI β βStability β
β Services β β API β β AI β
ββββββββββββ ββββββββββββ ββββββββββββ
β β β
ββ Auth ββ GPT-3.5 ββ SD-XL
ββ Firestore ββ Text Gen ββ Image Gen
ββ Storage
- Node.js (v18 or higher)
- npm or yarn
- Expo Go app (for testing)
- Git
git clone https://github.com/yourusername/eventflow.git
cd eventflownpm installCreate your configuration files:
# Add Firebase config
# Add API keys (see Configuration section)npx expo start- Install Expo Go from Play Store/App Store
- Scan QR code from terminal
- App will load on your device
-
Create Firebase Project
- Go to Firebase Console
- Create new project
- Enable Authentication (Email/Password)
- Create Firestore database
-
Download Configuration
- Download
google-services.json(Android) - Place in project root
- Download
-
Update Firebase Config
// src/firebase/firebaseConfig.js const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_SENDER_ID", appId: "YOUR_APP_ID" };
Add admin emails in:
// src/screens/AdminLoginScreen.js
const ADMIN_EMAILS = [
"admin1@example.com",
"admin2@example.com"
];- Get API key from OpenAI Platform
- Update
src/services/openaiService.js:const OPENAI_API_KEY = "sk-proj-YOUR_KEY_HERE";
- Free tier: $5 credit for new users
- Cost: ~$0.001 per description
- Get API key from Stability AI
- Update
src/services/stabilityAIService.js:const STABILITY_API_KEY = "sk-YOUR_KEY_HERE";
- Free tier: 25 credits (~25 posters)
- Cost: ~$0.01 per poster
-
Sign Up / Login
- Create account with email/password
- Or login if you already have an account
-
Browse Events
- View all upcoming events
- See event details (date, time, venue)
- Check available slots
-
Register for Event
- Tap "Register Now"
- Fill registration form
- Get unique QR code
-
Attend Event
- Show QR code to admin
- Get checked in
- Track attendance history
-
Admin Login
- Tap "π Admin Access"
- Login with admin credentials
-
Create Event
- Fill event details
- Use AI to generate description
- Generate poster with AI
- Publish event
-
Manage Registrations
- View all events
- See registration count
- Scan QR codes for check-in
-
Track Analytics
- View attendance stats
- Analyze event performance
- Export reports
Input: Keywords (e.g., "Python workshop, machine learning, beginners")
Output: Professional 100-150 word event description
Usage:
import { generateEventDescription } from './services/openaiService';
const description = await generateEventDescription(
"Python workshop, machine learning, beginners, hands-on"
);Input: Event details (title, category, description)
Output: High-quality 768x1344 poster design
Usage:
import { generatePosterDataURI } from './services/stabilityAIService';
const posterURI = await generatePosterDataURI({
title: "AI Workshop",
category: "Technical",
description: "Learn AI basics..."
});# Install EAS CLI
npm install -g eas-cli
# Login to Expo
eas login
# Configure build
eas build:configure
# Build APK
eas build -p android --profile preview# Build for Play Store
eas build -p android --profile productionBuild takes: ~10-15 minutes Output: Downloadable APK/AAB link
eventflow/
βββ assets/
β βββ images/
β βββ logo.png # App logo
βββ src/
β βββ screens/
β β βββ LoginScreen.js
β β βββ SignupScreen.js
β β βββ HomeScreen.js
β β βββ AdminLoginScreen.js
β β βββ AdminDashboard.js
β β βββ AdminCreateEventScreen.js
β β βββ ViewEventsScreen.js
β βββ services/
β β βββ openaiService.js # OpenAI integration
β β βββ stabilityAIService.js # Stability AI integration
β β βββ attendanceAnalytics.js # Analytics service
β βββ firebase/
β βββ firebaseConfig.js # Firebase setup
βββ App.js # Root component
βββ app.config.js # Expo configuration
βββ package.json # Dependencies
βββ google-services.json # Firebase Android config
βββ README.md # Documentation
users
{
email: string,
role: "student" | "admin",
approved: boolean,
createdAt: timestamp
}events
{
title: string,
clubName: string,
category: string,
description: string,
date: string,
startTime: string,
endTime: string,
venue: string,
maxParticipants: number,
registeredUsers: string[],
createdBy: string,
createdAt: timestamp,
status: "upcoming" | "ongoing" | "completed"
}registrations
{
registrationId: string,
uniqueToken: string,
userId: string,
eventId: string,
fullName: string,
studentId: string,
phone: string,
department: string,
verificationCode: string,
checkedIn: boolean,
checkedInAt: timestamp,
status: "confirmed" | "cancelled"
}- β Firebase Authentication
- β Role-based access control (Admin/Student)
- β Unique QR code tokens (prevent duplication)
- β Token verification on check-in
- β Secure API key management
- β Input validation and sanitization
- β Protected admin routes
Issue: "Unable to resolve @env"
# Solution
npm install @react-native-async-storage/async-storage
npx expo start -cIssue: "OpenAI API Error: Incorrect API key"
# Solution
1. Get new API key from platform.openai.com
2. Update src/services/openaiService.js
3. Restart appIssue: QR Scanner not working
# Solution
1. Grant camera permissions
2. Ensure good lighting
3. Hold phone steady- App Size: ~45 MB (APK)
- Initial Load: <2 seconds
- QR Generation: Instant
- AI Description: 2-3 seconds
- AI Poster: 10-15 seconds
- Offline Support: β Yes
- Push notifications for event reminders
- Export attendance reports (PDF/CSV)
- Multi-language support
- Dark/Light theme toggle
- Event categories with filters
- Social features (comments, ratings)
- Calendar integration
- Payment integration for paid events
- Live streaming integration
- Advanced analytics dashboard
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
- Use ES6+ features
- Follow React best practices
- Add comments for complex logic
- Test before submitting PR
- Your Name - Initial work - @yourusername
- Expo Team - Amazing development platform
- Firebase - Backend infrastructure
- OpenAI - AI-powered descriptions
- Stability AI - Poster generation
- React Native Community - Excellent libraries
This project is licensed under the MIT License - see the LICENSE file for details.
- Email: support@eventflow.app
- Issues: GitHub Issues
- Documentation: Wiki
Give a βοΈ if this project helped you!
Made with β€οΈ for Campus Events