https://github.com/devblin/shopit
An inventory management system written in Go, utilising AWS services such as S3, DynamoDB.
https://github.com/devblin/shopit
aws-alb aws-dynamodb aws-ecr aws-ecs aws-s3 crud golang inventory-managment localstack reactjs terraform
Last synced: 3 months ago
JSON representation
An inventory management system written in Go, utilising AWS services such as S3, DynamoDB.
- Host: GitHub
- URL: https://github.com/devblin/shopit
- Owner: devblin
- Created: 2022-02-09T17:11:44.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-22T06:23:27.000Z (over 2 years ago)
- Last Synced: 2025-04-05T15:11:21.408Z (9 months ago)
- Topics: aws-alb, aws-dynamodb, aws-ecr, aws-ecs, aws-s3, crud, golang, inventory-managment, localstack, reactjs, terraform
- Language: JavaScript
- Homepage:
- Size: 2.02 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shopit
A inventory management system written in **Golang**, **DynamoDB** for database, **S3** for file storage and **ReactJS** for UI.
[](https://github.com/devblin/shopit/actions/workflows/deploy.yml)
## Features:
- Basic CRUD funtionalities:
- Create inventory items
- Edit Them
- Delete Them
- View a list of them
- Allow image uploads and storing image with generated thumbnails.
## Usage:
### Local Development:
To test the application locally, follow below steps:
- Install [localstack](https://docs.localstack.cloud/getting-started/installation/), [awslocal](https://github.com/localstack/awscli-local) and [tflocal](https://docs.localstack.cloud/user-guide/integrations/terraform/).
- Start localstack `localstack start -d`
- Execute below commands to setup basic infra for local terraform:
- S3 bucket to handle terraform state:
```
awslocal s3api create-bucket --bucket terra-form --region ap-south-1 --create-bucket-configuration LocationConstraint=ap-south-1
```
- DynamoDB table to handle state locking:
```
awslocal dynamodb create-table --table-name terra-form --region ap-south-1 --key-schema AttributeName=LockID,KeyType=HASH --attribute-definitions AttributeName=LockID,AttributeType=S --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
```
- Provision aws in localstack using tflocal:
- Create `dev.tfvars` with below contents in root of dir:
```sh
AWS_ACCESS_KEY_ID = "test"
AWS_SECRET_ACCESS_KEY = "test"
ENV = "dev"
```
- Run `tflocal init -var-file=dev.tfvars`
- Run `tflocal apply -var-file=dev.tfvars`
- Use the `shopit_lb_dns` output's value to open the application.