A modern, peer-to-peer skill exchange platform built with React, Vite, TypeScript, Tailwind CSS, and Supabase.
- User Authentication: Sign up, log in, and manage sessions securely (Supabase Auth).
- User Profiles: Create and edit profiles, add skills offered/wanted, set availability, and upload avatars.
- Skill Discovery: Search, filter, and browse users by skills, rating, and availability.
- Skill Swap Requests: Send, accept, reject, and manage skill exchange requests.
- Admin Dashboard: Platform moderation, user management, ban users, send notifications, and download platform reports.
- Chatbot Assistant: In-app AI assistant to help users navigate and answer questions.
- Responsive UI: Beautiful, animated, and mobile-friendly interface with Tailwind CSS.
- Pagination: Efficiently browse large user lists.
- Rating System: Users can rate each other after swaps.
- Notifications: Admins can send notifications to all users.
- Demo Data: Mock data for users, swap requests, and feedback for testing and development.
bash git clone cd skill-share-platform-main
bash npm install
Create a .env file in the root directory with the following variables:
VITE_SUPABASE_URL=your-supabase-url VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
You can find these in your Supabase project settings.
bash npm run dev
The app will be available at http://localhost:5173 by default.
bash npm run build
bash npm run preview
- src/components/ — All React UI components (Header, Footer, AuthModal, Chatbot, AdminDashboard, etc.)
- src/hooks/ — Custom React hooks for authentication, users, and swap requests.
- src/lib/ — Supabase client setup.
- src/types/ — TypeScript type definitions.
- src/utils/ — Mock data and utility functions.
- supabase/migrations/ — SQL migrations for database setup.
This project uses Supabase for authentication and as a backend database.
You must set up the following tables in your Supabase project:
- profiles — User profiles, skills, ratings, etc.
- swap_requests — Skill swap requests between users.
You can use the SQL files in supabase/migrations/ to set up your database schema.
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes.
- Open a pull request.
- Prayash Sinha
- Leora Saharia
- Abhay Kumar
MIT