TalentTrade Hub: Peer-to-Peer Learning Network
Abstract
TalentTrade Hub is engineered to support a vast ecosystem of skills, fostering an environment where users can effortlessly share their expertise and acquire new competencies. TalentTrade Hub focuses on scalability, reliability, and extensibility, offering an accessible and engaging platform for users to share their knowledge and learn new skills.
Author
Name: Hoang Viet Nguyen
Student number: 46769659
Functionality
The features that the software system should have are:
- User Profiles: Users can register using email or social media accounts, providing essential information such as name, contact details, skills, and interests. A multi-step verification process ensures authenticity, including email verification and optional two-factor authentication for enhanced security. Post-registration, users can customize their profiles with additional details like specific skills, preferences for learning or teaching, and feedback scores from past interactions.
- Matchmaking Engine: After profile setup, users can enter the matchmaking engine to find potential learning partners or mentors by specifying their skill interests, proficiency levels, and availability. The matchmaking engine, provides fast and relevant matches, allowing users to send requests for interactive sessions.
- Interactive Sessions: Once a match is made, users can utilize the integrated Google Calendar API to schedule sessions at mutually convenient times, with automatic Zoom session creation for the scheduled time.
- Resource Sharing: Users can share or request learning materials and resources through a secure AWS S3-backed storage system, facilitating easy access and distribution.
- Community Forums: Community forums serve as a hub for users to discuss topics, share experiences, and seek or offer advice beyond one-on-one sessions. Forums are categorized by skill areas, general advice, and platform support, encouraging rich, diverse community interaction.
Scope
The scope for the MVP of this system will include the features:
- Profile Creation: Basic functionality with database to store and manage user profiles.
- Matchmaking System: Initial version using search engine to connect users based on skillsets.
- Session Scheduling: Integration with Google Calendar API to manage session timings.
Quality Attributes
Scalability
The system is engineered for large scalability. Key components include:
- The system should employs a NoSQL database architecture, which is inherently designed for flexibility through its schema-less structure. This allows for the easy accommodation of varied user data, including skills, preferences, and feedback. Its horizontal scaling capabilities, facilitated by sharding, enable the system to distribute data across multiple servers efficiently.
- It should supports horizontal scaling. This capability ensures that the system maintains fast search response times, crucial for a positive user experience, even as the volume of data or the number of users spikes dramatically.
- Backend can effortlessly scale storage capacity to match the system’s needs, accommodating an ever-increasing amount of shared resources without compromising access speed or data integrity.
Reliability
The system is engineered for high reliability through its robust architecture and fault-tolerant design. Key components include:
-
The system is designed to be inherently fault-tolerant architechture, distributing data across multiple nodes to ensure that the loss of a single node does not compromise the system’s overall availability or data integrity.
-
Distributed search nature helps replicate data and searches across multiple nodes, ensuring that the failure of one node does not interrupt the matchmaking process or degrade the quality of search results.
-
Ensuring resource storage redundancy, storing learning materials ensures data durability and high availability.
Evaluation
Scalability
- Testing: K6 will simulate various loads on the system to measure response times and throughput for critical functionalities like the matchmaking engine and session scheduling.
- Criteria: Maintain sub-2-second response times for matchmaking queries and session scheduling under peak load scenarios.
Reliability
-
Testing: To assess system reliability, the evaluation plan will employ fault injection testing and load testing to simulate failures and high-demand scenarios, ensuring robust fault tolerance and performance. It will also verify redundancy mechanisms and disaster recovery protocols, confirming data integrity and system resilience in various failure conditions.
-
Criteria: Aim for 99.9% uptime and low error rates, monitored via AWS CloudWatch. Evaluate the system’s ability to quickly recover from induced failures, minimizing user impact.