HACKER Q&A
📣 h43k3r

What are the tools to make a quick WebApp MVP?


I have been tasked with making a simple webapp with following requirements.

1. Login system ( multiple users ) 2. Simple image upload with some related data. 3. Some tables to show uploaded data with images. 4. Some business logic on top of uploaded data.

I have been out of touch from webapp development for the past 3 years. What are the easy to learn tools to quickly build this MVP in a weeks time. I have good knowledge of JS/TS, Java, C#, Jquery and React.

Is there a good pluggable framework that comes with all these basic things so that I can quickly build up something ?

I was thinking of using React + Bootstrap for frontend, some node.js framework for backend ( probably will use passport.js for auth )


  👤 el_dev_hell Accepted Answer ✓
The spec is super basic, so I would do the below in a weekend (for an MVP):

Frontend:

* Use a pre-built React theme (maybe MaterialUI since it has a basic login page already). Make a few tweaks where required. This will probably take 5ish hours depending on the total number of pages and unique components needed.

* Deploy the frontend to AWS Amplify. This will take less than an hour (unless I've screwed something).

Backend:

* Fastest option: If I'm under a time crunch, I'd go with Django REST. If you've set this up before, you could have this configured in less than 2 hours with all relevant endpoints (maybe even less). I'd probably mock a few routes with fake data in place of business logic (if appropriate). Deploy to either Lightsail or Heroku.

* Personal preference: Use the Serverless Framework (with Node.js) to create the required endpoints, handle auth, media storage, etc. This will take a bit longer than Django REST, but the deployment process will be a bit faster. Maybe 3-5 hours (if I'm using mock business logic).

DB:

* Spin up some kind of SQL DB on AWS RDS (probably PG).


👤 ipnon
That's the million dollar question. There isn't one framework that is going to be ideal for every application. It seems like you already have a good answer for yourself.