Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 2.2 KB

README.md

File metadata and controls

71 lines (43 loc) · 2.2 KB

Node Shop

Project built as a monorepo that simulates Orders and Emails from a business or shop. It allows to create orders via API that are sent to a queue so they can be consumed later to create emails and send them to a dummy inbox.

What is used?

  • Typescript
  • Express
  • AWS SQS
  • Mongo
  • Mongoose
  • React
  • Redux Toolkit
  • Turborepo
  • Changesets for managing versioning and changelogs
  • GitHub Actions for fully automated package publishing

Architecture

architecture

Setting up the configuration

This project uses nconf to handle configuration files in a hierarchical way. It will merge the configs between your ${environment}.yaml and default.yaml, giving a higher priority to whatever is added in the ${environment}.yaml file.

It is recommended to create a local.yaml inside the config folder. This file is ignored and won't be commited to Github.

  • You will need to obtain your AWS CLIENT ID and AWS SECRET ID and add them in the config/local.yaml

    • You don't need to add them if you have them configured in your CLI
  • You will need to create a queue in AWS SQS. Here is explained how. Get the URL and add it to the config/local.yaml

  • You will need to create an account in Mailtrap to use an Email Sandbox for tests. In there, you should get all the SMTP Settings as described below and add them in the config/local.yaml

SMTP settings

How to run it?

First, install all packages:

pnpm run install

After you created aconfig/local.yaml file, then run:

pnpm run local

The API will be exposed in the PORT 3000

Postman Collection

https://documenter.getpostman.com/view/2992116/UzBnpmNY

FrontEnd App

Project created with https://createapp.dev/webpack/react--babel--chai--cleanwebpackplugin--copywebpackplugin--css--mocha--postcss--react-hot-loader--tailwind-css--typescript


Based of: AWS-SQS Tutorial

https://stackabuse.com/message-queueing-in-node-js-with-aws-sqs/