The main goal I hope to achieve through developing this single page application is to improve my knowledge of both front end and backend development. I hope to achieve this by researching the best frameworks/languages and finding the best tool for the job. I want to build this website in such a way that it is suitable for a containerized deployment model, specifically suitable to be ran on Kubernetes infrastructure. Goals
- Increase knowledge of frontend development
- Work with git and version control
- Setup a CICD pipeline to push the code through
- Understand how to lay out requirements and research based on those requirements
- Write my code in such a way that it is modular and easily can be changed or have functionality added without much effort
- Long term – setup a database pod with some random data and use this as a sample RESTFUL Api
- Highlight personal achievements
- Feel more confident in general development type environments
- Create something tangible that is functional and demonstrates a wide range of knowledge
The frontend language used for this project will be React.JS. Based on the requirements of this being a single page application that is mostly relying on UI development rather than in depth functionality React seems to be the language to use. As this is a small personal project that I am working on solo there is no need for an opinionated language. in general it seems that people seem to lean towards Angular if they are familiar with it as it seems to have some ramp up to get to know it but is cruisy when you get going.
At the current moment I am leaning towards Node.js with the express framework. In general it seems that there are really no bad options but I am seeing node pop-up quite often in people's recommendations. Realistically there are no system/timing requirements for this project so its mostly on what I want to learn. I believe with that being said, running both js in the frontend and backend will help ease the learning curve as they should be closely related.
After some consideration as well as reading that the (MEA(R)N) stack is relatively popular this choice makes sense in the context of this project. Most of what I am going to be working with is parsed JSON which then gets transformed into data for the frontend. Because of this, MongoDB seems to be the easiest to work with in this scenario.