A modern platform for exchanging skills and knowledge within a community. Connect with like-minded individuals, share your expertise, and learn new skills through real-time interactions.
- Skill Marketplace: Browse and discover available skills from other users
- User Profiles: Create detailed profiles showcasing your skills and interests
- Smart Matching: Find the perfect skill exchange partners
- Secure Authentication: Google OAuth integration for seamless login
- Real-time Chat: Instant messaging with other users
- Video Calling: Built-in video call functionality for face-to-face learning
- Connection Management: Organize your skill exchange connections
- Typing Indicators: See when others are typing in real-time
- Session Management: Secure user authentication with Supabase
- Real-time Updates: Live data synchronization across all clients
- Responsive Design: Optimized for desktop and mobile devices
- Production Ready: Deployed on Vercel with Socket.IO on Render
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Modern styling and responsive design
- React Hooks - State management and side effects
- Supabase - Backend-as-a-Service with PostgreSQL
- Socket.IO - Real-time bidirectional communication
- Supabase Auth - OAuth authentication and user management
- Vercel - Frontend deployment and hosting
- Render - Socket.IO server hosting
- GitHub - Version control and CI/CD
- Node.js 18+
- npm or yarn
- Supabase account
- Google OAuth credentials
-
Clone the repository
git clone https://github.com/Krishnadev-cmd/Skill-Swap.git cd Skill-Swap -
Install dependencies
npm install
-
Environment Setup Create a
.env.localfile with the following variables:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key NEXT_PUBLIC_SITE_URL=http://localhost:3000 NEXT_PUBLIC_SOCKET_URL=http://localhost:3001
-
Database Setup Run the SQL scripts in Supabase:
# Execute these files in your Supabase SQL editor create_profiles_table.sql create_messages_table.sql create_connections_table.sql supabase_skills_table.sql fix_rls_policies.sql -
Start Development Servers
# Terminal 1 - Next.js app npm run dev # Terminal 2 - Socket.IO server node socket-server-simple.js
-
Access the application
- Frontend: http://localhost:3000
- Socket.IO: http://localhost:3001
Production URL: https://skill-swap-kdisop2003-gmailcoms-projects.vercel.app
- Home (
/) - Landing page with platform statistics - Login (
/login) - Google OAuth authentication - Profile (
/profile) - User profile management - My Skills (
/my_skills) - Manage your skill offerings - Browse Skills (
/browse_skill) - Discover available skills - Connections (
/connections) - Your skill exchange connections - Chat (
/chat/[id]) - Real-time messaging and video calls
GET /api/user- Get current user informationGET /api/my_skills- Fetch user's skillsGET /api/browse_skill- Browse available skillsGET/POST /api/connections- Manage connectionsGET/POST /api/messages- Chat messagingPOST /api/auth/login- AuthenticationPOST /api/auth/logout- Sign out
- Sign Up: Use Google OAuth to create your account
- Complete Profile: Add your skills and interests
- Browse Skills: Explore what others are offering
- Make Connections: Connect with potential skill partners
- Start Learning: Use chat and video calls to exchange knowledge
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Supabase for the excellent backend-as-a-service platform
- Vercel for seamless deployment and hosting
- Socket.IO for real-time communication capabilities
- Next.js team for the amazing React framework
For support, email [[email protected]] or create an issue in this repository.
Built with ❤️ by Krishnadev