Skip to content

Monorepo architecture for storing shopping data to database and expose them to the user.

Notifications You must be signed in to change notification settings

jkrgS/google-shop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

google-shop

Monorepo architecture for storing products data to database and expose them to the user.

Features implemented

  • Server side that provides router for serving the proper data from database.
  • Paginated table of provided csv file {page size selection included} / *** due to wrong .csv file format there was a challenging implementation & and you might see wrong data.(no time to improve the reading of csv)

** the csv file's records decreased to 3k, for performance purposes and saved for use at /server/assets

Project architecture

  • Monorepo
  • ExpressJS for http requests
  • MongoDB & mongoose for data storing and manipulation
  • ReactJS for front end SPA
  • Redux state management
  • Redux thunk for async functionalities
  • React router for navigation / lazy loaded(there is 1 route but is settled lazy for future purposes)

Missed features

** due to the strict time schedule i had, there was a lack of time to complete all suggested(as required) features

  • Filtering
  • Details product page

Potential improvements

  • GraphQL
  • Jest unit tests
  • Cypress e2e tests
  • Microservice for reading/writing .csv files regarding .csv patterns

Instructions

Install deps

// from root
yarn OR sudo yarn(for macOS users)

.env file values

// client => you can see also example.env file for proper keys
REACT_APP_APP_NAME = 'Google-Shop';
REACT_APP_SERVER_DOMAIN = 'http://localhost:3000';

// server => you can see also example.env file for proper keys
PORT = 3000;
CSV_DATA = 'google-shopping-feed-5305.csv';

Run the app

// from root
yarn server-start OR sudo yarn server-start(for macOS users) // starting the server ** web dev server url: http://localhost:3000/
yarn client-start OR sudo yarn client-start(for macOS users) // starting the client ** web dev server url: http://localhost:3100/

About

Monorepo architecture for storing shopping data to database and expose them to the user.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published