SkillShare

Peer-to-Peer Campus Skill-Sharing Platform

SkillShare Logo


Team


Table of Contents

  1. Project Overview
  2. The Problem
  3. Our Solution
  4. Core Features
  5. How SkillShare Works
  6. System Architecture
  7. Technology Stack
  8. Security and Trust
  9. Testing and Verification
  10. Final Implementation Scope
  11. Documentation
  12. Future Scope
  13. Links

Project Overview

SkillShare is an open, peer-to-peer skill-sharing platform tailored specifically for university students. Within any academic campus, students possess a rich, diverse range of talents—from programming and mathematics to design and language skills. However, these capabilities often remain hidden or siloed due to the lack of an organized exchange mechanism.

SkillShare bridges this gap by providing a structured, secure web application where university students can:

By replacing ad-hoc messaging channels with a fair, decentralized credit-based economy, SkillShare enables students to trade knowledge as a collaborative campus resource.


The Problem

University students routinely seek mentorship, exam assistance, or practical skill-building from peers. However, current informal channels—such as WhatsApp groups, word of mouth, or notice board announcements—present persistent challenges:


Our Solution

SkillShare addresses these challenges by consolidating peer mentorship into an integrated, end-to-end workflow:

Student Registration & Profile Setup
               │
               ▼
   Declare Skills (TEACH / LEARN)
               │
               ▼
Discover Mentors via Search & Filters
               │
               ▼
 View Mentor Availability & Profile
               │
               ▼
Book 1-on-1 Session (10 Credits Reserved)
               │
               ▼
 Real-Time Chat Coordination (STOMP/WS)
               │
               ▼
      Attend & Complete Session
               │
               ▼
 Mutual Feedback, Credit Transfer & XP Growth

Rather than enforcing rigid multi-party matching cycles, SkillShare implements a decoupled Credit Economy:


Core Features

1. Authentication & Social Sign-In

2. User Profiles & Media Management

3. Skill Management & Discovery

4. Availability Management

5. One-to-One Learning Sessions

6. Campus Credit Economy

7. Gamification & Reputation

8. Peer Connections Network

9. Real-Time Chat Infrastructure

10. Notifications System

11. Platform Moderation & Administration


How SkillShare Works

 ┌──────────────┐         ┌──────────────┐         ┌──────────────┐
 │   1. Setup   │  ────►  │ 2. Discovery │  ────►  │  3. Booking  │
 │ Profile &    │         │ Search by    │         │ Select Slot &│
 │ Skills       │         │ Skill/Mentor │         │ Reserve 10 Cr│
 └──────────────┘         └──────────────┘         └──────────────┘
                                                          │
                                                          ▼
 ┌──────────────┐         ┌──────────────┐         ┌──────────────┐
 │5. Progression│  ◄────  │4. Completion │  ◄────  │ 4. Coordinate│
 │ Earn XP &    │         │ Payout Mentor│         │ Real-Time    │
 │ Ratings      │         │ & Feedback   │         │ WebSocket    │
 └──────────────┘         └──────────────┘         └──────────────┘

The system operation is summarized in the System Use Case Diagram below:

System Use Cases

  1. Onboarding: A student registers an account or signs in via GitHub, completes their bio, and adds their teaching and learning skills.
  2. Finding a Mentor: The student searches the skill catalog, selects an available mentor, and reviews their profile, reputation, and published availability slots.
  3. Booking: The learner chooses an available slot. The system validates slot availability and deducts/reserves 10 credits from the learner’s balance.
  4. Coordination: The mentor accepts the booking, triggering in-app notifications. The participants use built-in real-time chat to coordinate session logistics or share links.
  5. Completion & Review: After meeting, the session is marked completed. The 10 credits are transferred to the mentor, participants exchange post-session feedback and reputation, and XP is credited to elevate leaderboard standings.

System Architecture

SkillShare is built upon a modular, decoupled full-stack architecture that cleanly separates client presentation, business services, real-time messaging, and persistence.

System Architecture

Architectural Layers


Technology Stack

Domain Technology / Library Role / Purpose
Frontend Framework React 18 & TypeScript Component-based UI with compile-time type safety
Frontend Tooling Vite 5 Fast development server and optimized build pipeline
Styling & Components Tailwind CSS & shadcn/ui Modern, responsive, and accessible UI components
Frontend State & Router React Router v6 & TanStack Query Client-side routing and efficient server state caching
Real-Time Client @stomp/stompjs STOMP client over WebSockets for live chat
Backend Framework Spring Boot 3.4 (Java 21) Production-ready REST and messaging backend
Security & Auth Spring Security & jjwt JWT stateless authentication and role-based authorization
ORM & Data Access Spring Data JPA / Hibernate Object-relational mapping and transaction management
Database PostgreSQL Relational database with strict foreign key constraints
Real-Time Messaging Spring WebSocket & STOMP Broker for authenticated real-time chat channels
Media Storage Cloudinary SDK Cloud storage for user profile avatars
Testing - Backend JUnit 5 & Mockito Backend unit, integration, and service tests
Testing - API Postman & Newman CLI Automated end-to-end REST API contract verification
Testing - Frontend Vitest & jsdom Frontend unit and client behavior verification

Security and Trust

Security is engineered into every layer of the SkillShare platform:


Testing and Verification

Quality assurance was conducted across all layers of the SkillShare system using automated test suites, contract validation tools, and comprehensive manual functional scenarios.

Verification Summary

Verification Layer Tooling / Harness Scope / Target Result Status
Backend Automated Tests JUnit 5 & Mockito Services, security, controllers, business rules 207 tests, 0 failures, 0 errors, 0 skipped PASSED
API Automated Tests Postman & Newman CLI End-to-end REST API contract validation 18 requests, 30 assertions, 0 failures PASSED
Frontend Automated Tests Vitest & jsdom API client, token handling, error normalization 10 tests across 2 suites, 0 failures PASSED
Static Type Verification TypeScript (tsc --noEmit) Entire frontend codebase type integrity 0 compilation errors PASSED
Manual Functional Verification End-to-End Test Matrix 15 critical user journeys and admin flows 15 representative manual functional scenarios — all passed PASSED

Automated Verification Evidence

1. Backend Test Suite Execution (JUnit 5 / Maven)

The Spring Boot backend suite executes 207 automated unit and integration tests verifying credit deductions, session transitions, security filters, and gamification calculations:

Backend JUnit Test Results

2. REST API Automated Contract Verification (Postman / Newman)

The Postman automated test collection executes 18 distinct API requests with 30 assertions, validating authentication flows, error formats, and CRUD operations:

Newman API Test Results

3. Frontend Unit & API Client Test Execution (Vitest)

The frontend test suite verifies apiFetch() behavior, token injection, error handling (401, 403, 409, 400 validation, 204 No Content), and network failures:

Frontend Vitest Results

4. TypeScript Static Type Compilation Check

Static type analysis ensures zero type mismatches or unhandled interface contracts across the entire frontend application:

TypeScript Compilation Results


Product Showcase & Manual Functional Evidence

A representative set of manual functional scenarios was executed to verify visual and interactive behavior across major system workflows:

1. Authenticated Student Dashboard

The student dashboard displays credit balances, current level, XP progression towards the next tier, active connections, and recent notifications:

Authenticated Student Dashboard

Students can search the campus network by skill or user name, viewing matching peers with their expertise, profile details, and available reputation information:

Skill Discovery Results

3. Profile Inspection & Availability Slots

Profiles showcase biography, teaching skills, learning goals, and published availability slots ready for booking:

User Profile and Availability Slots

4. Credit Economy Lifecycle (Credit Reservation on Booking)

Before booking, the learner’s balance is 175 credits. Upon requesting a session, 10 credits are deducted/reserved, adjusting the balance to 165 credits with the session in PENDING status:

Before Booking (175 Credits) After Booking (165 Credits & Pending Session)
Learner Account Before Booking Learner Account After Booking

5. Session Lifecycle Management

Students manage upcoming and past sessions with actions to accept, reject, cancel, or complete sessions according to their current state:

Session Management Interface

6. Authenticated Real-Time Chat

Session participants communicate in real time through full-duplex STOMP/WebSocket channels to arrange meetings and exchange learning material:

Real-Time Chat Interface

7. Feedback Submission & Gamification State

Upon session completion, participants exchange post-session feedback and reputation, triggering reputation updates, mentor credit distribution (+10 credits), and XP awards:

Feedback and Gamification State

8. Administrator Moderation Interface

Administrators review user reports, inspect infraction details, and freeze or unfreeze accounts to maintain campus safety:

Administrator Moderation Interface


Final Implementation Scope

The following table details the scope of implemented functionality delivered in the final milestone release:

Functional Area Feature / Capability Final Milestone 4 Status
Authentication Local Registration & Login (JWT) Implemented
Authentication GitHub OAuth2 Social Login Implemented
Profiles Student Bios, Statistics & Level Display Implemented
Profiles Cloudinary Profile Picture Upload Implemented
Skills Central Catalog & Live Search Implemented
Skills User Skill Associations (TEACH / LEARN) Implemented
Availability Student Availability Slot Publishing & Removal Implemented
Sessions 1-on-1 Session Booking & Lifecycle Management Implemented
Economy 10-Credit Booking Reservation & Mentor Payout Implemented
Economy Automatic Refund on Rejection / Cancellation Implemented
Gamification Experience Points (XP) & Level Progression Implemented
Gamification Trust & Reputation Feedback System Implemented
Gamification Leaderboard & Trending Mentors Implemented
Social Peer Connection Requests & Management Implemented
Messaging Full-Duplex STOMP/WebSocket Private Chat Implemented
Notifications In-App Event & Session Notification Center Implemented
Moderation Student Reporting & Administrator Freeze Tools Implemented
Group Learning Multi-Student Group Study Sessions Future Scope
Course Pools University Course-Specific Learning Pools Future Scope
Calendar Sync Google Calendar 2-Way Synchronization Future Scope
Self-Service Auth Email Verification & Password Reset Flow Future Scope

Documentation

The repository contains the following architecture, specification, and design documents:

(Note: The User Manual, Developer Guide, and full Testing & Evidence report are not currently committed to the repository; their links are intentionally omitted to prevent dead links.)


Future Scope

While the core platform is fully functional and verified, the following enhancements represent promising future directions for campus deployment:

  1. Group Learning Sessions: Expanding the 1-on-1 booking model into small collaborative study groups with shared credit contribution.
  2. University Course Pools: Organizing peer mentors by specific academic course codes (e.g., CO2060, EE2080) for targeted exam preparation.
  3. External Calendar Synchronization: Integrating Google Calendar and Outlook APIs to automatically sync booked sessions with academic schedules.
  4. Automated Email Verification & Recovery: Introducing campus domain email verification (@eng.pdn.ac.lk) and self-service password reset flows.
  5. Mobile Push Notifications: Implementing Web Push or mobile notifications to alert students immediately when booking requests arrive.