Skip to content

ScriptSorcerer23/UniWeek

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UniWeek - University Event Management App

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

πŸš€ Features

For Students

  • 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

For Society Handlers

  • 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

πŸ›  Tech Stack

  • 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

πŸ“‹ Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • Expo CLI (npm install -g expo-cli)
  • Supabase account (free tier available)

πŸ”§ Installation

1. Clone and Install Dependencies

cd "e:\\University\\VISIO SPARK"
npm install

2. Supabase Setup

  1. Go to https://supabase.com and create a new project
  2. Once created, go to Settings > API
  3. Copy your Project URL and anon/public key
  4. Navigate to src/services/
  5. Copy supabase-config.example.ts to supabase-config.ts
  6. Fill in your Supabase credentials:
export const SUPABASE_URL = 'https://your-project.supabase.co';
export const SUPABASE_ANON_KEY = 'your-anon-key-here';

3. Database Setup

  1. Go to your Supabase project dashboard
  2. Click on SQL Editor
  3. Copy the SQL from supabase-config.example.ts comments
  4. Run the SQL to create all tables and policies

This will create:

  • users table (student and society profiles)
  • events table (all event information)
  • registrations table (event registrations with ratings)
  • notifications table (custom notifications)
  • Row Level Security policies

4. Install Additional Dependencies

If using a physical device, install the Expo Go app:

πŸš€ Running the App

Development Mode

npm start

This will open Expo DevTools. You can then:

  • Press a to open on Android emulator
  • Press i to open on iOS simulator
  • Scan QR code with Expo Go app on your phone

Platform-Specific

# Android
npm run android

# iOS
npm run ios

# Web
npm run web

πŸ“ Project Structure

uniweek/
β”œβ”€β”€ 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

πŸ” Authentication Flow

  1. Signup: Users create an account selecting role (Student/Society)
    • Society users also select their society (ACM/CLS/CSS)
  2. Login: Email/password authentication via Supabase Auth
  3. Navigation: Users are routed to appropriate dashboard based on role

πŸ’Ύ Database Schema

Users

id, email, name, role (student|society), 
society_type (ACM|CLS|CSS), registered_events[], created_at

Events

id, title, description, date, time, venue, society,
category, capacity, registered_students[], created_by, 
created_at, updated_at

Registrations

id, user_id, event_id, timestamp, attended, 
rating (1-5), feedback

🎨 Design System

  • Society Colors:

    • ACM: Blue (#2196F3)
    • CLS: Green (#4CAF50)
    • CSS: Orange (#FF9800)
  • Theme: Material Design principles with React Native Paper

πŸ“± Key Screens

Student Flow

  1. Browse Events - Filter and search all events
  2. Event Details - View full event info and register
  3. My Events - View registered events
  4. Feedback - Rate and review attended events

Society Flow

  1. My Events - View and manage created events
  2. Create/Edit Event - Event management forms
  3. Event Analytics - Registration stats and feedback
  4. Send Notifications - Notify registered students

πŸ”” Notifications

  • Automatic reminders 24 hours before registered events
  • Custom notifications from societies to registered students
  • Push notification permissions requested on first launch

πŸ€– AI Features

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

πŸ› Troubleshooting

Supabase Connection Issues

  • Verify your supabase-config.ts has correct credentials
  • Check that Row Level Security policies are properly set up
  • Ensure database tables were created successfully

React Native Issues

# Clear cache and reinstall
rm -rf node_modules
npm install
expo start -c

TypeScript Errors

  • Run npm install to ensure all type definitions are installed
  • Check tsconfig.json is properly configured

πŸ“„ License

This project is created for educational purposes as part of a university course.

πŸ‘₯ Team

Developed for University Student Week Event Management


πŸ“ Next Steps

  1. Install dependencies: npm install
  2. Set up Supabase project and configure supabase-config.ts
  3. Run database migrations (SQL in config file)
  4. Start development server: npm start
  5. Test with Expo Go on your device or emulator

For questions or issues, refer to:

About

University event management app built with React Native & Supabase. Students browse/register for events, societies manage events & track analytics. AI-powered recommendations & sentiment analysis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors