As the world grows increasingly interconnected, people everywhere are exposed to new cultures and languages. Many welcome this opportunity by choosing to learn a language they were previously unfamiliar with. While online language learning apps do already exist, they often share a common limitation: few provide users with the chance to practice real conversations with fluent speakers. That’s where LinguaLink stands out.
LinguaLink does more than just teach languages, it connects people! By enabling users to engage with and even befriend native speakers, it offers an immersive learning experience that no other app can match.
Name: Neil Barigye
Student number: 47205145
LinguaLink’s functional requirements and nonfunctional requirements (differentiated by an asterisk *) are as follows:
The minimum viable product (MVP) for LinguaLink should have:
There are three quality attributes (QAs) that are most important to LinguaLink. In order, they are Reliability, Availability, and Scalability. These QAs ensure that the platform is accessible 24/7, always functions smoothly, and accommodates a growing user base without performance degradation.
In this context, reliability means consistent delivery of functionality without failure. Reliability is so important to LinguaLink because it is primarily a communication application. As such, users should always be able to match with partners, message them, and hold real-time conversations without disruptions. Reliability also means that when failures do occur, their conversations are retained, and their data is saved.
Availability goes hand in hand with reliability in LinguaLink, ensuring that it is accessible whenever users need it. Since LinguaLink may be people’s primary mode of communication with their newfound friends, and since language learning is optimised by real-time conversations, downtime must be minimized.
Scalability, while third, is still very important. Scalability ensures LinguaLink stays responsive and cost-efficient as user numbers grow. Given the application’s potential popularity, the system must accommodate a rapidly expanding user base while maintaining low latency and high performance.
Reliability can be evaluated by logging failed interactions like dropped calls or unsuccessful messages. Regular stress testing like sending multiple calls or texts in a short time frame could also be performed. Additionally, comprehensive system tests can assess all functions in both a low and high-stress load.
Availability evaluation can be achieved by monitoring the uptime using software like AWS CloudWatch. If the downtime exceeds a certain threshold, like 3% of the uptime for example, an investigation will be conducted, and the cause will be addressed. Additionally, LinguaLink could give users the option to submit user reports, which could help identify potentially overlooked issues.
LinguaLink’s scalability can be measured by monitoring system performance as user load increases with applications like Apache JMeter or k6. If response times are disproportionately slow relative to the number of concurrent users, accommodations will be made, like increasing server capacity or resource allocation, for example.