This is a submission by Aditya Karad for this coding challenge.
https://gumroad-challenge-karad.web.app
- My commit history for this project is readable and incremental.
- Big architectural decisions:
- Choosing to build the app with React from the beginning: Converting code from Vanilla JS to React to pretty tiring in my opinion.
- Choosing NPM package like SocketIO instead of Firebase Realtime Database. Former is better suited for me because I am not familiar working with Firebase. I was also not familiar with SocketIO, but it was easier to learn due to my familiarity with NodeJS.
- Something I would do different next time around: focus on making it pretty later and first build out the features.
Things I did not know before starting this project:
- I have never worked with socket.io before. I watched a few tutorials online to understand what it does and wrote a simple version to fulfill the feature mentioned (realtime updates to ratings).
- I have also never made something from a Figma file before, due to which styling may seem inaccurate.
Here's a YouTube video showing the realtime reviews feature: https://youtu.be/vu64ggj9x2U
- NodeJS
- MongoDB as database
- Socket.io for realtime updates to frontend
- React: Create-React-App used
- Plain CSS.
- Firebase hosting for front-end single page react app.
- Heroku deployment for backend.