Online Charactersheet
From DQWiki
Jump to navigationJump to 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
- Store and maintain a dq character.
- Calculation of base chances and effects of standard dq abilities.
- Allow new character specific abilities to be added.
- Modifications to standard base chances and effects from non-standard items and abilities.
- Print a character sheet.
- Security so that only the player may change their character.
- Read-Only security level so that a player may make a read-only copy of their character available to other players or GMs.
- Calculation of ranking costs for player ranking choices
- Printing ranking sheets
Nice to Haves
- Storing history of ranking
- Character cash book to make tracking money easy
- Automated living expenses
- 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
- 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:
- Results (Targets, Damage, Range, Healing, ...)
- 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 --
- ...