project-proposal-2025

Enginuity

Abstract

Do you find yourself in Week 6, behind on lectures, drowning in coding assignments, and trying to have a social life? Feeling overwhelmed with everything on your plate? You’re used to the chaos of engineering and constantly juggling tasks and feeling overwhelmed. That’s okay, Enginuity gets it. Enginuity adapts to you, offering schedule adjustments that keep you flexible. It won’t force an overly strict routine if you’re a person that prefers a flexible approach, it will suggest time buckets instead.

Enginuity offers smart scheduling and task management, automatically organising your tasks based on deadlines. It also automatically reshuffles your schedule when unexpected events happen.

Author

Name: Sarah Abdulkhalek

Student number: 47234864

Functionality

Account: Users should be able to create an account, input information, and set up scheduling preferences.

Smart Scheduling: Enginuity should automatically organise a schedule based on tasks and details, and allow manual adjustments.

Productivity Tracking: Enginuity should track productivity patterns determining whether users are more productive in the morning, night, or at specific times of day, and adjust schedules accordingly by notifying the user that the schedule has been modified.

Reminders: Smart reminders and customizable notifications will keep users on track with upcoming deadlines, study breaks, and changes in their schedules. Smart nudges rather than a strict “Time to study” for users who prefer a more flexible approach.

Calendar View and Integration: A visual calendar will display all upcoming tasks, assignments, and events for the user, helping to keep track of the busy schedule at a glance. Integrates with Google Calendar, Outlook, UQ Timetable.

Collaboration & Team Study Planning: Users can share schedules and collaborate. Suggests common free time slots for group meetings.

Gamification & Streaks: Users can earn points for completing tasks on time. The system uses streak tracking to encourage consistency in study habits.

Scope

Account: Basic account creation and personal study preferences setup.

Smart Scheduling (Basic Version): Users input tasks with deadline, estimated effort, and priority. Tasks are sorted using a scoring formula and simple sorting algorithm allowing manual adjustments allowed for user flexibility. If possible, could implement supervised learning for a more personalised schedule.

Rescheduling system: Detects conflicting events and suggests alternative schedules based on predefined rules, constraints (no AI yet for the MVP).

Productivity tracking: Based on duration of task until completion or repetitive rescheduling of a certain task, will suggest a different option to the user. A basic version of this feature is expected for the MVP, a more advanced version would integrate supervised learning for personalised analysis of the user’s productivity and habits.

Reminders: Basic reminders for upcoming deadlines and study sessions and smart nudges.

Calendar View and Integration: Simple calendar UI view to display scheduled tasks. Syncing with Google Calendar or UQ Timetable is preferred but might be difficult considering the time we have to complete the project.

Quality Attributes

Availability

Enginuity needs to be accessible at all times, allowing students to make quick adjustments to their schedules as needed. This is especially important for busy engineering students who have many deadlines and could have unexpected personal events that could impact the schedule. This helps students stay on track without unnecessary disruptions.

Scalability

The system must be able to scale to accommodate the growth of users without impacting the performance. It should be able to handle an increasing number of users and tasks while still giving an enjoyable experience to users, especially while one is modifying their schedule. Engineering students across various levels of study may use Enginuity.

Interoperability

Engineering students might use different applications to manage their time, being able to easily exchange data with some platforms is important. This will allow for an easy integration into students’ current workflows. Interoperability also ensures that different features within the system such as account management and smart scheduling are ‘linked’ properly.

Extensibility

Enginuity should be able to add new features and improvements (gamification, ‘group’ schedules). It will also include more advances features in the future by making the algorithm more complex to provide a more personalised experience to users. Hence, the app must be flexible enough to incorporate these new functionalities without disruptions.

Evaluation

Availability

The software should not experience downtime or delays that could hinder users from adapting to changes in their schedules, ensuring a smooth and reliable experience. This can be tested but monitoring the uptime. This can be done with automated monitoring tools to check the system’s accessibility at regular intervals and look at the uptime rate. This can also be tested by looking at the response time by doing a series of tasks. Stress testing is also another method we could use by putting more load on the system.

Scalability

To test that the system is remaining responsive with a larger number of tasks having to be completed we can do some load testing by simulating different user scenarios and evaluating how the system handles high volumes of users simultaneously modifying their schedules creating new events. The response time should remain acceptable as the number of users grows. The performance can also be noticed by interacting with the system, it can be fairly obvious whether the performance has severely degraded. We could possibly also evaluate whether we can scale the infrastructure horizontally.

Interoperability

We can include some API Integration testing in the case where the Google Calendar syncing feature is implemented. This will check if we are able to push and pull data between Enginuity and the other systems without any formatting or data loss issues. To test the internal components we must check internal API communications. For instance, checking if the smart scheduling feature for instance is receiving the necessary data (the inputs that the user put in when creating an event/task) and the system is adjusting the schedule accordingly.

Extensibility

Enginuity’s extensibility will be evaluated by ensuring that major features are decoupled for easy integration of new functionalities without disrupting existing ones. New features can be trialled in a controlled environment to assess their seamless integration. Backward compatibility can also be ensure to confirm that previous versions continue to work as expected. The performance impact of adding a feature can be evaluated to ensure that the core functionality remains unaffected.