The idea for this project came out of trying to solve a problem I had. I occasionally teach online guitar lessons, and wanted a simple method to send chord diagrams to students. Suprisingly there is not any software to easily do just this. So I set out to try and build my own, which turned into an adventure learning to build a full stack application
The front end runs on React and is hosted on Netlify, which also easily handles continuious deployments.
The backend is written in Node, running in a Docker container, and deployed to Digital Ocean. Continuous Integration for the server side code is handled with Github Actions. If any server side code is committed to the main branch Github Actions pushes a new version to Dockerhub. Then it logs into the Digital Ocean server, pulls down the latest code from Dockerhub, and restarts the app.
User authentication is handled with Passport.js, and everything is saved to a MongoDB database hosted on mLab.
This project is still very much a work in progress, but I have learned a ton so far. Getting a fully automated deployment pipeline up and running was extremely satisfying