project-proposal-2025

UQ Box mobile

Abstract

The University’s facilities and resources are colorful. In the mean time, the facilities of a university always confuse first-year students and these facilities usually need them use computers, so the UQ Box mobile application integrates several features to help students interact with facilities more conveniently. This project aims at campus activities, which include course detail time schedules, library services , view grades, calculating the GPA, course comments and other important features.

Author

Name: Xin Wen

Student number: 49205868

Functionality

Students just simply clicks the button to access the UQ websites and interact with it in a user-friendly UI. In the daily life, they can use this app to check schedule, view grades, view comment before they enrolment a course and etc.

This application mainly includes these functions:

On the homepage:

On the User Profile:

On the Login Page:

Scope

The minimal viable product is a basic fundamental application that includes functions such as:

The model includes at least the user model, course model, grade model, and event model. The view includes login view, course timetable view, grade view, library event view, and profile view. The API design should cover login, course, grade, library event, profile, and other processing.

Quality Attributes

Modularity

Modularity means that each function or feature of a system can be developed and maintained independently by different developers, and each module can be easily understood, tested, and modified by others. The benefit of modularity is that it makes the system more flexible, allows data to be easily conveyed, and improves maintainability.

For this project, we split the work into three pages, with 2 or 3 people working on each page. We split the user login module, course timetable module, grade view module,event module, and so on. Clear interfaces are defined between modules to ensure that user token data can be passed between them for authorization. Using the token or Duo Security allows access to detailed personal information.

Scalability

Scalability is also important for this system. It means the system has the ability to process high peaks of access using available resources, ensuring better performance.

when a large number of students access the application to perform queries after the final exams, the database may receive a high volume of requests. so we need more database into different serves. we also can use cloud services such as AWS to reduce the pressure on local resources, and we can use a logging system to monitor system operation, including the user login module, course timetable module, grade view module, and event module.

Availability

Availability in this application means users can access it at all times, whatever the devices. If the system goes down, it may affect the user experience and cause them to lose interest in the application. We should avoid long downtime in the application.

For this project, we need to adapt to many devices using React (cross-platform technology) and other tools to avoid downtime, making it more available.

Evaluation

Modularity

Modularity means the independence between models. It also means high cohesion within each module. It requires low coupling. Each module needs to pass unit tests separately. The system should have 5 to 10 modules. Each module should be responsible for one function. Modules should not use other model interfaces.

Scalability

Scalability for both the application and database is essential. By observing the performance under increasing load situations, we can assess whether the system operates effectively and maintains good performance. Through monitoring different devices and tracking, we can evaluate how the system reacts during peak usage(load no more than 80%). During peak usage, the system should be able to handle at least 2,000 students accessing the application simultaneously.

Availability

Devices should work most of the time. If there are issues like server downtime, they should recover quickly. Metrics like MTTR (Mean Time to Recovery) and MTBF (Mean Time Between Failures) can help measure how available the system is. For the course model, a very bad situation is like Android ANR (Application Not Responding), which means the application does not respond to the user’s click or other actions for a long time. This is one of the worst performance issues of the application. Optimizing thread management and avoiding blocking the main thread will improve availability.