A comprehensive mobile application for university Student Week where societies (ACM, CLS, CSS) can create and manage events, and students can browse, register, and provide feedback.
Demo: https://igit.me/UniWeek
- Browse all university events
- Filter by society (ACM/CLS/CSS), date, and category
- Search events by name
- One-click registration with capacity management
- View registered events ("My Events")
- Rate and review events after attendance
- Push notifications for upcoming events
- Create, edit, and delete events
- View event registrations and analytics
- Send custom notifications to registered students
- Track participation rates and feedback
- View charts for registration trends
- Framework: Expo React Native + TypeScript
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- State Management: React Context API
- Navigation: React Navigation v6
- UI Components: React Native Paper
- Charts: react-native-chart-kit
- Notifications: expo-notifications
- Calendar: expo-calendar
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - Supabase account (free tier available)
cd "e:\\University\\VISIO SPARK"
npm install- Go to https://supabase.com and create a new project
- Once created, go to Settings > API
- Copy your Project URL and anon/public key
- Navigate to
src/services/ - Copy
supabase-config.example.tstosupabase-config.ts - Fill in your Supabase credentials:
export const SUPABASE_URL = 'https://your-project.supabase.co';
export const SUPABASE_ANON_KEY = 'your-anon-key-here';- Go to your Supabase project dashboard
- Click on SQL Editor
- Copy the SQL from
supabase-config.example.tscomments - Run the SQL to create all tables and policies
This will create:
userstable (student and society profiles)eventstable (all event information)registrationstable (event registrations with ratings)notificationstable (custom notifications)- Row Level Security policies
If using a physical device, install the Expo Go app:
npm startThis will open Expo DevTools. You can then:
- Press
ato open on Android emulator - Press
ito open on iOS simulator - Scan QR code with Expo Go app on your phone
# Android
npm run android
# iOS
npm run ios
# Web
npm run webuniweek/
βββ src/
β βββ components/
β β βββ common/ # Reusable components (Button, Card, Input)
β β βββ events/ # Event-specific components
β β βββ analytics/ # Chart and analytics components
β βββ context/
β β βββ AuthContext.tsx # Authentication state management
β β βββ EventContext.tsx # Event state management
β βββ navigation/
β β βββ AppNavigator.tsx # Root navigator
β β βββ AuthNavigator.tsx # Login/Signup flow
β β βββ StudentNavigator.tsx # Student tab navigation
β β βββ SocietyNavigator.tsx # Society tab navigation
β βββ screens/
β β βββ auth/ # Login and Signup screens
β β βββ student/ # Student-specific screens
β β βββ society/ # Society-specific screens
β β βββ shared/ # Shared screens (Profile, Feedback)
β βββ services/
β β βββ supabase.ts # Supabase client setup
β β βββ auth.ts # Authentication services
β β βββ events.ts # Event CRUD operations
β β βββ notifications.ts # Push notification handling
β β βββ ai.ts # AI recommendations
β βββ types/
β β βββ index.ts # TypeScript interfaces
β βββ utils/
β βββ constants.ts # App constants and theme
β βββ helpers.ts # Utility functions
βββ App.tsx # App entry point
βββ package.json
βββ README.md
- Signup: Users create an account selecting role (Student/Society)
- Society users also select their society (ACM/CLS/CSS)
- Login: Email/password authentication via Supabase Auth
- Navigation: Users are routed to appropriate dashboard based on role
id, email, name, role (student|society),
society_type (ACM|CLS|CSS), registered_events[], created_atid, title, description, date, time, venue, society,
category, capacity, registered_students[], created_by,
created_at, updated_atid, user_id, event_id, timestamp, attended,
rating (1-5), feedback-
Society Colors:
- ACM: Blue (#2196F3)
- CLS: Green (#4CAF50)
- CSS: Orange (#FF9800)
-
Theme: Material Design principles with React Native Paper
- Browse Events - Filter and search all events
- Event Details - View full event info and register
- My Events - View registered events
- Feedback - Rate and review attended events
- My Events - View and manage created events
- Create/Edit Event - Event management forms
- Event Analytics - Registration stats and feedback
- Send Notifications - Notify registered students
- Automatic reminders 24 hours before registered events
- Custom notifications from societies to registered students
- Push notification permissions requested on first launch
The app includes basic AI-powered features:
- Event Recommendations: Suggests events based on past registrations
- Category Auto-Suggest: Suggests categories based on event title/description
- Sentiment Analysis: Analyzes feedback for positive/negative sentiment
- Verify your
supabase-config.tshas correct credentials - Check that Row Level Security policies are properly set up
- Ensure database tables were created successfully
# Clear cache and reinstall
rm -rf node_modules
npm install
expo start -c- Run
npm installto ensure all type definitions are installed - Check
tsconfig.jsonis properly configured
This project is created for educational purposes as part of a university course.
Developed for University Student Week Event Management
- Install dependencies:
npm install - Set up Supabase project and configure
supabase-config.ts - Run database migrations (SQL in config file)
- Start development server:
npm start - Test with Expo Go on your device or emulator
For questions or issues, refer to: