The primary goal of the game is for players to complete Objectives and Quests following a weekly based storyline, with each week having its own theme. An objective is a task (in game or in real life) that the player can accomplish. Objectives are grouped into quests. A quest is fulfilled by completing a specified number of objectives within that quest. Players get experience points for completing objectives and fulfilling quests.
Objectives and quests have a sequence of states that they go through:
### Quests
Available -> Triggered -> Fulfilled -> Completed
Quests may start in a null state and become available on their start date. An available quest becomes triggered when a user goes to a location. A quest becomes fulfilled when enough objectives are completed. And a quest is completed when all of the objectives are completed. In addition, a quest can be in the Expired state if its deadline passes.
### Objectives
Hidden -> Pending -> Need Notification -> Completed
When a quest gets triggered, its objectives become pending. Once an objective is fulfilled, its state will be needing notification. This means that our system will need to notify the user. After the user has been notified, the objective is completed.