Fantastic Assistant

Summary

Fantastic Assistant - a mobile application supporting creation and management of the games and characters in the D&D 5e system. The main work has been concerned on the creation of a mobile application that would be used as management tool by D&D players. Idea of the project was born by observing the growing popularity of the paper RPG game and the lack of the popular and optimal solution. Created system allows users to create characters and games that their friends can join. Besides that, basic functionalities, the app is friendly to new players with its in-game hints about the game system, rolling dice simulator and intuitive UI. The thesis was prepared in seven chapters. First chapter was devoted to introduction of the thesis topic and the requirements of the application. The second chapter introduce the reader to the current mobile applications market and history of Dungeons and Dragons. Third chapter focuses on functional requirements, non-functional requirements and some selected use cases. Fourth chapter describes the system architecture and database. The fifth chapter describe all the useful information about the user interface. The sixth chapter presents contained information about the used technology, the programming environment and the implementation of functionalities. Finally, the last chapter we are summarizing the thesis and the achieved results. The basic part of the project was made with the Dart and Flutter, app was prepared for both iOS and Android mobile system. The state management was implemented using BLoC/Cubit and GetIt. The database was created with the use of Google tools like Firebase Firestore Database or Firebase Storage.

Use case

In order for the application to meet the results, the author decided to isolate the requirements that the system meets: • User authorization for easier management of data associated with the account • A system that binds users in a relationship ("friendship system") • Character management in the D&D 5e system

  • Facilitating the management of statistics as values ​​that are dependent on each other should be overwritten when they are changed, while still allowing for a lot of freedom • Supporting organization of games in real life
  • Creating games while giving the user the rights of a game master so that only this user has the right to edit game settings
  • Possibility to join the game as a game master or as a character in a dependency from user rights • Dice rolling simulator

In the project only two actors were recognized: an unlogged user and logged in user. Differences between actors mainly assume changes in access to given resources and application functions. Below is descriptions of the requirements for each actor. User not logged in: • Registration to the system • Password reminder • Sending an e-mail to complete the registration process • Login to the system Logged in user (player): • Logging out of the system • Account deletion (in order to meet the conditions for registering the application in the App Store) • Displays information useful in the error reporting process • Reporting an error • Changing your username • View users • Inviting users to your friends list • Accept or decline friend list invitations • Character creation and editing • Adding your characters to the game • View game information • Using the dice rolling simulator (in public or private mode) • Game creation and editing • Displaying information about characters present in the game (without viewing their notes)

Screenshot 2024-04-09 at 17 40 24

Database

Screenshot 2024-04-09 at 17 42 00

Technology stack

Dart, Flutter, Cubit, GetIt, AutoRoute, Shared preferences, Firebase – Authentication, Database, Storage

User interface

Authentication flow

Screenshot 2024-04-09 at 18 55 29 Screenshot 2024-04-09 at 18 56 54 Screenshot 2024-04-09 at 18 57 07 Screenshot 2024-04-09 at 18 57 22 Screenshot 2024-04-09 at 18 57 35

Settings flow

Screenshot 2024-04-09 at 18 57 44 Screenshot 2024-04-09 at 18 57 55 Screenshot 2024-04-09 at 18 58 07 Screenshot 2024-04-09 at 18 58 22

Characters flow

Screenshot 2024-04-09 at 18 58 43 Screenshot 2024-04-09 at 18 58 56 Screenshot 2024-04-09 at 18 59 10 Screenshot 2024-04-09 at 18 59 21 Screenshot 2024-04-09 at 18 59 36 Screenshot 2024-04-09 at 18 59 51 Screenshot 2024-04-09 at 19 00 07

Games flow

Screenshot 2024-04-09 at 19 00 18 Screenshot 2024-04-09 at 19 00 30 Screenshot 2024-04-09 at 19 00 51 Screenshot 2024-04-09 at 19 01 05 Screenshot 2024-04-09 at 19 01 22 Screenshot 2024-04-09 at 19 01 30 Screenshot 2024-04-09 at 19 01 47 Screenshot 2024-04-09 at 19 01 59 Screenshot 2024-04-09 at 19 02 14 Screenshot 2024-04-09 at 19 02 23