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.
- Typescript
- Express
- AWS SQS
- Mongo
- Mongoose
- React
- Redux Toolkit
- Turborepo
- Changesets for managing versioning and changelogs
- GitHub Actions for fully automated package publishing
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 theconfig
folder. This file is ignored and won't be commited to Github.
-
You will need to obtain your
AWS CLIENT ID
andAWS SECRET ID
and add them in theconfig/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
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
https://documenter.getpostman.com/view/2992116/UzBnpmNY
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/