
Knightrodex
Web & Mobile App
September 2023 - December 2023
Overview
Knightrodex is a QR-based badge hunting app designed for UCF students. Students can decipher hints and work together to find badges across campus. These badges can represent UCF events, landmarks, and more. Students can view their activity and follow other users to view their friend's activity.
​
This project was completed during the Fall 2023 semester. I worked with 6 other developers of various roles in an agile environment to create a full stack web application with a mobile component. We utilized a MERN stack (MongoDB, Express.js, React.js, and Node.js) for our project.
What I Contributed
Lead API Developer
-
Scripted 13 API endpoints using Express.js that interacted with a MongoDB database containing user and badge collections.
-
Led the build and deployment process of the application to a remote server using Heroku.
-
Created 56 unit tests using JEST to validate that the API endpoints functioned correctly in any fail/success case.
-
Integrated JsonWebTokens (JWTs), password hashing, and email verification to secure user information while interacting with the app.
-
Documented how to use each endpoint with SwaggerHub.
API Unit Tests



Documentation

Encountered Challenges & Solutions
Initial Deployment to Heroku
System Overview: We were given a very barebones server.js file that sets up the app to listen to some port. I also had a .env file that stored API and URI keys for third party technology. Both of these files were stored inside a backend folder We were required to deploy our application to a remote server. We decided to use Heroku due to its ease of use and simple integration with git.
​
Problem: The API was the first component that needed to be deployed so that the front-end developers could begin working with it. Therefore, I had to set up and deploy the first build to Heroku. However, my builds kept failing even though everything worked fine on my local host. I repeatedly got errors for my MongoDB URI key not being found, but it was stored inside my .env file.
​
Solution: I began debugging by looking through all error messages that I could find during the build process. I had to look up many error codes and possible fixes for them. However, none of the forums I looked at really helped solve my problem. I was then able to stumble upon a small post that said to verify .env was in the root folder in order for Heroku to recognize it. When I moved my .env file to the root folder, everything worked as expected and I got the first successful build in the project. I documented my process for my team members, and was able to guide them through deploying to Heroku.
​
What I Learned: I was forced to troubleshoot technology that I have no prior experience with by myself, helping me learn how to solve new problems without guidance.