Blog Post #4: My Capstone Journey


Hello all! My group decided to create a web app for our capstone project. The scope of our project is to make an app that allows users to keep track of their characters for the tabletop role-playing game Dungeon World. We decided to use next.js with TypeScript as well as a mySQL database for this project. Next.js and TypeScript are completely new to me, so it was very cool to learn about server-side rendering! I also found myself enjoying TypeScript since it helped me get over some of the things that I dislike when working with JavaScript.

Our group has made a lot of headway since the project began! We mocked up our app, made our database, and made our home page and character creation wizard. It has been very fun to make an app with a group from the ground up. I knew my teammates before the project, so it is nice to get to work with my friends! We have been having weekly meetings to discuss the project as well as using a private slack channel to discuss day to day topics.

I have worked with authentication on this project. I did not take 372 or 493, so this is all very new to me! During the first sprint, I researched different authentication providers to use for the project. I ended up deciding to use Okta’s Auth0 because they had a nice tutorial showing how to implement it in a next.js project. I also had to setup some things with google cloud once we pushed the project to production. It was cool to get to see this cloud technology in action!

I also have been working with linking up the results from our db queries with the front end of our project. This has been a nice lesson in teaching me how to efficiently refactor something from being static to dynamic. It also reinforced the use of hooks in react for me, which I haven’t used much recently.

Our project is progressing very nicely, I am excited to be able to show you all a final product in a few weeks! Best of luck to you all!

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *