A cross-platform mobile application that combines the best of Reddit and Instagram, tailored specifically for university communities. HallPass enables students to connect, discuss courses, join clubs, rate professors, and engage with their campus community in a private, university-specific environment.
- University-branded feed with discussions
- Filter by topics, courses, professors, or organizations
- Create discussions with tags and associations
- Upvote (A) or Downvote (F) posts
- Sort by popularity or controversy
- ML-powered ranking system
- Browse and search courses
- Filter by enrolled courses or interests
- Rate professors on:
- Hardness
- Coursework
- Communication
- Enjoyment
- Access private course sessions (for enrolled students)
- Course-specific discussion boards
- Discover university clubs and organizations
- Club-specific pages and discussions
- Rate clubs on engagement, community, events, and overall experience
- Join and participate in club activities
- Private messaging between users
- Real-time conversations
- Message clubs and organizations
- Search for users, clubs, and courses
- Access associated discussion boards
- Quick navigation to profiles and details
- Beautiful ID card design with university branding
- Display courses, clubs, and discussion rankings
- Follow/unfollow system
- Public/private account settings
- Share profile via unique ID or share button
- Light/Dark mode (defaults to device preference)
- Instagram-like soft edge design with bubbles
- University color scheme integration
- Minimalistic yet informative UI
- Framework: React Native with Expo
- Language: TypeScript
- Navigation: React Navigation (Bottom Tabs + Stack)
- Backend: Firebase (Authentication, Firestore)
- Image Storage: AWS S3 (free tier: 5GB storage, 20K GET requests/month)
- State Management: React Context API
- ML Integration: TensorFlow.js (ready for custom models)
- UI Components: React Native Paper, Custom Components
- Multi-step form for initial setup
- University selection with logos
- Course and club selection
- Optional first action prompt
- Create discussions with title, content, tags
- Associate with courses, professors, or clubs
- Voting system (A for upvote, F for downvote)
- Comments and replies
- ML-powered ranking and sorting
- Only visible to enrolled students
- Set during course enrollment or quarter start
- Separate discussion space for course-specific topics
- When users submit courses/professors/clubs
- Multiple submissions with similar names trigger review
- Threshold-based automatic addition (no duplicates)
- Vertical card design
- University colors and logo
- User stats (followers, following, ranking)
- Courses and clubs display
- Share functionality
{
id: string;
email: string;
name: string;
username?: string;
profileImage?: string;
university: string; // University ID
courses: string[]; // Course IDs
clubs: string[]; // Club IDs
followers: string[]; // User IDs
following: string[]; // User IDs
discussionRanking: number;
isPrivate: boolean;
createdAt: Date;
updatedAt: Date;
}{
id: string;
userId: string;
title: string;
content: string;
images?: string[];
tags: string[];
courseId?: string;
professorId?: string;
clubId?: string;
organizationId?: string;
upvotes: string[]; // User IDs
downvotes: string[]; // User IDs
comments: Comment[];
score: number;
controversy: number;
createdAt: Date;
updatedAt: Date;
isPrivate?: boolean; // For course sessions
enrolledUsers?: string[]; // For course sessions
}{
id: string;
code: string;
name: string;
description?: string;
universityId: string;
professors: string[]; // Professor IDs
createdAt: Date;
}{
id: string;
name: string;
email?: string;
courses: string[]; // Course IDs
averageRating: {
hardness: number;
coursework: number;
communication: number;
enjoyment: number;
};
}{
id: string;
name: string;
description?: string;
image?: string;
universityId: string;
members: string[]; // User IDs
averageRating: {
engagement: number;
community: number;
events: number;
overall: number;
};
createdAt: Date;
}The app includes integration points for ML models in src/services/mlService.ts. Currently, it uses heuristic-based ranking, but you can replace it with:
- TensorFlow.js (Client-side)
- Backend ML Service (API-based)
- Firebase Cloud Functions
- Discussion Ranking: Combines votes, comments, time decay, and user ranking
- Controversy Score: Calculates based on upvote/downvote ratio
- User Ranking: Based on posts, votes, comments, and followers
- Duplicate Detection: Text similarity for courses/professors/clubs
- Personalized Recommendations: Based on user interests, courses, and clubs
hallpass/
βββ src/
β βββ components/ # Reusable components
β βββ config/ # Configuration files
β βββ context/ # React Context providers
β βββ navigation/ # Navigation setup
β βββ screens/ # Screen components
β βββ services/ # Business logic services
β βββ types/ # TypeScript type definitions
β βββ App.tsx # Main app component
βββ assets/ # Images, fonts, etc.
βββ app.json # Expo configuration
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
βββ SETUP.md # Setup instructions
See SETUP.md for complete setup and build instructions.
- Push notifications for messages and mentions
- Advanced search with filters
- Real-time discussion updates
- Analytics and insights
- Admin panel for university management
- Integration with university systems
- Advanced ML models for content moderation
- Video support for discussions
This project is licensed under the MIT License.
- Inspired by Reddit, Instagram, and YikYak
- Built with React Native and Expo
- Powered by Firebase and AWS



