It's Your World/Web App

From NexusCrossing

Jump to: navigation, search

Here I will discuss design aspects of the IYW Web App.

Once it is live, I will also include a link. :-)

Contents

[edit] A New Beginning

A lot has happened since this page was first created. One of the biggest things is that I am starting to learn about Django now, and will likely be doing the project in Django instead of Rails. I will start restructuring this page and gathering my thoughts.


[edit] Stuff Exported From the Forum

Moved To a Separate Page for Now

[edit] "Design Doc"

  I will be adding the following information with the assumption 
  of using Rails 3.0 (since that is what I am using).  I am using
  MySQL for the database back end.
  
  I will start updating this information.  A lot of what is here at this 
  stage won't need major changes.  The biggest thing is that anything language
  or framework dependent will change based on the move to Python/Django.
  
  

[edit] List of Models

Models:
  User             -  The Players
  Deity            -  The Character
  City             -  Cities
  Population       -  Members of a race in a city.
  Monument         -  Major things created by/for or dedicated to a deity
  Artifact         -  Items created by the god that do not fall under monuments or special beings
  SpecialBeing     -  Creatures in the service of the deity that do not follow the normal rules.

[edit] Relationships of Models

 User
   email:string
   hash_password:string
   has_many :deity
   
 Deity
   name:string
   belongs_to :user
   has_many :city
   has_many :population through :city
   has_many :monument through :city
   has_many :special_being through :city
 
 City
   has_many :population
   has_many :monument
   has_many :artifact
   has_many :special_being

[edit] Fleshed Out Models

 User
  name:string            -  The user's login name
  email:string           -  The user's email address, in case their password is lost.
  password:string        -  An encrypted password
 
 Deity
   name:string           -  Name of the Deity
   user_id:integer       -  User it belongs to
   description:text      -  Deity's description
   public:boolean        -  Is it publicly viewable?  (usually false)
   notepad_player:text   -  A notepad only the player can see
   notepad_gm:text       -  A notepad only the GM can see
   notepad_shared:text   -  A notepad that the player and the GM can see
 
 City
   name:string           -  Name of the city
   description:text      -  Description of the city
   deity_id:integer      -  Deity that owns the city
 
 Race
   name:string
   description:text
   power_ratio:integer   -  Population required to generate 1 power point per turn
   growth_rate:integer   -  Population required to generate 1 population member per turn
 
 Population
   name:string           -  Name of the population (race, etc)
   race_id:integer       -  The race of the population group
   city_id:integer       -  City that the population lives in
   deity_id:integer      -  Deity that the population worships
   description:text      -  Description
   population:integer    -  Number of members
   
 Artifact
   name:string           -  What is the name of the artifact?
   deity_id:integer      -  Who owns it?
   description:text      -  Describe the artifact and what it does?
   notes:text            -  These are various notes about the artifact that don't fit descriptoin.
   power:integer         -  How much power does it generate?
   upkeep:integer        -  What is the upkeep cost if any?
   capacity:integer      -  How much power can it store?
   stored:integer        -  How much power is it currently storing?
   construction_counter:integer -  How many weeks until it is finished being built?

[edit] Comments on Layout

For the current version of the application, I will make some decisions based on my current skill level.

  • If two gods are in a city, then there will be two instances of that city. Interactions between two populations will not be 100% automated yet.


[edit] Controllers

 Home
   index
   help
   about


 User
   login
   logout
   dashboard
   register
Personal tools