A Social Discovery Platform for University Students
Connect with fellow students, find study partners, make friends, and discover your campus community.
- Email-based OTP Login - Secure, passwordless authentication using one-time passwords
- Session Management - Persistent login with automatic token refresh
- Profile Setup - Comprehensive onboarding for new users
- Smart Matching - Swipe through profiles based on your preferences
- Customizable Filters - Filter by interests, degree type, semester, and more
- Interest Tags - Express yourself with customizable interests and hobbies
- Profile Preferences - Specify what you're looking for: friends, study partners, or dates
- Real-time Chat - Message your matches instantly
- Match Notifications - Get notified when you have a new match
- Chat History - Keep track of all your conversations
- Modern UI - Clean, intuitive JavaFX interface
- Responsive Design - Optimized for different screen sizes
- Profile Customization - Upload photos, write bios, and showcase your personality
- Settings Management - Control your preferences and privacy settings
- JavaFX 21 - Modern desktop application framework
- FXML - Declarative UI design
- CSS - Custom styling and theming
- Supabase - Backend-as-a-Service for authentication and database
- PostgreSQL - Relational database for user profiles and matches
- Java HTTP Client - Native HTTP/2 client for API communication
- Java 21 - Latest LTS version with modern language features
- Gradle - Build automation and dependency management
- Lombok - Boilerplate code reduction
- Jackson - JSON serialization/deserialization
- Java Development Kit (JDK) 21 or higher
- Gradle 8.x (included via wrapper)
- Supabase Account - For backend services
git clone https://github.com/FH-Campus-Wien/CampusConnect.git
cd CampusConnectCreate a .env file in the project root:
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key๐ก Tip: You can find these values in your Supabase project settings under API.
Use the Supabase SQL Editor to run the scripts directly.
Or use the Supabase CLI
# Connect to your Supabase database and run:
psql -h your-db-host -U postgres -d postgres -f sql/schema.sqlCampusConnect/
โโโ src/
โ โโโ main/
โ โโโ java/
โ โ โโโ module-info.java
โ โ โโโ at/ac/hcw/campusconnect/
โ โ โโโ CampusConnectApplication.java
โ โ โโโ Launcher.java
โ โ โโโ components/ # Reusable UI components
โ โ โโโ config/ # Configuration classes
โ โ โโโ controller/ # FXML controllers
โ โ โโโ models/ # Data models
โ โ โโโ services/ # Business logic & API services
โ โ โโโ util/ # Utility classes
โ โโโ resources/
โ โโโ at/ac/hcw/campusconnect/
โ โโโ *.fxml # UI layouts
โ โโโ images/ # Image assets
โ โโโ styles/ # CSS stylesheets
โโโ sql/
โ โโโ schema.sql # Database schema
โ โโโ mockdata.sql # Sample data
โโโ build.gradle # Build configuration
โโโ settings.gradle
โโโ .env # Environment variables (not in git)
profiles- User profile information (name, bio, interests, photos)user_actions- User interactions (likes, passes)matches- Mutual matches between usersmessages- Chat messages between matched users
- Row Level Security (RLS) - Ensures users can only access their own data
- Triggers - Automatic match creation when mutual likes occur
- Indexes - Optimized queries for fast matching and discovery
- Launch the app - The login screen will appear
- Enter your university email - Use your @fh-campuswien.ac.at address
- Enter the OTP - Check your email for the verification code
- Complete your profile - Add your details, interests, and photos
- Start discovering - Swipe right to like, left to pass
- Navigate to the Discover tab
- Browse through student profiles
- Swipe or click based on your interest
- Get notified when there's a mutual match!
- Go to the Matches tab to see your connections
- Click on a match to start chatting
- Messages are delivered in real-time
This project is licensed under the terms specified in the LICENSE file.
Developed by students at FH Campus Wien as part of the 1st semester Programming course.






