Autogarden
A website and RESTful API I created for configuring and monitoring an automatic watering system for my herb garden that is controlled by an Arduino because I don't want to have to water it myself.
As a part of this project, I created a C++ library to easily activate sensors and actuators connected to an Arduino through multiple layers of hardware logic components, such as shift registers and multiplexers.
This project is fully tested with unit, integration, and functional tests and deploys to Heroku via a CI/CD pipeline.
- JavaScript
- Python
- C++
- Arduino
Path-Finding Algorithm Visualizer
A website I created for visualizing the search algorithms DFS, BFS, Dijkstra's Algorithm, Greedy Best-First Search, A* Search, and Bidirectional Search on a 2D grid.
The grid can be modified with mazes of walls and weights which are generated using the algorithms Randomized DFS, Randomized Prim's Algorithm, or Recursive Division. You can also manually add walls and weights to the grid with the click of your mouse!
Although this project is permanently hosted on GitHub Pages, I had used this project to gain experience with creating a CI/CD pipeline to automate provisioning and deployment to staging and production servers on Digital Ocean.
- JavaScript
- HTML/CSS
- Python
- Jest
- GitHub Actions
- Terraform
Web Games
A website I created for playing Sudoku, Tic Tac Toe, and Snake. Sudoku was implemented using the Sudoku Solver and Generator Algorithm capable of generating puzzles of 4 different difficulties. The opponent player in Tic Tac Toe makes its moves based on 3 different algorithms - completely random moves (Easy), Minimax (Medium), and Minimax with αβ Pruning (Hard).
This project is fully tested with unit, integration, and functional tests written in Jest and Selenium, and deploys to Heroku using a CI/CD pipeline.
- JavaScript
- Python
- Node.js
- Jest
- Selenium