Online Charactersheet

From DQWiki
Jump to: navigation, search

Every now and then I get enthused about creating a character sheet and ranking system in MySQL and PHP that anyone can use online. Or if inclined and able, run their own version locally.

Usually this stalls at the design phase while trying to decide which way to build it.

This is an attempt at sharing the Online Charactersheet project to see if that helps get it past the design phase.

I prefer to start with data design and then add on function and UI design afterwards. If you believe in starting with process flow, feel free and maybe we can meet in the middle.

Requirements

Mandatory

  1. Store and maintain a dq character.
  2. Calculation of base chances and effects of standard dq abilities.
  3. Allow new character specific abilities to be added.
  4. Modifications to standard base chances and effects from non-standard items and abilities.
  5. Print a character sheet.
  6. Security so that only the player may change their character.
  7. Read-Only security level so that a player may make a read-only copy of their character available to other players or GMs.
  8. Calculation of ranking costs for player ranking choices
  9. Printing ranking sheets

Nice to Haves

  1. Storing history of ranking
  2. Character cash book to make tracking money easy
  3. Automated living expenses
  4. Item upload to have a record of items in case of folder loss.

Architecture

Open Source tools only!

OS Platform independent
Linux or Windows is assumed, but preferably allow for any platform that supports MySQL and PHP.
MySQL database
Ideally only use database portable queries and functions so that those who prefer other databases can plug them in. But if MySQL specific commands make the project easier then so be it.
XML Schema
Optionally design an XML schema for DQ characters. Online App could store data in XML in this format or have ability to import and export in this format.
Server side functions
I know PHP so that's my preference and what I'll be working in. But if some components would be better written in Perl or something else then why not. Provided that we're not duplicating too much functionality.
But no ASP!
Apache Web Server
Is there any other worth talking about?
Dynamic HTML Front End
Ideally stick to seperation of UI from logic so that anyone who is so inclined can build their own alternate front end, but the initial front end will be browser based using dynamic html and AJAX style submits and responses. Something that works as nicely as the Gmail interface.
prototype.js
A very nice collection of JavaScript functions that are well on their way to becoming an unofficial standard for web interfaces. There are several extensions to it as well, maybe use one of those but some of them get over-complicated or restrictive.
Refer prototype.js 3rd party documentation 3rd party introductory guide

Data

Logical Data Design

Player
  • Login
  • Password
  • Name
  • Email
Character
  • Player
  • Character Name
  • Race
  • Sex
  • College
  • Height
  • Weight
  • Social Status
Ability
  • Ability Type (Stat, Skill, Sub-Skill, Language, Spell, Talent, Ritual, Weapon, etc.)
  • Ability Name
  • Description
  • BC Calculation
  • Effects Calculation(s). Essentially there are two sorts of Effects calculations:
  1. Results (Targets, Damage, Range, Healing, ...)
  2. Modifiers (Stealth, Base chance, ...)
  • XP Cost
Character Ability

Physical Data Definitions

XML Schema

Functions

Project Owners

Chief Designer / Project Owner - Stephen
First in best dressed. Or at least until someone else with more enthusiasm/ability kicks me off the top of the hill.
Roles/Authority - Swing/final vote, allocation/revocation of responsibilities, co-ordination, arbitration, herding cats.
Database Design --
Roles/Authority - understand the database and be able to explain it to others, final approval of database design. Required to approve any database changes if/when development begins and any later phases.
XML Schema - Struan
Definition of XML Schema for a DQ character.
DBA --
UI Design --
...