W2W is an interactive platform that helps UWaterloo students explore exchange and co-op opportunities worldwide. It features a map-based interface, enriched filters, and student-driven insights to make finding global programs easier, more visual, and more personalized than the current Waterloo Passport site.
- Interactive Map: Browse and discover exchange programs around the world.
- Live Data: All program info is pulled directly from Waterloo Passport, ensuring up-to-date details.
- Program Details: See university, location, requirements, competitiveness, and more.
- Student Reviews & Ratings: Read and contribute honest reviews and ratings for each program.
- Sort & Filter: Find programs by date, popularity, competitiveness, and more.
- Application Links: Go straight to the official application portal for each program.
- Verified Comments: Know which reviews are from real students.
- Helpful Resources: Access student insights, key links, guides, and wellness resources for your journey.
- Search or browse for a program using the map or search bar.
- Click a program to see details, reviews, and how to apply.
- Read what other students have shared.
- Leave your own review and rating after your exchange.
- Check out comments, resources, and links to help you prepare.
Stay up to date with new features and planned improvements in the Notion page: https://ammiellewb.notion.site/W2W-21eaa4f8c84480af91beeaa2fd88726c?source=copy_link.
- Node.js (v18+ recommended)
- npm or yarn
- Supabase project and API keys: for the database (programs, comments, ratings)
- MapTiler API key: for the interactive map tiles and geospatial features
- Clone this repository:
git clone <your-repo-url> cd w2w
- Install dependencies:
npm install # or yarn install - Set up your environment variables:
- Copy
.env.exampleto.env.localand fill in your Supabase and MapTiler keys.
- Copy
- Run the development server:
npm run dev # or yarn dev - Open http://localhost:3000 in your browser.
I welcome contributions from students (UW or otherwise)! For major changes, please open an issue first to discuss what you’d like to change.