Skip to content

FH-Campus-Wien/CampusConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ CampusConnect

CampusConnect Logo

A Social Discovery Platform for University Students

Connect with fellow students, find study partners, make friends, and discover your campus community.


๐Ÿ“ธ Screenshots

Login Screen Profile Setup Screen 1 Profile Setup Screen 2 Discover Screen Matches Screen Chats Screen


โœจ Features

๐Ÿ” Authentication

  • 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

๐Ÿ‘ฅ Social Discovery

  • 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

๐Ÿ’ฌ Communication

  • 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

๐ŸŽจ User Experience

  • 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

๐Ÿ› ๏ธ Tech Stack

Frontend

  • JavaFX 21 - Modern desktop application framework
  • FXML - Declarative UI design
  • CSS - Custom styling and theming

Backend & Services

  • 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

Development

  • Java 21 - Latest LTS version with modern language features
  • Gradle - Build automation and dependency management
  • Lombok - Boilerplate code reduction
  • Jackson - JSON serialization/deserialization

๐Ÿ“‹ Prerequisites

  • Java Development Kit (JDK) 21 or higher
  • Gradle 8.x (included via wrapper)
  • Supabase Account - For backend services

๐Ÿš€ Getting Started

1. Clone the Repository

git clone https://github.com/FH-Campus-Wien/CampusConnect.git
cd CampusConnect

2. Configure Environment Variables

Create 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.

3. Set Up the Database

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.sql

๐Ÿ“ Project Structure

CampusConnect/
โ”œโ”€โ”€ 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)

๐Ÿ—„๏ธ Database Schema

Main Tables

  • profiles - User profile information (name, bio, interests, photos)
  • user_actions - User interactions (likes, passes)
  • matches - Mutual matches between users
  • messages - Chat messages between matched users

Key Features

  • 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

๐ŸŽฎ Usage

First Time Setup

  1. Launch the app - The login screen will appear
  2. Enter your university email - Use your @fh-campuswien.ac.at address
  3. Enter the OTP - Check your email for the verification code
  4. Complete your profile - Add your details, interests, and photos
  5. Start discovering - Swipe right to like, left to pass

Finding Matches

  • Navigate to the Discover tab
  • Browse through student profiles
  • Swipe or click based on your interest
  • Get notified when there's a mutual match!

Chatting

  • Go to the Matches tab to see your connections
  • Click on a match to start chatting
  • Messages are delivered in real-time

๐Ÿ“ License

This project is licensed under the terms specified in the LICENSE file.


๐Ÿ‘ฅ Team

Developed by students at FH Campus Wien as part of the 1st semester Programming course.


About

Modern JavaFX desktop social discovery app for student networking and chat

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors