(Bezos) Empire State of Wallet

It’s the year 2028. Ahmed, a curly-haired slightly neurotic 21-year-old university student, is concerned about the ever-growing influence of Jeff Bezos and his economic empire. In particular, Ahmed would like to know how much money he spends on Bezos-related companies (his Bezos’ “share of wallet”).

Functionalities

A simple web tool for Ahmed to calculate how much money he spends on Bezos-related companies. This tool should, in one UI:

  • Show Ahmed a list of his transactions for the month of January 2029, ordered by Date.
  • Allow him to visually discern which transactions are to known Bezos-related companies.
  • Let him see how much money he pays to these Bezos-affiliated companies (both as a total dollar amount and as a percentage of his spending).
  • Allow him to mark or unmark any specific transaction as being Bezos-related, even if it is not to a known Bezos-related company.
  • If Ahmed marks (or unmarks) any transaction as being Bezos-related, all other transactions to the same merchant name should also be marked or unmarked in the same way (for example, if he marks any Lyft transaction as Bezos-related, all Lyft transactions should become Bezos-related).
  • Any changes Ahmed makes should be persisted for future use. Information / Assumptions:
  • Bezos owns Amazon, the Washington Post, Whole Foods, and space-travel company Blue Origin. Any transactions to these merchants should initially/automatically be marked as Bezos-related for Ahmed.
  • Don’t worry about authentication or security (in 2028, it works magically through biometrics).
  • Assume you can get Ahmed’s spending transactions from a GET call to this URL: https://hadiziady.github.io/bezos_mock_api/mock_api.json.

Prerequisites

  • MongoDBCompass installed on your machine

Tools

  • Backend: NodeJs with TypeScript
  • Frontend: ReactJs with TypeScript
  • Database: MongoDB

Run the app

Backend

  • Navigate to the Backend folder in the project directory
  • Add .env file to the project directory with the following code
MONGO_DB_URI = "{your MongoDB connection string}" eg. "mongodb://127.0.0.1:27017/nawy"
  • Run these commands.
npm install
npm run watch

Frontend

  • Navigate to the Frontend folder in the project directory and run these commands.
cd bezos-empire-state
npm install
npm run dev