Skip to content

Latest commit

 

History

History
126 lines (100 loc) · 4.56 KB

File metadata and controls

126 lines (100 loc) · 4.56 KB

SkillSwap Platform - Project Details

1. Project Overview

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.


2. Unique Value Proposition

  • 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).

3. Core Features

3.1 User Management

  • Registration & login (JWT authentication)
  • User profiles with bio, skills offered, skills wanted, ratings, and reviews
  • Profile picture upload

3.2 Skill Listings

  • Create, edit, and delete skill offers
  • Search and filter skills by category, location, or keywords
  • View details of each skill offer

3.3 Booking & Scheduling

  • Request sessions for skills
  • Calendar integration for availability
  • Booking approval/decline workflow
  • Booking history for both parties

3.4 In-App Messaging (Real-Time)

  • Chat between users (SignalR)
  • Notifications for new messages, booking requests, and status updates

3.5 Reviews & Ratings

  • Users can rate and review each other after sessions
  • Display average ratings on profiles and skill listings

3.6 Admin Panel

  • Manage users, skills, and reported content
  • View platform analytics

3.7 API-First Design

  • All features exposed via a RESTful API (ASP.NET Core Web API)
  • API documentation with Swagger/OpenAPI

3.8 Frontend (Optional)

  • SPA (React, Angular, or Vue) or mobile app (Xamarin, MAUI, or Flutter) consuming the API

4. Technical Requirements

4.1 Backend

  • ASP.NET Core Web API
  • Entity Framework Core (SQL Server or SQLite)
  • JWT Bearer authentication
  • SignalR for real-time features
  • Swagger/OpenAPI for documentation

4.2 Frontend (Optional)

  • SPA: React, Angular, or Vue
  • Mobile: .NET MAUI, Xamarin, or Flutter

4.3 DevOps (Optional)

  • Docker for containerization
  • Azure/AWS for deployment
  • CI/CD pipeline

5. Database Design (Sample Entities)

  • 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

6. User Stories & Requirements

  • 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.

7. API Endpoints (Sample)

  • POST /api/auth/register - Register a new user
  • POST /api/auth/login - Authenticate and receive JWT
  • GET /api/skills - List/search skills
  • POST /api/skills - Create a new skill offer
  • POST /api/bookings - Request a booking
  • GET /api/bookings - View bookings
  • POST /api/messages - Send a message
  • GET /api/messages/{userId} - Get chat history
  • POST /api/reviews - Submit a review
  • GET /api/admin/users - Admin: manage users

8. Future Enhancements

  • 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

9. Project Goals

  • 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