project-proposal-2025

[Book Club Banter]

Abstract

Do you ever find yourself wishing you could be more motivated to read? Ever wish you could talk about your favourite book with your friend, but they’re not up to the part you are? Well, here’s where Book Club Banter comes in! A software that lets you join a Book Club where you can read the book together! Leveraging Scalability, Reliability and Extensibility, this software lets you connect with multiple members in a single Book Club, receive real-time feedback of each member’s progression/thoughts of book, and provides your Book Club with a unique and personalised feel by letting you add customisable fields to each chapter!

Author

Name: Jasmine Hong

Student number: 47436547

Functionality

Scope

The MVP should contain the fundamental functionality for a single Book Club. This includes:

Quality Attributes

Three quality attributes are crucial to this project:

Scalability

This refers to the software’s ability to accommodate varying number of end users simultaneously, and maintaining the same performance and without requiring additional resources. Scalability is important to this project as the social aspect of reading a book together is the core of this project’s purpose. Thus, it is vital that multiple users should be able to join a Book Club. This therefore means that the Book Club should be able to maintain and keep track of multiple users’ progressions through the book, and multiple additional fields per chapter. AWS or another cloud infrastructure could be used to manage multiple users’ details and reviews in a Book Club, and also for allowing multiple users to join.

Reliability

This refers to the software’s ability to consistently perform its intended functionalities without error. A “consistent” performance in this project will refer to the system’s quick response time, therefore providing accurate, real-time feedback across multiple users. For example, as soon as another member completes a chapter, this should be immediately updated for all other members. Or as soon as another member updates an additional field, all other members should be able to see it. Similar to Scalability, this quality attribute is important for this project as it is crucial to the “sharing” experience when reading a book together. Though additionally, maintaining accurate, up-to-date data of each users’ progression is ideal for accountability - making sure that your fellow members are actually reading that book!

Extensibility

This refers to the software’s ability to add features or extensions, without affecting the core functionality of the system. As well as preparing the software for additional updates and features, extensibility is particularly important for the “Additional fields” feature. Users should be able to freely add additional fields, without affecting any of the core functions of the Book Club group. This can be achieved through use of a microkernel architecture, where the additional fields could be treated as new “plug-ins” to the core Book Club operations. This is important for the software as each Book Club should feel personalised to each group, and each chapter may have its own uniqueness, requiring a different field.

Evaluation

Scalability

Scalability will be achieved when multiple users (at least 5) will be able to join a Book Club simultaneously, and their data is being effectively maintained. This can be evaluated by load testing the software to assess whether the database can accommodate/handle multiple users accessing a single Book Club.

Reliability

One of the biggest challenges of reliability will be delivering real-time updates of a Book Club when there are multiple users. Therefore, Reliability can be evaluated by load testing the software and assessing based off performance metrics like the response time, to determine if timely updates are still delivered when multiple users are simultaneously accessing the system.

Extensibility

Extensibility can be evaluated by running unit tests (eg. JUnit and Mockito in Java) to ensure that the existing functionality remains unchanged after additional fields are added.