SkillShare
Abstract
SkillShare is a platform that enables users to offer their expertise in a particular skill or area of knowledge in exchange for assistance and guidance in another skill or area. The platform aims to foster a culture of learning, collaboration, and community throughout users’ journeys of acquiring new skills and knowledge. It provides users with the opportunity to take a leap of faith and learn something new while reinforcing their existing skills and knowledge by helping fellow learners.
Author
Name: Tian Yang Ooi
Student number: 46278580
Functionality
SkillShare offers a range of key functionalities to assist users in “sharing” their expertise. This includes:
- User Profiles: Users can create profiles to showcase their personality, skills, expertise, and list the skills that they want to learn. Profiles may include a picture, bio, portfolio, learning goals, and endorsements from other users.
- Skill Listings: Users can post listings of skills that they are able to offer and browse listings of skills that they are interested in acquiring. Skill listings include information such as skill description, proficiency, availability and exchange method (face to face, online, etc.). Users can also search for skills or browse categories for recommended listings.
- Matching Algorithm: SkillShare employs a matching algorithm that analyses users based on user profile, skill compatibility, availability, and preferred exchange method to maximise suitable matches of skill share partners. This feature plays an integral role in ensuring meaningful and productive skill share interactions, enhancing user experience.
- Progress Tracker: Users can track their progress in acquiring new skills, log activities, set learning goals, and receive feedback from their skill share partners or other users. This will assist users in staying engaged, motivated, and committed to their lifelong learning journey while providing valuable insights into their progress along the way.
- Messaging System: Users can message other users to communicate with potential skill share partners to discuss details, schedule sessions, and make any necessary adjustments.
- User-Friendly Interface: SkillShare is designed to be user-friendly, responsive, and accessible from a range of devices to ensure users can access it anytime, from anywhere.
Scope
The Minimum Viable Product version of SkillShare will deliver the core functionalities and features that are essential for users to connect with each other and facilitate the exchange of skills and knowledge. These features include:
- User Profiles
- Skill Listings
- Messaging System
- User-Friendly Interface
Quality Attributes
- Interoperability: Interoperability ensures that SkillShare can seamlessly integrates with other systems and tools to enhance the platform’s functionality and usability. For example, SkillShare can integrate with Google Calendar to create events for scheduled skill share sessions and notify users when sessions are approaching. Moreover, SkillShare can integrate with video call platforms such as Zoom to facilitate remote skill share sessions or social media platforms, enabling users to share their skills across different platforms. Interoperability fosters an ecosystem that enables users to leverage their existing resources and software in their learning journey.
Interoperability can be measured by the number of successful integrations with other systems and the efficiency of data exchange between SkillShare and other integrated systems.
- Scalability: Scalability is crucial for SkillShare to accommodate for varying volumes of user activity on the platform. For example, it will be reasonable to expect that user activity will be highest on the weekends compared to weekdays when the majority of the user base will be working. Moreover, as the user base grows, the platform must be able to handle the increased traffic, interactions and activities that take place. As such, the platform must be able to efficiently scale up during periods of high demand to ensure responsiveness and accessibility to all users and scale down during low user activity periods to avoid redundant compute resource costs.
Scalability can be measured by the platform’s response time under varying volumes of user activity and how quickly the platform can scale up and down to accommodate demand.
- Security: As SkillShare involves users sharing their personal information and potentially social media or contact details to facilitate skill sharing, ensuring the security of user data and the platform itself is paramount. Users need to be assured in SkillShare ability to safeguard their personal information and communications from unauthorised access. For instance, if malicious individuals gain access to the location of skill share sessions, they could target specific individuals, putting their safety at risk. Therefore, the platform must have robust security measures in place to prevent potential cyber-attacks, detect malicious activities, and prevent security breaches. This ensures the safety of both the platform and its users.
Security can be measured through evaluation against industry security standards and tested through vulnerability assessments.
Evaluation
- Interoperability
- Integration with other systems is not feasible in the Minimum Viable Product of SkillShare, however, interoperability of the platform can be assessed by simulating integration with commonly used external systems. For example, testing the platform’s ability to exchange data with Google Calendar over the Google Calendar API.
- Evaluate the platform’s efficiency in handling data exchange with external systems and identify any potential compatibility issues through integration simulations.
- Scalability:
- Utilise the load testing tool k6 to simulate users accessing the platform and assess the performance under varying level of activity.
- Evaluate performance metrics such as Average Response Time, CPU usage and error rate.
- Determine if performance metrics degrade as the number of users increases.
- Security:
- Assess whether the platform meets common security best practices such as input validation, encryption of data, user authentication, and access control.
- Thoroughly review the code base to mitigate any potential security risks such as SQL injection and Cross-site scripting (XSS)
- Functionality:
- User testing will be conducted to ensure users can build user profiles, create and browse skill listings, and message other users.
- Evaluate the user friendliness of the platform by accessing it through a variety of devices to ensure a consistent UI/UX experience.
- Observe user interactions, gather feedback and document any potential issues that arise.