Week 2 – Choosing Tech Stack

It’s week 2 of the project. So far I have formed Team QuizBanana 🍌 with two wonderful persons to share this journey with and finalized on the project topic – software programming quiz. This project requires a responsive web application that needs CRUD features for users, have users create timed quizzes, send out links, receive submissions, and be able to view the result analytics. In order to create a good robust app, it seemed reasonable to start with planning. In this blog post I’ll talk about choosing tech stack as part of planning process.

There are many different ways of creating web app and different combinations of languages and frameworks. Mainly web app is divided into frontend (aka client side) and backend (aka server side). Frontend refers to everything that people can see on screen, mainly visual. Backend refers to all the logistics that happens to show what is on the frontend. A full stack refers to the set of tools/frameworks that are compatible to be worked with both frontend and backend. Since we are going to work on the entire project on our own, I would consider we are working on full stack development. Ones I’ve explored as options for our project were MEAN, MERN, Python + Django.

MEAN stack is shorthand notation for MongoDB + Express.js + Angular.js + Node.js. MERN stack is similar to MEAN except React.js is used instead of Angular.js. Both MEAN and MERN stack are based on JavaScript framework and Django is based on Python framework. The Python stack could potentially be Python + Django + Apache + MySQL. The reason I have picked MEAN and MERN are that those are the most popular and widely used stack for industry for web application. The reason I picked Python + Django is that python is relatively easy language and relatively easier to pick up.

Since I did not have experience working with Django, I’ve researched and found some information here1. This article lays out the key differences in the aspects of Django and Express.js side by side. Some of the points that stood out to me was that although Django is very fast, it is more complex than Express.js, less scalable, and less flexible. Since we’re going to be working on this in less than 2 months, I thought the key part was how fast we can pick up and use. Also no one from the group had expertise on Django. That ruled out the option.

Now left with MEAN vs MERN, I have found out some distinctions through this article2. Pros of MEAN stacks include many plugin availability, development possibility for different applications, while pros for MERN stack include easier learning curve, simpler UI, and better data handling for CRUD. Since one of our major functionality includes CRUD for users, and again easier to pick up, MERN seemed to be best option for our group.

After discussing these options with the group, we have unanimously agreed on using MERN stack since we all had some experience working with it and anticipated easier to find tutorials and solutions based on stack popularity.

References
  1. Jeel Patel. “Django Vs Express: The Key Differences To Observe in 2022”. Monocubed. https://www.monocubed.com/django-vs-express/. Accessed 12 Jan. 2022.
  2. Orione Solutions. “MERN vs MEAN : WHICH STACK TO USE IN 2021”. Data Science Central. TechTarget. https://www.datasciencecentral.com/mern-vs-mean-which-stack-to-use-in-2021/. Accessed 12 Jan. 2022.