Jien spends a lot of her free time playing the Pathfinder tabletop RPG. But she also hate carrying around a paper character sheet. Old pencil marks, eraser bits, and coffee stains tend to prove quite a problem when you're trying to keep a character sheet clean and updated, and the website she's been using, while kind of pretty, is not very convenient to use. Our goal with this project is to develop and deploy a website through which we and others can build and store digital characters sheets.
What it does
Roll With It features a user-friendly tab-based interface that is much easier to use than the average paper sheet (along with the limited ones we've found online), as well as auto-completing fields to save some of the cumbersome arithmetic that can get extremely time-consuming at higher levels.
How we built it
We started with an HTML-only series of files that Jien coded the first night as a kickoff point for Kelly and Alex to start working on our databases for information retention. Over the course of Saturday, we've been working on our databases, polishing the UI, and making the UI a bit prettier than black Times New Roman on a stark white background. It's not as refined as I'd like it to be, but it's good for the time we had.
Challenges we ran into
Andrew: The biggest hurdle for me was my limited web-dev and database knowledge. That being said, I did what I could to understand everything that was going on, as well as making sure linux commands and such on the server were functional and optimal.
Alex and Kelly: The hardest part of this weekend was figuring out how the technology we needed for our website worked together. Getting the domain, a server, and the database to communicate was much more of an intricate process than I thought it would be. I also struggled to get up to speed with the php code as I've never used php before but Kelly helped me get up to speed and I learned a lot from working with her and my other teammates.
Accomplishments that we're proud of
Jien: One of the things I'm proud of is actually something that should have been obvious to me from the beginning. The parts of the character sheet (e.g. the Skills page) that required adding up a series of inputs to a total were difficult to line up. I spent a lot of time modifying CSS in an attempt to make them align before finally realising that the exact end result I was trying to accomplish could be easily met with a table of data rather than just a complicated series of divs. It isn't the most groundbreaking discovery in the world, but I'm very happy I was able to optimise at least that part of my code.
Andrew: We really had a fun time trying to figure out how the project would be displayed on AWS. I'm glad we ended up with most parts coming together, even if not entirely functional just yet. To make sure all of our changes in github would show up, I wrote a script to pull from our repository every minute or so. In the end, it may have been the source of some problems (it started pulling every second as opposed to minute xD), but nevertheless a good way to streamline later development.
Alex and Kelly: I got the database to communicate with the web server for creating player accounts and creating characters. This was difficult for me and I got stumped a few times on syntax issues.
What we learned
Jien: This links somewhat into the accomplishment. I learned a very efficient way to display values that need to be added from a series of fields, which is something that I struggled with far too much in the first day.
Andrew: I have very limited experience with web development and databases, so I got to learn a lot from the rest of my team how everything works. Using git via the command line on the server was a good accomplishment.
Alex and Kelly: I learned a ton about php as well as how a website is set up with the different factors that go into it. I also learned about AWS as we used this for a server, routing our DNS, and the database.
What's next for Roll With It
We never got to most of the server function that we were hoping for -- i.e. making sure every single piece of data that goes into the sheet gets saved into the database. Unfortunately, as amateur web developers, we weren't able to get all the way to that point, but hopefully in the future we will be able to launch this site as a fully functional character sheet available to anyone who needs it.
Coming up first after we finish the core Pathfinder features will be either a character sheet for D&D 5e or an expanded UI to support spellcasters. As of today, this only supports characters that fight with their bodies rather than their minds; we'd like to make sure that our creation supports all character classes.