D&D 3.5 Character Sheet in Python

Project Concept

I have been rolling this idea around my head for the past few months and I've finally decided to go through with it. I am going to attempt to build a Dungeons and Dragons v3.5 edition Character Sheet app for mobile systems using Python with the Kivy GUI library. I have found that most of the existing apps made for this purpose are lackluster or clunky. It's going to be a challenge both for the new techniques I'll have to learn and also for making it both functional and aesthetically pleasing.

The project is expected to take 6 weeks of work, assuming no major unrelated schedule changes. I plan to use a simple waterfall method and I have broken the project down into these 4 major steps:


1. Planning

  • Requirements engineering is going to be a huge part of this phase. I want to build a powerful tool but I don't want to get bogged down by scope creep.

  • After listing requirements and what is out of scope for this project, I need to create a timeline for milestones and deliverables.

  • Listing out the tools I will need to use/learn to complete the listed requirements

  • Begin planning out classes and data structures that will be used in the implemented system.

  • drawing up ideas for how the system should look and creating mock-up designs of the different screens that will be displayed


2. Development

  • Begin to implement the planned system, making sure to keep the code as clean as possible.

  • Build the visual aspects first, then add the functionality.

  • function-ize whatever I can to make the code as extendable and modular as possible.


3. Testing

  • Since I have no partners to help with this, I will develop tests to run through the system to ensure each function works and is minimally bugged.

  • After doing self-testing, I will allow user-testing among friends of mine in our Dungeons and Dragons group. The feedback gained from this will be used to iterate through the development stage to improve aesthetics and functionality.


4. Deployment

  • If the app does well with my group, I plan to look into releasing it on Google Play and Apple.

I'm hoping that as i go forward with this series, I'll be able to both create a useful tool for myself and my friends as well as learn new techniques and practices in coding and project management.