Skip to main content

Project Gallery

Project Details

(Click to expand)

Initiated development for my mom's benefit. As a mystery shopper, she often needs to keep track of time, pictures, notes of descriptions, and other things. I made an app that will easily be able to help keep track of those things, while still being inconspicuous by looking like a texting app.

Using Angular and Ionic to build the basic app functionality, I then utilized Capacitor to work with native functions (for example, the app uses a function to connect with the native camera intent, so the app can use the devices camera functions).

After completing a major part of the app, I gave it to a group of testers to test the app for correct functionality, find bugs, provide feedback, etc. From this information, I then made the necessary adjustments to the app.

This project was initially started as a beginning project for one of my classes at BYU-Idaho. I have made a basic HTML and CSS website. In another project, I added more functionality and incorporated accounts with Google, account management, and more. When the time came for my final project, I was unsure of what to do, and I stumbled upon my earlier projects of this. I decided I wanted to completely refactor the frontend, build the backend, improve functionality and scalability, and add more features (such as a code playground, Q&As on projects/articles/courses, and actual course content).

Using Node.js and Express.js to develop the backend, I used ejs templates to build the frontend (essentially HTML, just with JavaScript bits stuck in to make content adjustable before serving pages). Reworked the HTML structure to be better manageable and more semantical and structurally sound. Revamped the CSS to better style the pages and use fewer declarations.

In the backend, I linked to a MongoDB database to manage courses, articles, users, posts, projects, etc. Built, tested, and enhanced methods to work with the database to efficiently complete all the CRUD operations on the database collections. Certain operations had restrictions based on user levels or locked status (for example, courses, only able to edit with database manager access).

Within the website, I built an option for users to write and test code. Used Ace Editor to display the code as in a code editor. With limits to my knowledge and time limits for school project, I was only able to get HTML and CSS to be testable, all others can be written with syntax highlighting, but cannot be run.

Another school project expansion. We were supposed to make a playable Sudoku game that ran in the terminal. Using Python, I built it to extract the board data from a text file. After loading that data into local variables, the user is able to enter numbers into the spots in the board labeled columns A - I and rows 1 - 9. As some numbers are in the board initially, I added the restriction so the user cannot change the numbers originally in the board, only the ones they entered.

In addition to those requirements for the project, I added the styling to the console output using the "Colored" Python package, so that it actually looks like a normal Sudoku board. 

Then the final thing and the part I'm most proud of is the solver. I did not build it like normal Sudoku solvers are built. I run through the board a few times, doing the types of checks that I do when I solve Sudoku games, and use that to solve it. It isn't able to solve every game, but it can solve almost all easy and medium boards, and many hard level boards.

Switch is a game that I came up with, based on another game (the name of which I cannot remember) that I played a few times with my cousin. I am honestly surprised at how well I did with it, since I built it early on in my programming journey. It was the most complex project I had worked on up until that point.

The player jumps their character between the walls to avoid the spikes. As the game goes on the speed increases, making it harder to jump in time to avoid the spikes.

I originally developed this for my project "Genius Coding", for the articles and courses needing to show code samples. It only works for HTML and JavaScript. I will soon be adding new languages that it supports.

This project doesn't have much functionality, it is just a 3D Rubik's Cube made with HTML elements (not in a Canvas). I was developing the functionality for the user to be able to move the sides so they can mix it up and solve it, but there were some complications and I lost all my work. Eventually I will finish that.

Want to Collaborate?

If you have a project idea or have a project you've started and want a collaborator, feel free to reach out to me! I'd love to help out. Just let me know your plans/ideas and I'll let you know if it's something I'd be comfortable doing. If it is, we can communicate how we will go forward with it.

Have a Question?

Have a question about one of my projects? Reach out! I'd love to share and discuss my projects and see ways I can improve them. I am happy to share the knowledge I have, especially with those who are learning or who are struggling to master a concept. My time in college, I was able to learn concepts very fast and help the other students with it. I would be happy to do the same for you if I can!

Want to See More?

I actually do have quite a bit more projects than this, but many of them are either far from finished, very simple, or I made many years ago and were not built to the high standards I do now. If you do want to see more though, you can view a list of projects on Github, Khan Academy, Codepen, and Replit. If you have a request for a demo of one of my projects that currently doesn't have a working demo, let me know.