project-proposal-2025

[Health Track]

Abstract

Do you’ve ever felt anxious about your health, but it’s hard to judge your health by the information you have about your body. Sometimes you keep track of your health, but you don’t know how you can find out about it, and Health Track can help you do that, not only by keeping track of the changes in your body, but also by analyzing the current state of your health and planning for your future health recovery plan. Health Track can also help you record the incoming data from your sensors, and this application can help you analyze the state of your health in a timely manner, without the need for too many operations and complicated processes. And the software can launch some training programs for you according to your health status, which is suitable for your body’s recovery. Of course, when your health information, such as heartbeat pulse and other characteristics are abnormal, the system will also send you an early warning to ensure your safety. Personal information is authenticated to ensure that it will not be leaked. Since tracking health status requires recording a large amount of data, it is important that the application is scalable as we must make sure that the application doesn’t crash in the face of a large amount of data. Similarly, it was also important for the app to have modularity, so that users could not have to look at the cumbersome interface and just focus on what they are interested in. Likewise, the Availability that allows users to use the software anytime, anywhere, and no matter what the situation is, is also very important! Finally, I think to extend the life of a product, then the maintainability of this product is also an important criterion to consider.

Author

Name: Haowen Luo

Student number: 48690896

Functionality

Overview of numerous flows Sign up- Verify – Initialize the health state – Start the application

Login -Verify-Collect the user’s data – Analysis – Print health report

Login-Verify-Collect the user’s data-Analysis – Make a plan

Login-Verify-Use user’s health report-warning Feature

  1. New user signup and verification via the SPA.
  2. Two-Factor authentication.
  3. Real-time health data monitoring and activity and calorie tracking.
  4. Request auto calculations. The following will be automated
  5. Detects changes in the user’s heart rate
  6. Record calories burned by users
  7. Monitor real-time alerts for unusual changes
  8. Use all the above to print out the report
  9. User Dashboard with metrics such as heart rate, steps and calories.
  10. Generate training programs based on user activity levels

    Scope

    The scope for the MVP of this system will include the features

User login: We will use the Vue.js framework to build a SPA that implements a secure login system based on two-factor authentication.

User dashboard: Displays recorded information about the user, such as heart rate, step count, etc. The user can interact with this page and view the desired information at any time.

Data collection: Some APIs to receive some information from the user recorded by the sensor.

Alarm: By comparing the data of different time periods, when the data fluctuates too much at a certain time or the data exceeds a set threshold, the user is automatically alerted.

Report Generation: Will summarize the user’s physical health to make an analysis and then output a PDF report to record the user’s health status information.

Train recommendations: Some training recommendations based on the user’s activity level and physical condition.

Quality Attributes

Scalability: The scalability of the Health Track is very important, because when we need to have real-time data processing capability, we may face the problem of user access growth. We can cope with the problem of large user data uploads by scaling the architecture horizontally and utilizing Kubernetes to automatically increase or decrease API.

Scalability can be tested using load testing tools to simulate user access, and then evaluating the length of application response times, and error rates to ensure scalability.

Availability: Availability is very important to Health Track, because as health monitoring software, the software needs to be able to monitor information all the time, even in extreme situations where there’s no internet. So, we may need to store some data offline to the local end and then synchronize back to the cloud when the network is restored.

Availability is checked by monitoring whether the data on the local side can be transferred to the cloud after disconnecting from the network, to face those extreme situations.

Modularity: Modularity is very important for Health Track, because we are an application made up of a combination of components, even if there is a problem with one part, it will not affect the other modules.

Modularity can be tested by the ability to separate the whole into individual services that work and are tested independently. This can be accomplished by suspending one module service to test the availability of other modules, as well as testing each module individually for correct functionality.

Maintainability Maintainability is also important for Health Track, if it is possible to make edits in a product’s lifespan to extend life is a very cost-effective approach.

Adopting MVC architecture to distinguish service layer, business layer and data layer, each module operates independently, simplifying maintenance and expansion. Each modification is recorded, making it easy to track and understand the changes and reduce long-term maintenance costs. This design ensures that the system can be efficiently updated and optimized without affecting other parts, supporting continuous improvement of the software at lower cost over its long-life cycle, further enhancing overall maintainability and flexibility.

Security Security is important for all applications, and in Health Track, we need to avoid disclosure of information about users.

To test the security, we can enable users to dynamically verify permissions for each data access, even if the user is logged in, i.e. 2FA. encrypts data using AES-256 during data transmission.

Evaluation

Scalability: Gradually increase the system load to the system to simulate increased user access and determine what the maximum number of requests will be, comparing the maximum number of requests to the expected number; if the former is greater than the latter, the system can be considered scalable.

Availability: Analyze whether the information recorded by the system in the local state is consistent with the information in the networked state, and monitor whether the local data uploaded to the network reports errors to determine whether the application has an Availability:

Modularity: The system at the beginning of the main test standardized code, tries to achieve high cohesion bottom coupling standards, so that the system is layered and chunked to facilitate the later maintenance and compatibility with other interfaces. Layered test through the breakpoints whether each unit can run alone, if the expectations are met, then the application has a modularity.

Maintainability: With modularity assured, it’s easy to implement Maintainability’s functionality by simply describing the interface’s functionality in the documentation

Security: Since the application has AES-256 encryption and 2FA, we only need to perform a cyber-attack such as DOI or penetration test on the system, and if the system doesn’t have any problems, then it means that the application has a high level of security.