- Product Vision
- Requirements
- User Personas
- Features
- Backlog
- Design
- Architectural Description
i. Product Syntesis
ii. C4 Diagrams
iii. Non-functional Requirements - QA - Testing
- Security Analysis
- CI/CD
- Demo
- Input: Account details
- Activation: Press on Sign-up
- Action: A user account is being created
- Output: Gain access to application functionality
- Input: Account credentials
- Activation: Press on Sign-in
- Action: User credentials are being checked for validation
- Output: Access to application
- Input: Task details (Title, Description, Due Date/Time, Priority Level, Task Type)
- Activation: Press on "Create Task" and other task related butons
- Action: ask details are processed; unique logic is applied based on the selected task type (e.g., Standard, Habit,etc)
- Output: Task is added to the task list with appropriate settings and indicators; points are allocated; confirmation message is displayed
- Input: created tasks
- Activation: navigate to designated screen
- Action: Calculate levels for every stat based on the completed task
- Output: Stats are acccurately updated and displayed
- Input: Recorded Tasks, interests and friends
- Activation: Navigate to designated section for recommandations
- Action: Use different methods to create new customized tasks for the user
- Output: Display the recommended task list
- Input: Recorded and completed Tasks
- Activation: Navigate to designated page
- Action: Calculate and create progress related information
- Output: Display the progress-related information in an intuitive manner
- Input: Search other users and/ or accept friend requests
- Activation: press invite/ accept invitation buttons
- Action: Associate two user accounts as being friends
- Output: Display the new friend in the friends list
Prioritized backlog is situated in projects on Github, based on the User Stories from Issues
Gamify is a mobile application that enables users to manage their daily activities more efficiently, interact with friends, and stay motivated through a gamification system. It combines task management functionalities with social interaction, aiming to boost users' motivation to complete their tasks and to keep their interest in the application for as long as possible.
At the intermediate deliverable, the team has established the following functional objectives for the final deliverable:
- the ability to make an account
- the ability to manage three different types of tasks to organize work more efficiently.
- the ability to receive daily tasks suggested by the app
- the ability to log in
- the ability to connect with one or more friends
- the ability to give and receive challenges from buddies
- the ability to level up my character, based on my achievements and in-app progress
- the ability to choose the initial appearance of my character
- the ability to have suggestions that are tailored to my interests
Whilst some of the objectives, like: authentication, login and, the creation of three different tasks(without the possibility to edit or delete them :))) were already completed at the intermediate deliverable, for the final deliverable we still had many functionalities to implement. Now we can say that we managed to implement all the above-mentioned features, except the ability to level up your character, based on your achievements. We decided to give up on this idea because none of us have previously worked with animation tools and this process would have been a burden given this context. Nevertheless, we still created a feature that increases each character’s stats based on personal accomplishments.

- Load a user’s tasks within one second.
- Don’t let users wait for their suggestions.
- Searching a buddy should not take more than 2 seconds.
- The user should be aware of any loading processes.
- No loading process should take forever.
- switching to a NoSQL database whose documents have been organized in a manner in which our main search processes would be as efficient as possible
- working with contexts which fetch all our user data when the app is opened, guaranteeing no loading time for the user afterwards
- scheduling the LLM which provides the suggestions to asynchronously generate them at the beginning of each day; this way, our users won’t have to wait for the tasks to generate (~ 8 seconds / task) the first time they enter the suggestions screen
Main Threats:
- No Data Encryption
- Unsafe Communication Protocol (HTTP)
- Insecure Authentication
- Client-side Injection
Best Practices to Avoid Mentioned Threats:
- Encrypt data & use proper encryption key management solutions
- Use a safer communication protocol with the server (HTTPS, TSL)
- Use access control to restrict access to the stored data
- Add requirements to users’ passwords to make them more robust
- Add input validation in order to prevent code injection