all database files and backend code/api will be accessed in these files The idea is that the api is set up in such a way that you can have only the backend run on the server or the webapp can also be ran.

most cases both will be ran

Character Attrinutes (dnd5e)

Base Attributes

base attributes area attr that are not derived at run time. In most if not all cases these will remain the same through the runtime process

  • @name
  • @level
  • @race (package of feats)
  • @class (package of feats)

Derived Attributes

  • @strength::base
  • @dexterity::base
  • @constitution::base
  • @wisdom::base
  • @intelligence::base
  • @charisma::base
  • @armor::base

(Priority 1, needs to calculate these before all other attribtues)

  • @strength

  • @dexterity

  • @constitution

  • @wisdom

  • @intelligence

  • @charisma

  • @strength::modifier

  • @dexterity::modifier

  • @constitution::modifier

  • @wisdom::modifier

  • @intelligence::modifier

  • @charisma::modifier

  • @proficiency

(Priority 2, child derived attributes)

  • @strength_save

  • @dexterity_save

  • @constitution_save

  • @wisdom_save

  • @intelligence_save

  • @charisma_save

  • @hp

  • @hp_max

  • @hp_temp

  • @hit_die

  • @initative

  • @armor

  • @fire_resistance

  • @poison_resistance

  • @psychic_resistance

  • @cold_resistance

  • @thunder_resistance

  • @acid_resistance

  • @force_resistance

  • @radiant_resistance

  • @necortic_resistance

  • @bludgeoning_resistance

  • @piercing_resistance

  • @slashing_resistance

str skills

  • @athletics

dex skills

  • @acrobatics
  • @sleight_of_hand
  • @stealth

intelligence Skills

  • @arcana
  • @history
  • @investigation
  • @nature
  • @religion

wisdom skills

  • @animal_handling
  • @insight
  • @medicine
  • @perception
  • @survival

charisma skills

  • @deception
  • @intimidation
  • @performance
  • @persuasion

post derived attributes (Priority 3, grandchild derivatives)

str skills

  • @athletics#passive

dex skills

  • @acrobatics#passive
  • @sleight_of_hand#passive
  • @stealth#passive

intelligence Skills

  • @arcana#passive
  • @history#passive
  • @investigation#passive
  • @nature#passive
  • @religion#passive

wisdom skills

  • @animal_handling#passive
  • @insight#passive
  • @medicine#passive
  • @perception#passive
  • @survival#passive

charisma skills

  • @deception#passive
  • @intimidation#passive
  • @performance#passive
  • @persuasion#passive

Databases

USERS: this database will store profile info associated with users

  • user_uuid: Unique user ID (UUID)
  • username: Username/display name
  • password: Password (should be securely stored)
  • type: User type (for future SSO integration)
  • profile picture: Profile image (e.g. file path or URL)
  • flags: Settings/status flags (for basic settings; future use)

CHARACTERS: this table will store basic character data but also link the characters to the user_id