Skip to content

AbhinayDamera/EventFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… EventFlow - Smart Campus Event Management

A comprehensive mobile application for managing campus events with AI-powered features, QR-based attendance tracking, and real-time analytics.


πŸ“– Table of Contents


✨ Features

πŸ‘₯ For Students

  • πŸ“± 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

πŸ‘” For Administrators

  • ✏️ 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)

πŸ€– AI Features

  • 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

πŸ› οΈ Tech Stack

Frontend

  • React Native - Mobile framework
  • Expo - Development platform
  • React Navigation - Navigation
  • React Native QR Code - QR generation
  • Expo Camera - QR scanning

Backend & Database

  • Firebase Authentication - User authentication
  • Cloud Firestore - Real-time database
  • Firebase Storage - File storage
  • AsyncStorage - Local persistence

AI & APIs

  • OpenAI GPT-3.5 Turbo - Event description generation
  • Stability AI (Stable Diffusion XL) - Poster design generation

Development Tools

  • Expo CLI - Development server
  • EAS Build - Cloud builds
  • Git - Version control

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Mobile Application             β”‚
β”‚         (React Native + Expo)           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚           β”‚           β”‚
        β–Ό           β–Ό           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Firebase β”‚  β”‚ OpenAI   β”‚  β”‚Stability β”‚
β”‚ Services β”‚  β”‚   API    β”‚  β”‚   AI     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚             β”‚              β”‚
     β”œβ”€ Auth       β”œβ”€ GPT-3.5    └─ SD-XL
     β”œβ”€ Firestore  └─ Text Gen      └─ Image Gen
     └─ Storage

πŸ“¦ Installation

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo Go app (for testing)
  • Git

Step 1: Clone Repository

git clone https://github.com/yourusername/eventflow.git
cd eventflow

Step 2: Install Dependencies

npm install

Step 3: Configure Environment

Create your configuration files:

# Add Firebase config
# Add API keys (see Configuration section)

Step 4: Run Development Server

npx expo start

Step 5: Test on Device

  • Install Expo Go from Play Store/App Store
  • Scan QR code from terminal
  • App will load on your device

βš™οΈ Configuration

Firebase Setup

  1. Create Firebase Project

    • Go to Firebase Console
    • Create new project
    • Enable Authentication (Email/Password)
    • Create Firestore database
  2. Download Configuration

    • Download google-services.json (Android)
    • Place in project root
  3. 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"
    };

Admin Access

Add admin emails in:

// src/screens/AdminLoginScreen.js
const ADMIN_EMAILS = [
  "admin1@example.com",
  "admin2@example.com"
];

πŸ”‘ API Keys

OpenAI API (Event Description Generator)

  1. Get API key from OpenAI Platform
  2. Update src/services/openaiService.js:
    const OPENAI_API_KEY = "sk-proj-YOUR_KEY_HERE";
  3. Free tier: $5 credit for new users
  4. Cost: ~$0.001 per description

Stability AI (Poster Generator)

  1. Get API key from Stability AI
  2. Update src/services/stabilityAIService.js:
    const STABILITY_API_KEY = "sk-YOUR_KEY_HERE";
  3. Free tier: 25 credits (~25 posters)
  4. Cost: ~$0.01 per poster

πŸš€ Usage

For Students

  1. Sign Up / Login

    • Create account with email/password
    • Or login if you already have an account
  2. Browse Events

    • View all upcoming events
    • See event details (date, time, venue)
    • Check available slots
  3. Register for Event

    • Tap "Register Now"
    • Fill registration form
    • Get unique QR code
  4. Attend Event

    • Show QR code to admin
    • Get checked in
    • Track attendance history

For Administrators

  1. Admin Login

    • Tap "πŸ‘‘ Admin Access"
    • Login with admin credentials
  2. Create Event

    • Fill event details
    • Use AI to generate description
    • Generate poster with AI
    • Publish event
  3. Manage Registrations

    • View all events
    • See registration count
    • Scan QR codes for check-in
  4. Track Analytics

    • View attendance stats
    • Analyze event performance
    • Export reports

πŸ€– AI Features

Event Description Generator

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"
);

Poster Design Generator

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..."
});

πŸ“± Building APK

Development Build

# 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

Production Build

# Build for Play Store
eas build -p android --profile production

Build takes: ~10-15 minutes Output: Downloadable APK/AAB link


πŸ“‚ Project Structure

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

πŸ—„οΈ Database Schema

Collections

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"
}

πŸ”’ Security Features

  • βœ… 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

πŸ› Troubleshooting

Common Issues

Issue: "Unable to resolve @env"

# Solution
npm install @react-native-async-storage/async-storage
npx expo start -c

Issue: "OpenAI API Error: Incorrect API key"

# Solution
1. Get new API key from platform.openai.com
2. Update src/services/openaiService.js
3. Restart app

Issue: QR Scanner not working

# Solution
1. Grant camera permissions
2. Ensure good lighting
3. Hold phone steady

πŸ“Š Performance

  • 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

🚧 Roadmap

Version 1.1 (Planned)

  • Push notifications for event reminders
  • Export attendance reports (PDF/CSV)
  • Multi-language support
  • Dark/Light theme toggle
  • Event categories with filters

Version 2.0 (Future)

  • Social features (comments, ratings)
  • Calendar integration
  • Payment integration for paid events
  • Live streaming integration
  • Advanced analytics dashboard

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

Code Style

  • Use ES6+ features
  • Follow React best practices
  • Add comments for complex logic
  • Test before submitting PR

πŸ‘₯ Authors


πŸ™ Acknowledgments

  • Expo Team - Amazing development platform
  • Firebase - Backend infrastructure
  • OpenAI - AI-powered descriptions
  • Stability AI - Poster generation
  • React Native Community - Excellent libraries

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“ž Support


🌟 Show Your Support

Give a ⭐️ if this project helped you!


Made with ❀️ for Campus Events

Back to Top ↑

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors