Built with React, TypeScript, and AI-powered recommendations
Visit the live website: https://AlignU.replit.app
-
Personalized Recommendations - Get club suggestions tailored to your interests and profile
-
Swipe Interface - Browse clubs with an intuitive swipe experience
-
Event Discovery - Find and filter UBC events by category (UBC Events, Athletics, Club Events, Partying Events)
-
Save Favorites - Like clubs and keep track of your matches
-
Profile Creation - Build your profile with interests, major, bio, and more
-
Direct Links - Connect with clubs via Instagram and RSVP to events
- Node.js 18+ and npm
-
Clone the repository
git clone https://github.com/davidhchng/hackcamp2025.git cd hackcamp2025 -
Install dependencies
cd "Club Finder Website" npm install
-
Start the development server
npm run dev
-
Open your browser
-
The app will automatically open at
http://localhost:3000 -
Or manually navigate to the URL shown in your terminal
-
hackcamp2025/
├── Club Finder Website/ # Main application
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── HomePage.tsx # Landing page
│ │ │ ├── SwipePage.tsx # Club discovery with swipe
│ │ │ ├── ExplorePage.tsx # Events browser
│ │ │ ├── ProfilePage.tsx # User profile creation
│ │ │ ├── LikedClubsPage.tsx # Saved clubs
│ │ │ └── ui/ # Reusable UI components
│ │ ├── data/ # Data files
│ │ │ ├── club_info.json # Club database
│ │ │ ├── events_info.json # Events database
│ │ │ └── mockData.ts # Data processing utilities
│ │ ├── utils/ # Utility functions
│ │ │ ├── chatgptApi.ts # AI recommendation engine
│ │ │ └── clubMatcher.ts # Local matching algorithm
│ │ └── types/ # TypeScript type definitions
│ ├── public/
│ │ └── images/ # Club and event images
│ └── package.json
├── club_info.json # Source club data
├── events_info.json # Source event data
└── README.md # This file
The app provides intelligent club recommendations based on your profile. Simply create your profile with your interests, major, bio, and what you're looking for, and you'll see clubs sorted by how well they match your preferences. The more details you add to your profile, the better the recommendations get.
# Start development server
npm run dev
# or
npm start
# Build for production
npm run build
# Preview production build
npm run preview
The project is configured for automatic deployment to GitHub Pages.
-
Enable GitHub Pages:
-
Go to repository Settings → Pages
-
Under "Source", select GitHub Actions
-
Save
-
-
Deploy automatically:
-
Every push to
maintriggers automatic deployment -
Your site will be live at:
https://davidhchng.github.io/hackcamp2025/
-
-
Manual deployment:
git push origin main
- Check the Actions tab for deployment status
See DEPLOY.md for detailed deployment instructions.
-
Clubs across various categories including:
-
Sports (Squash, Disc Golf, etc.)
-
STEM (Statistics, AI, Data Science, etc.)
-
Culture (Chinese, Japanese, Korean, etc.)
-
Business (BizTech, Finance, etc.)
-
Academic (Research, URO, etc.)
-
The club database comes from and is updated with the UBC AMS Clubs Directory: https://amsclubs.ca/all-clubs/
-
Events including:
-
UBC Athletics games
-
Club events (datathons, competitions, etc.)
-
Partying events (Koerner's House Party, Rush Hour, etc.)
-
UBC campus events
-
The events database comes from and is updated with the UBC AMS Clubs Directory, as well: https://amsclubs.ca/all-events/
-
Frontend Framework: React 18 with TypeScript
-
Build Tool: Vite 6
-
Styling: Tailwind CSS
-
UI Components: Radix UI + Custom components
-
Animations: Framer Motion
-
Routing: React Router (HashRouter for GitHub Pages)
-
State Management: React Hooks + localStorage
-
Create a comprehensive profile with:
-
Bio and personal description
-
Major selection
-
Adjectives (words that describe you)
-
Passions (your interests)
-
What you're looking for
-
Gender pronouns (optional)
-
-
Save and reset profile functionality
-
Profile data used for personalized recommendations
-
View prioritized clubs, based off of your profile section
-
Swipe right (or click the heart button) to like a club
-
Swipe left (or click the X button) to pass
-
View detailed information by clicking on the card
-
Expandable card view with full club details
-
Filter by category: All Events, UBC Events, UBC Athletics, Club Events, Partying Events
-
Click RSVP buttons to register (opens in new tab)
-
View event details, dates, times, and pricing
This project is part of HackCamp 2025.
-
UBC clubs and organizations for providing information
-
All contributors and testers
Made for UBC students
Find your community. Discover your passion. Join AlignU.