Topic(s): MongoDB, Express, React, NodeJS
My senior project team and I developed a Dungeons & Dragons web application for a client.
Side Note: I am not allowed to share too much information about this project, so it'll be a very brief and high-level overview.
TL;DR: Collaboration and communication is king. I worked with popular tools (Jira, GitHub, and MERN stack). Agile principles left us with a working application all the way to our final deliverable.
Computer Science students at my university are required to complete a year-long project following Agile principles. Our client wanted a Dungeons & Dragons web application so that players can store their characters. My team of five and I developed the application using the MERN stack (MongoDB, Express, React, NodeJS).
Overall this project was great. Our client was also a developer and so they prioritized our learning over a working product. My team was also great and we were able to collaborate smoothly, we even ended up playing Dungeons & Dragons together. We were able to adhere to agile and ended up with a successful project.
Going into this project, I had two personal goals that I wanted to meet. I wanted to build better coding habits and I wanted to gain more experience with frontend development. Due to this project I got into the habit of writing comments in my code and clear documentation. Which is immensely important when working as a team. I also got to work a little bit on the frontend, mainly early design of the webpage. However, I ended up taking on more of the backend/middle ware stuff since that's what our team needed.
For this project we used a lot of popular tools. GitHub for version control, Jira for task management, and MERN as our teach stack. My team and I choose to use these tools because we wanted to have experience in popular tools for when we enter the workforce. I have used GitHub plenty of times, but Jira was a new tool to me. The MERN stack was also new to me, but being a popular stack there is a lot of documentation online to get me going.
Basically we used React to host the frontend view of the website and as out character builder portion of the applicaton. We then had MongoDB act as the database to hold a player's login information and created characters. And of course NodeJS and Express to have the database and frontend interact.
Of course, it wasn't all smooth sailing. We had to major pivots during our development lifecycle. At the end of the project we ended up pivoting to 3rd party login services for more security features. Mid-project we were going between using the MongoDB database and local JSON files to host character data because of potential copyright issues. This issue was never finalized in our project, but we left enough documentation for the future developers to consider.