Home Fusion OMS is an order management system in development that classifies clientele, consolidates data, and automates the order process of Home Fusion, a North Georgia new-home construction subcontractor.
The current order process relies on the handwritten transcription of line items, referencing an item master that requires frequent changes. Once these orders are transcribed, they are relayed to an individual who separates items by vendor and places an order through a vendor representative. This application aims to address these process bottlenecks by eliminating the need for handwritten transcription as well as creating an automated order pipeline between business and vendor.
In respect to technical infrastructure, this application defines infrastructure as code through the use of AWS CloudFormation templates, allowing for the rapid deployment and teardown of a development stack, isolated from production. In addition, by leveraging the AWS CodePipeline suite of CodeCommit, CodeBuild, and CodeDeploy, all stacks utilize an automated code pipeline, initialized by every git commit or reversion, streamlining the rollout or rollback of new features.
Future features consist of the conversion of the current PostgreSQL relational database to AWS DynamoDB, motivated by its pay-per-request pricing model as well as its schematic flexibility, allowing for more efficient pulls of data per request using the Single Table Design approach among other benefits. Additionally, the automation of emails sent to vendors will leverage AWS SNS.
- Components from shadcn-vue
- Icons from lucide
Dummy Tools are a collection of Bash scripts created to expedite development. Alongside Bash, these scripts leverage the AWS, Go, and popular golang-migrate CLI tools to execute full units of work that are commonly needed during development. These units of work include building, deploying, or destroying AWS CloudFormation stacks, performing database migrations, and creating AWS Cognito users to generate tokens for API testing.
The front-end stack is dependent on environment variables and resources deployed in the back-end stack; as a result, the back-end stack must be deployed first.
- Note: The common stack contains resources that are shared between all environments; resources include this code repository, build artifact bucket, and basic build configuration
- Build the stack
./dummy common
- Note: The current stack is dictated by the current git branch; if the current branch name is
dev
, it will deploy an environment with resources postfixed withdev
- If git is not initialized and branch is not set to
dev
git init && git checkout -b dev
- Deploy the stack into the cloud
- Note: The front-end stack includes a code pipeline but would only be utilized if future resources were to be added; currently, the front-end stack is primarily deployed via Amplify
./dummy deploy
- Note: This is pulling environment variables set from the back-end stack
- Pull your environment variables from the cloud
./dummy env
- Create Cognito user to log into application if user is already not created
./dummy user {EMAIL} {PASSWORD}
- Run development environment
npm run dev
- Go to http://localhost:3000 to access development environment
- Delete Cognito user if wanting to recreate
./dummy delete user
- Delete stack
./dummy delete stack
- Delete stack
./dummy delete common