Skip to content

Pomo Kingdom

Juan-Carlos-Pacheco edited this page Oct 7, 2021 · 73 revisions

The Pomodoro technique is a productivity technique used to break up focused work into timed intervals.
Pomo Kingdom aims to reward these focused intervals with commonly found RPG game elements.

Introduction

Purpose:

Pomo Kingdom is a timer that combines the Pomodoro technique with RPG elements to make focused learning more fun and interactive. The purpose of this wiki is to function as an information document of requirements in the development of Pomo Kingdom. The requirements later described in the wiki help create priorities and act as milestones during the development of the software.

Scope:

The Pomo Kingdom will be an android app and web application to help users manage their tasks and encourage the user to work with the time they have rather than against it. In addition, the user will be able to access real-time reports showing how much time they have spent working on each task/subject, the amounts of tasks completed, and the total hours of task working for each day and month. Users will also be able to add one another to their friend's lists to track each other's progress. The web and Android applications will be aesthetic and easy-to-use to inspire users to focus and complete their tasks.

Definitions:

List of Key Features:

  • Pomodoro Timer with the ability to change the time for intervals
  • Account login that saves your progress
  • Gain experience and level up as you use the app more. Gain Achievements/Items for reaching different levels
  • Database that stores all of this data(account info, items gained, etc.)
  • Having the front-end as both a web app and an android app
  • Access real-time reports showing how much time you have spent working on your tasks

Description

2.1 Components:

The three main components of this project are the database, the web application client, and the android application client. Both the web and android apps will connect to the same database. The web and android apps will have the same functionality in general.

2.2 Database:

We will be creating this database using MongoDB to store the user’s information. This includes the user’s username and password, preferred settings, items and achievements received, the user’s current experience level, and other statistics as we see fit. It will also store all the different possible items and achievements that the user can unlock. When the user logs in, the database will be used to verify the credentials are the same as the ones stored in the database.

2.3 Clients(Web and Android app):

The clients will be the website that we create and the android app. Both of these applications will connect to the database. Once the user is logged in, the client will retrieve their data from the database and then let the user use different features of the app such as the Pomodoro timer, user avatar, user level, user stats, item shop, achievements, and the friend system. The client can update the user’s information based on events in the client and can then send this updated information to the database. There are no functional differences between the web and android app, only UX changes to match the platform.

Requirements

UI:

  • User Registration/Login Page
    • UIReq1
    • Description: Once the user has accessed the web page or android app they will be prompted with a registration or log in screen, they need to be logged in or registered to view their character/use the timer.
    • Dependency: N/A
  • Main Page with Timer
    • UIReq2
    • Description: Once the user has logged in they can now be presented with the “main” page where they can start the pomodoro timer to begin “questing”. Also they will see their avatar and the tasks they need to complete in an organized manner.
    • Dependency: UIReq1
  • Settings Page
    • UIReq3
    • Description: Once the user is logged in and on the main page, they will be able to navigate to the settings page (pop-up) where they can adjust various settings.
    • Dependency: UIReq1, UIReq2
  • Character Stats Page
    • UIReq4
    • Description: Once the user is logged in and on the main page, they will be able to navigate to a character stats page, where the stats of their character will be shown to them.
    • Dependency: UIReq1, UIReq2
  • Inventory Page
    • UIReq5
    • Description: Once the user is logged in and on the main page, the user can access their characters inventory and equip/unequip
    • Dependency: UIReq1, UIReq2

Functional:

  • Database
    • FR1
    • Description: The database is used to store the data used by the software. The database will store user accounts info such as user login info, timer settings, character progression and friends list.
    • Dependency: N/A
  • User Registration
    • FR2
    • Description: The user will be able to create a new profile by providing a username and password.
    • Dependency: FR1
  • User Login
    • FR3
    • Description: The user can access an already created account by providing the username and password created during the registration process. Usernames and passwords will be checked against the database in order to access individual accounts.
    • Dependency: FR1
  • Edit timer
    • FR4
    • Description: Allows the user to set the interval, small break, and large break times used in the software.
    • Dependency: FR1
  • User Avatar
    • FR5
    • Description: The user avatar includes all of the game-related components of the user’s profile. This would include the user’s level, health, inventory, equipped gear, achievement progress, and more. The database will be used to store all of this information, and everything will be account-bound. The user avatar is essentially the foundation on which many of the game mechanics will be built upon.
    • Dependency: FR1, FR2
  • User level and stats
    • FR6
    • Description: The user’s level will determine many of their stats, their stats improve as their level grows. Stats will include things like strength and max health. Defeating enemies, clearing stages, and unlocking achievements will allow the user to gain xp (experience points) and then level up, allowing them to progress in the game. All of the information related to the user’s current level, their xp, and their other stats will be stored using the database and will be account specific.
    • Dependency: FR5
  • Stages
    • FR7
    • Description: Stages will be what the user goes through to progress through the game. They will encounter enemies to be defeated which will give them xp and other items to get further in the game. The enemies encountered will be random, with a table of enemies to choose from being stored in the database. The possible item drops and end of stage rewards will also be stored in the database.
    • Dependency: FR6
  • Items
    • FR8
    • Description: Items can be earned by players in a variety of ways, whether it be defeating a monster, clearing a stage, or unlocking an achievement. These items can be broken down into categories, such as weapons, armor, or power-ups. They will be account-bound and stored in the database where the account information is held. The database will also be used to track what items the player currently has equipped at a given time.
    • Dependency: FR5
  • Item shop
    • FR9
    • Description: The item shop will serve the function of allowing the user to use currency to buy new items or upgrades to existing items. The shop will be implemented to progress with the user, so that more powerful gear will be available when the user becomes more powerful. The available items in the shop will be stored in the database and will be account-based.
    • Dependency: FR8
  • Achievements
    • FR10
    • Description: Achievements can be earned by players for reaching certain milestones or accomplishing certain goals. These will be account-bound and may provide users with exclusive items or an xp boost. These achievements will be stored in the database as well as the user’s progress on each achievement.
    • Dependency: FR5
  • Friend System
    • FR11
    • Description: Registered users will have the ability to add one another to their friend’s lists. This will allow for players to see each other’s progress, participate in activities together to give a bonus to their progress, and maybe even trade items.
    • Dependency: FR2, FR5
  • User Logout
    • FR12
    • Description: This will allow users to logout the current account.
    • FR1, FR2

Technology

Android App:

Kotlin
Android Studio

Web App:

React
Javascript
CSS
HTML

Backend:

MongoDB

Clone this wiki locally