itsKarad / Simple-Ratings-App

Home Page:https://gumroad-challenge-karad.web.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gumroad Coding Question

This is a submission by Aditya Karad for this coding challenge.

Live Demo

https://gumroad-challenge-karad.web.app

Some notes

  • My commit history for this project is readable and incremental.
  • Big architectural decisions:
    1. Choosing to build the app with React from the beginning: Converting code from Vanilla JS to React to pretty tiring in my opinion.
    2. 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

Tech Stack

Backend

  • NodeJS
  • MongoDB as database
  • Socket.io for realtime updates to frontend

Frontend

  • React: Create-React-App used
  • Plain CSS.

Deployment

  • Firebase hosting for front-end single page react app.
  • Heroku deployment for backend.

About

https://gumroad-challenge-karad.web.app


Languages

Language:JavaScript 67.3%Language:CSS 23.5%Language:HTML 8.8%Language:Shell 0.3%