Skip to content

roshankumar0036singh/Uni-Event

UniEvent Banner

🎓 UniEvent

University Event Management Platform

Typing SVG

WebApp Client App Server Functions Documentation

CI Status Stars Forks Open Issues License Commits


📋 Table of Contents


🌟 Overview

UniEvent is a comprehensive, open-source event management platform built specifically for universities and educational institutions. It bridges the gap between event organizers and students — making campus life more connected, organized, and engaging.

Whether it's a department seminar, cultural fest, hackathon, or club meetup — UniEvent brings it all under one roof.

Why UniEvent?

Problem UniEvent's Solution
Events scattered across WhatsApp, notice boards, emails One centralized platform for all campus events
Manual attendance tracking via paper QR Code-based contactless check-in
No visibility into event participation data Analytics dashboard with branch & year-wise insights
Poor student engagement with campus activities Gamification — points, badges, and leaderboards
Difficult for clubs to manage registrations Custom forms, payment integration & dashboards

Key Highlights

  • Built for Campus Life — Tailored for students, clubs, and administrators
  • Data-Driven — Rich analytics for every event organizer
  • Firebase-Powered — Enterprise-grade scalability and real-time sync
  • Cross-Platform — Native iOS, Android, and Progressive Web App
  • Open Source — MIT licensed, community contributions welcome

✨ Features

For Students

Feature Description
Event Discovery Browse and search events filtered by department, year, and interests
One-Tap Registration Quick RSVP with automatic calendar integration
Smart Notifications Push notifications and timely reminders before events
QR Code Check-in Contactless, instant attendance tracking
Gamification Earn reputation points and compete on campus leaderboards
Saved Events Bookmark events you're interested in for quick access later
Event Chat Real-time discussion space with fellow attendees

For Event Organizers

Feature Description
Event Creation Rich media support with precise audience targeting
Live Attendance Dashboard Real-time QR code scanning and attendee tracking
Analytics Suite Branch-wise, year-wise, and time-based participation insights
Custom Registration Forms Dynamic forms with validation tailored to each event
Payment Integration Built-in ticketing and payment support for paid events
Google Meet Integration Auto-generate meeting links for virtual or hybrid events
Reputation Tracking Gamified scoring system based on event success metrics

For Administrators

Feature Description
Control Panel Platform-wide event moderation and oversight tools
Role Management Assign admin and club privileges via Firebase Cloud Functions
Event Moderation Suspend or reinstate events that violate community guidelines
Platform Analytics Track engagement, user growth, and event activity metrics
Bulk Operations Efficiently manage multiple events simultaneously

🛠️ Tech Stack

Frontend

Technology Purpose
React Native + Expo Cross-platform mobile development (iOS & Android)
React Navigation App routing and screen navigation
Firebase SDK Auth, Firestore, Storage & Cloud Functions integration
Expo Notifications Push notification system
React Native Reanimated Fluid animations and gesture-based interactions

Backend

Technology Purpose
Firebase Cloud Functions Serverless TypeScript backend logic
Firebase Admin SDK Privileged server-side operations
Node.js 18+ Runtime environment for cloud functions
EmailJS & Resend Automated transactional email delivery
PDF-lib Dynamic certificate and document generation

DevOps & Quality

Tool Purpose
GitHub Actions CI/CD pipeline automation
ESLint + Prettier Code style enforcement and formatting
Jest Unit and integration testing
Firebase Emulators Local development environment
Dependabot Automated dependency security updates
CodeRabbit AI Automated AI-assisted code reviews

📁 Project Structure

Uni-Event/
├── app/                          # React Native + Expo frontend
│   ├── assets/                   # Images, fonts, icons
│   ├── components/               # Reusable UI components
│   ├── screens/                  # App screens (Home, Events, Profile, etc.)
│   ├── navigation/               # React Navigation config
│   ├── services/                 # Firebase service wrappers
│   ├── hooks/                    # Custom React hooks
│   ├── utils/                    # Helper functions
│   ├── .env.example              # Environment variable template
│   └── package.json
│
├── cloud-functions/              # Firebase Cloud Functions (TypeScript)
│   ├── src/
│   │   ├── index.ts              # Function entry points
│   │   ├── auth/                 # Auth-related functions
│   │   ├── events/               # Event management functions
│   │   └── notifications/        # Push & email notification logic
│   └── package.json
│
├── docs/                         # Project documentation
│   ├── SETUP.md                  # Full setup guide
│   ├── ENV_SETUP.md              # Environment variables & API key guide
│   ├── FIREBASE_SETUP.md         # Firebase & emulator config
│   └── Architecture.md           # System architecture overview
│
├── .github/
│   ├── workflows/                # GitHub Actions CI/CD pipelines
│   └── ISSUE_TEMPLATE/           # Bug report & feature request templates
│
├── CONTRIBUTING.md               # Contribution guidelines
├── CODE_OF_CONDUCT.md            # Community standards
└── LICENSE                       # MIT License

🚀 Quick Start

Prerequisites

Make sure you have the following installed before proceeding:

  • Node.js v18+ → Download
  • npm or yarn
  • Expo CLI: npm install -g expo-cli
  • Firebase CLI: npm install -g firebase-tools
  • Java 11+ (required for Firebase Emulators)

1. Clone the Repository

git clone https://github.com/roshankumar0036singh/Uni-Event.git
cd Uni-Event

2. Install Dependencies

# Install frontend dependencies
cd app
npm install
 
# Install cloud functions dependencies
cd ../cloud-functions
npm install

Configuration

Step 1 — Copy the Environment Template

cp app/.env.example app/.env

Step 2 — Fill in Your Credentials

Open app/.env and populate the required keys. The file contains three groups of variables:

Group Variables
Firebase Config FIREBASE_API_KEY, FIREBASE_AUTH_DOMAIN, FIREBASE_PROJECT_ID, FIREBASE_STORAGE_BUCKET, FIREBASE_MESSAGING_SENDER_ID, FIREBASE_APP_ID
Google OAuth GOOGLE_CLIENT_ID_ANDROID, GOOGLE_CLIENT_ID_IOS, GOOGLE_CLIENT_ID_WEB
Email Service (Optional) EMAILJS_SERVICE_ID, EMAILJS_TEMPLATE_ID, EMAILJS_PUBLIC_KEY

For a step-by-step guide on how to obtain each key from the respective platforms (Firebase Console, Google Cloud Console, EmailJS), refer to docs/ENV_SETUP.md.


💻 Running Locally

You'll need two terminals running simultaneously.

Terminal 1 — Start Firebase Emulators (Backend)

cd cloud-functions
npm run serve

This starts local emulators for Firestore, Auth, and Cloud Functions.

Terminal 2 — Start the Expo App (Frontend)

cd app
npm start

Then press the appropriate key in the terminal:

Key Platform
w Web (browser)
a Android (emulator or device)
i iOS (simulator)

Run Firestore security rule tests:

npm run test:rules

🧪 Testing

Run Firestore Security Rule Tests

cd app
npm run test:rules

Run Unit Tests

cd cloud-functions
npm test

Documentation

Setup & Configuration

Document Description
Setup Guide Full installation and configuration walkthrough
Environment Variables How to obtain and configure all required API keys
Firebase Setup Firebase project creation and emulator configuration

Architecture & Development

Document Description
Architecture System design, data flow, and architecture overview
Contributing Guide How to contribute code, docs, or bug reports
Code of Conduct Community standards and expectations

🤝 Contributing

We warmly welcome contributions from the community — whether you're a first-timer or a seasoned open-source developer. Bug fixes, new features, documentation improvements, and issue reports are all valuable.

Setting Up Your Fork

# Step 1: Fork the repository on GitHub
 
# Step 2: Clone your fork locally
git clone https://github.com/YOUR_USERNAME/Uni-Event.git
cd Uni-Event
 
# Step 3: Add the original repo as upstream
git remote add upstream https://github.com/roshankumar0036singh/Uni-Event.git
 
# Step 4: Verify remotes
git remote -v

Keeping Your Fork in Sync

# Fetch latest changes from the original repo
git fetch upstream
 
# Switch to your main branch
git checkout main
 
# Merge upstream changes into your local main
git merge upstream/main
 
# Push the updated main to your fork
git push origin main

Development Workflow

# Create a new branch for your feature or fix
git checkout -b feature/your-feature-name
 
# Make your changes, then stage and commit
git add .
git commit -m "feat: add your feature description"
 
# Push your branch to your fork
git push origin feature/your-feature-name
 
# Open a Pull Request on GitHub 🎉

Contribution Guidelines

  • Follow the existing code style (ESLint + Prettier enforced).
  • Write clear, descriptive commit messages.
  • Reference related issues in your PR description (e.g., Closes #42).
  • Add or update tests where applicable.
  • Read CONTRIBUTING.md before submitting a PR.

💖 Contributors

Thanks to all the amazing people who contribute to Uni-Event 🚀

Contributors



📄 License

This project is licensed under the MIT License — you're free to use, modify, and distribute it with attribution.

See the LICENSE file for full details.


🙏 Acknowledgments

UniEvent is built and maintained by contributors from the open-source community. Special thanks to everyone who has submitted issues, pull requests, or feedback to make this platform better.

Built with ❤️ using:


🆘 Support

If you run into issues or have questions:


**Empowering campus communities, one event at a time.**

⬆ Back to Top


About

UniEvent - Modern event management platform for universities. Built with React Native, Expo & Firebase. Features real-time attendance tracking, QR code check-ins, event analytics, push notifications, leaderboards, and role-based access control. Perfect for campus clubs and student organizations.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors