project-proposal-2024

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:

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:

Quality Attributes

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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.
  3. 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)
  4. 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.