URL Shortener

Demo

Screen.Recording.2021-07-18.at.2.17.46.AM.mov

Core features

  1. Create / Read / Update / Delete (CRUD) short urls
  2. Google oAuth
  3. View analytics per url (Total hits and unique hits) unique hits are based off of IP and total hits measure the number of times the redirection route is called.

Things I'd like to improve (given 24 hrs more)

  1. Refactor Login Logout components into a HoC
  2. Re rendering the URLs table with every CRUD operation. (Super easy, just need to change something in the parent component)
  3. Performance upgradations using useMemo, useCallback etc where the functions do not need to re execute / render.
  4. Performance improvements using caching of user's personal URLs.
  5. UI responsiveness

Run locally

  1. Clone the repo using
  git clone https://github.com/sarthakkundra/dyte-assignment.git
  1. Go into the project directory.
  cd dyte-assignment
  1. Install BackEnd dependencies using
  npm install
  1. Run the BackEnd using
  npm run dev
  1. Go into the FrontEnd directory
  cd client
  1. Install FrontEnd dependencies using
  npm install
  1. Run the FrontEnd using
  npm run start
  1. App is live at
  http://localhost:3000