This is frontend starter project for nodejs-aws mentoring program. It uses the following technologies:
- Vite as a project bundler
- React as a frontend framework
- React-router-dom as a routing library
- MUI as a UI framework
- React-query as a data fetching library
- Formik as a form library
- Yup as a validation schema
- Serverless as a serverless framework
- Vitest as a test runner
- MSW as an API mocking library
- Eslint as a code linting tool
- Prettier as a code formatting tool
- TypeScript as a type checking tool
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.
Starts the project in dev mode with mocked API on local environment.
Builds the project for production in dist
folder.
Starts the project in production mode on local environment.
Runs tests in console, in browser or with coverage.
Runs linting and formatting for all files in src
folder.
Deploy the project build from dist
folder to configured in serverless.yml
AWS S3 bucket with or without confirmation.
Combination of build
and client:deploy
commands with or without confirmation.
Deploy configured in serverless.yml
stack via CloudFormation.
Display cloudfront domain information in console.
Invalidate cloudfront cache.
Combination of client:build:deploy
and cloudfront:invalidateCache
commands with or without confirmation.
Combination of cloudfront:setup
and cloudfront:build:deploy
commands with or without confirmation.
Remove an entire stack configured in serverless.yml
via CloudFormation.