SkillSwap is a modern web and mobile-ready platform where users can offer and request skill-based services (e.g., "Teach guitar in exchange for coding help"). The platform enables users to create profiles, list skills, book sessions, communicate in real-time, and review each other. The system is designed with an API-first approach, supporting web, mobile, and third-party integrations.
- Barter System: Users can exchange skills directly or use "Skill Coins" as a barter currency.
- AI Matching (Optional): Suggests skill swaps based on user profiles and learning goals.
- Real-Time Communication: In-app chat and notifications using SignalR.
- Group Sessions: Support for group bookings and workshops.
- Niche Focus: Can be tailored for specific communities (e.g., students, remote workers).
- Registration & login (JWT authentication)
- User profiles with bio, skills offered, skills wanted, ratings, and reviews
- Profile picture upload
- Create, edit, and delete skill offers
- Search and filter skills by category, location, or keywords
- View details of each skill offer
- Request sessions for skills
- Calendar integration for availability
- Booking approval/decline workflow
- Booking history for both parties
- Chat between users (SignalR)
- Notifications for new messages, booking requests, and status updates
- Users can rate and review each other after sessions
- Display average ratings on profiles and skill listings
- Manage users, skills, and reported content
- View platform analytics
- All features exposed via a RESTful API (ASP.NET Core Web API)
- API documentation with Swagger/OpenAPI
- SPA (React, Angular, or Vue) or mobile app (Xamarin, MAUI, or Flutter) consuming the API
- ASP.NET Core Web API
- Entity Framework Core (SQL Server or SQLite)
- JWT Bearer authentication
- SignalR for real-time features
- Swagger/OpenAPI for documentation
- SPA: React, Angular, or Vue
- Mobile: .NET MAUI, Xamarin, or Flutter
- Docker for containerization
- Azure/AWS for deployment
- CI/CD pipeline
- User: Id, Name, Email, PasswordHash, Bio, ProfilePicture, etc.
- Skill: Id, UserId (FK), Title, Description, Category, Location, Price (optional), etc.
- Booking: Id, SkillId (FK), RequesterId (FK), DateTime, Status (Pending/Approved/Declined), etc.
- Message: Id, SenderId (FK), ReceiverId (FK), Content, Timestamp, BookingId (optional)
- Review: Id, ReviewerId (FK), RevieweeId (FK), BookingId (FK), Rating, Comment, Timestamp
- SkillCoinTransaction (Optional): Id, FromUserId, ToUserId, Amount, Timestamp, Reason
- As a user, I can register, log in, and manage my profile.
- As a user, I can list skills I offer and skills I want to learn.
- As a user, I can search for skills and request sessions.
- As a user, I can chat with other users in real-time.
- As a user, I can approve or decline booking requests.
- As a user, I can review and rate other users after a session.
- As an admin, I can manage users, skills, and reported content.
- As a user, I can view my booking and transaction history.
- (Optional) As a user, I can earn and spend Skill Coins for barter.
POST /api/auth/register- Register a new userPOST /api/auth/login- Authenticate and receive JWTGET /api/skills- List/search skillsPOST /api/skills- Create a new skill offerPOST /api/bookings- Request a bookingGET /api/bookings- View bookingsPOST /api/messages- Send a messageGET /api/messages/{userId}- Get chat historyPOST /api/reviews- Submit a reviewGET /api/admin/users- Admin: manage users
- Payment integration (Stripe/PayPal)
- Video call integration (Twilio, WebRTC)
- Social login (Google, Fac- Gamification (badges, leaderboards) ebook)
- Push notifications (web/mobile)
- AI-powered skill matching
- Learn and apply modern API-first architecture
- Gain experience with real-time features (SignalR)
- Build a scalable, maintainable, and extensible platform
- Prepare for SPA/mobile development
- Create a unique, portfolio-worthy project