1_SpellData | ||
2_SpellServer | ||
3_SpellSite | ||
4_Deployment | ||
Resources | ||
README.md |
Dungeons and Dragons Spell Cards
In this project, you will create an online tool to help people manage spell casting in Dungeons and Dragons. It will be a full-stack project, meaning it will involve a database (or data source), a backend and a frontend to be complete. You can work in a group to make it more fun and to let you focus on learning one aspect at a time.
The specifics of how to do all of the things required for this project are already available online through various free resources. Learning these skills will be your responsibility, and you should use every resource at your disposal to do so. If you get stuck at any point, please don't hesitate to reach out to a mentor as we are here to help you learn and will be happy to give a hand or point you in the right direction.
Project Overview
If you've played Dungeons and Dragons, you know that keeping track of your spells can be a real hassle. You have to choose spells from a huge list, keep track of which ones are allowed in your campaign, which ones you're allowed to use at what level and how many spell slots they use. What's worse, once you've chosen them you have to remember a ton of detailed rules about how they work!
You're going to help the whole DnD community with an online deck of spell cards! It will be fully customizable and responsive to your character and campaign. It's going to look awesome too.
you'll need the following skills for the different challenges in this project:
SpellData
- Data Structures - lists / arrays, JSON, csv
- Data Cleaning - text manipulation, handling missing data, etc,
- Ability to read and write files in your language of choice
SpellServer
- Handling HTTP Requests / Responses
- Data Structures - lists / arrays, JSON
SpellSite
- Handling HTTP Requests / Responses
- HTML & CSS
- Templating / Dynamic HTML
- Data Structures - lists / arrays, JSON
Choose Your Fighter!
This project can be done in any language you choose. Some easy ones to start with are Python, JavaScript, and Go. They all have strengths and weaknesses at different points in the project. You can pick any language you want or tackle different parts with different languages. You can go as deep as you want with this project, keeping it simple or making it complex.
Challenges
Each challenge will have some basic guidance and resources for you to work with as a starting point, but the rest will be up to you. If you get stuck or don't know where to start, reach out to a mentor. Good luck!
- Data Acquisition and Cleaning - You'll need to find a data source to supply you with the details of the hundreds of DnD spells available to you, and then transform it into a more useful format. Finally, you'll need to store the data in a way that you can easily access with a program.
- Providing the data through an online resource - To populate the data dynamically on a website, you'll need to make a simple server to send data about spells based on the parameters of a persons character, campaign, and choices.
- Displaying the data for user interaction - For the user to choose spells and keep them organized, you'll have to make for them an intuitive and engaging interface that displays the data about the spells available to them and allow them to select some from the deck to keep in their hand.
- Deployment - Deploying the project to a web server that can be reached on the internet will make it usable for all.
Final Boss
If you thought these challenges were hard, just wait: Integrating a group of people's work together is often the hardest challege of all!
It's likely that we will only finish the project if we communicate effectively and persist through challenges, even into the days and weeks to come.
Mentors are allowed to step in to assist during this final battle. This is something that even million and billion dollar companies struggle with, so don't take it too hard if we can't manage it on our first day. Stick with it!