Future Work
Due to the limited amount of time and resources, and a relatively tight timeframe along with other academic commitments, there are several additional things we wish we could implement. These are already highlighted in the aforementioned "Known Limitations" section, but we are including them here again for the sake of completeness. As we performed critical evaluations of the system, we identified some areas that we have not yet completed, especially some tests to further assess the robustness and performance of our system. We are including these tests here as well so that, should situations permit, proper tests can be carried out to guarantee that our system meets the standards of our theoretical design and is able to be deployed to real users at UCL or other universities. Furthermore, we would love to complete all Could-Have features and some Won’t-Have features listed in our MoSCoW requirements lists. This way, we can further improve the user experience and provide additional functionality that will make our product even more versatile for users.
Addressing Known Limitations
-
Improved pinned project functionality: Pinned projects are an important feature that allows users to easily find and access projects that need attention. Currently, the pinned project functionality is not as robust as it could be. Improving this feature could involve allowing users to customize the appearance of pinned projects and pin projects from more locations.
-
Better error messages when encountering errors during traffic light data or student photo uploads: Error messages are an essential aspect of any system, as they help users understand what went wrong and how to fix it. Currently, the error messages that appear when encountering errors during traffic light data or student photo uploads are not very informative. Improving this feature could involve providing more detailed error messages that explain what went wrong and how to fix it, such as what the expected format is and how to fix it.
-
Streaming log messages when performing site migration: Site migration is a complex process that involves moving data from one location to another. During this process, it's important to monitor the system to ensure that everything is working as expected. Improving this feature could involve implementing streaming log messages that provide real-time updates on the site migration process.
-
Cache "Insight" graph data to speed up page loading: The "Insight" graph data is an important feature that provides users with a visual representation of student performance. However, loading this data can be slow, especially when dealing with large amounts of data. Improving this feature could involve caching the "Insight" graph data to speed up page loading times and improve overall system performance.
-
Implement server-side rendering for MUI: Server-side rendering is an important technique that can improve the performance and responsiveness of web applications. Currently, the system does not use server-side rendering for MUI, which can result in slower page loading times and a less responsive user interface. Improving this feature could involve implementing server-side rendering for MUI to improve overall system performance.
-
Redesign left-hand side menus and navigation breadcrumbs: The left-hand side menus and navigation breadcrumbs are important features that allow users to quickly navigate the system and conveniently customize it. Improving this feature could involve redesigning the left-hand side menus and navigation breadcrumbs to make them more visually appealing and easier to use.
Performing Additional Tests
-
Stress tests for system stability: Stress tests involve simulating heavy traffic and data volume to determine the system's actual capacity and how it performs under load. Even though we have designed our system with scalability and performance in mind, performing stress tests can verify the stability of the system and ensure that it can handle the expected volume of traffic. This helps to identify potential bottlenecks or failure points in the system and allows us to make necessary improvements to ensure that the system is stable and reliable.
-
Additional coverage tests: Additional coverage tests can help ensure that our tests are comprehensive and efficient. Currently, due to time limitations, we did not automate a tool to measure test coverage. By performing additional coverage tests and testing more edge cases and scenarios, we can identify potential issues that may have been missed in earlier testing. This helps ensure that the system is thoroughly tested and that we can identify and fix any issues before they impact users.
-
User acceptance tests for better user experience: User acceptance tests involve testing the system with real users to ensure that it meets their needs and expectations. By gathering more feedback from users with a wider variety of backgrounds, we can identify more potential issues or areas for improvement that may not have been identified in previous testing. This helps ensure that the system provides a positive user experience and meets the needs of its intended audience.
Implementing Additional Features
-
Integrating SSO Logins for Other Universities: Integrating Single Sign-On (SSO) logins for other universities is a useful feature that would allow students from other universities to access our platform using their existing login credentials. This would make it easier for students to access our platform and save time by eliminating the need for them to create a new account. To implement this feature, we would need to work with the IT departments of other universities to establish a good relationship by demonstrating the powerful functionality of our system and configuring our system to accept their SSO credentials. We would also need to ensure that our system is secure and that user data is protected.
-
Assigning a New Leader to Students in a Project Team: Assigning a new leader to students in a project team is an important feature that would allow team members to easily transfer leadership responsibilities to another member. This would be useful in situations where the original team leader is unavailable, has left the project, or is simply reluctant to be the leader. This could be done through a simple drag-and-drop interface or through a more elaborate selection process. However, careful state management and checking are required.
-
Searching and Filtering Existing Lecturers in the "All Lecturers" Table for the Admin Portal: Searching and filtering existing lecturers in the "All Lecturers" table for the admin portal is an important feature that would allow administrators to easily find and manage lecturers in the system. This would be especially useful in situations where there are a large number of lecturers in the system. This could be done using a simple search bar or through more elaborate filter options based on different attributes such as name, department, or course.