Swapify is a peer-to-peer platform designed for University of Waterloo students to trade skills, services, and goods without monetary exchange. The platform aims to foster collaboration, financial flexibility, and community trust within the university ecosystem.
- Enable skill trades between students (e.g., coding tutorials for graphic design)
- Reduce financial barriers to accessing services
- Build meaningful connections within the university community
- Facilitate resource sharing and collaborative learning
-
User Profiles
- Skill tags and expertise levels
- Availability calendars
- Trade history and ratings
- UW email verification
- LinkedIn/Portfolio integration
-
Skill/Service Listings
- Categorized posts (Academic, Creative, Fitness)
- Advanced search and filters
- Location-based matching
-
Smart Matching
- Compatibility scoring
- Skill overlap detection
- Automated match notifications
-
Secure Messaging
- Real-time chat system
- File sharing capabilities
- Content moderation
-
Trust & Safety
- User verification system
- Rating and review platform
- Community guidelines enforcement
- Next.js 15 - React framework with App Router
- React - UI library
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn UI - Component library
- Radix UI - Headless UI components
- Supabase - Database and real-time features
- Google Cloud - Authentication
- Vercel - Hosting and deployment
- Node.js 18.0 or later
- pnpm (recommended) or npm
- Git
- Clone the repository
git clone https://github.com/yourusername/swapify.git
cd swapify
- Install dependencies
pnpm install
-
Create a
.env.local
file in the root directory with your environment variables -
Start the development server
pnpm dev
Create a .env.local
file in the root directory with the following variables:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
Note: You'll need to:
- Create a Supabase project at supabase.com
- Copy your project URL and anon key from the project settings
- Replace the placeholder values in
.env.local
with your actual credentials
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Made with ❤️ for University of Waterloo Students