React-shop-cloudfront

This is frontend starter project for nodejs-aws mentoring program. It uses the following technologies:

Deployment Links

The project is deployed on AWS, utilizing services like S3 for static website hosting and CloudFront for content delivery and caching.

  • The S3 bucket hosts the static assets of the application. It's configured to be publicly readable but it’s recommended to access the application through the CloudFront distribution for optimized load times and performance.
  • The CloudFront distribution is the recommended way to access the application. It serves the content stored in the S3 bucket but with the added benefits of caching, content delivery optimization, and possibly added security configurations, making the user experience more robust and responsive.

Available Scripts

start

Starts the project in dev mode with mocked API on local environment.

build

Builds the project for production in dist folder.

preview

Starts the project in production mode on local environment.

test, test:ui, test:coverage

Runs tests in console, in browser or with coverage.

lint, prettier

Runs linting and formatting for all files in src folder.

client:deploy, client:deploy:nc

Deploy the project build from dist folder to configured in serverless.yml AWS S3 bucket with or without confirmation.

client:build:deploy, client:build:deploy:nc

Combination of build and client:deploy commands with or without confirmation.

cloudfront:setup

Deploy configured in serverless.yml stack via CloudFormation.

cloudfront:domainInfo

Display cloudfront domain information in console.

cloudfront:invalidateCache

Invalidate cloudfront cache.

cloudfront:build:deploy, cloudfront:build:deploy:nc

Combination of client:build:deploy and cloudfront:invalidateCache commands with or without confirmation.

cloudfront:update:build:deploy, cloudfront:update:build:deploy:nc

Combination of cloudfront:setup and cloudfront:build:deploy commands with or without confirmation.

serverless:remove

Remove an entire stack configured in serverless.yml via CloudFormation.