- create a client with username and password
- login as the client (gets jwt)
- operate messages once logged in
-
operations - authn, crud, rest api, graphql, queue
-
frontend - react
-
backend - spring + java, django + python
-
async - rabbitmq
-
data store - sqlite, postgres, redis, minio
-
aws - rds, ec2, ecs, eks, sqs, lambda, dynamodb, s3
-
set java version to 17
-
run
mvn install -
create a local postgres database with docker like
docker run --name test_postgres --publish 5432:5432 --env POSTGRES_DB=test_postgres --env POSTGRES_USER=localuser --env POSTGRES_PASSWORD=localpassword --detach postgres:16.2 -
run the java app with the following environment
DB_HOST=localhost;
DB_NAME=test_postgres;
DB_PASSWORD=localpassword;
DB_PORT=5432;
DB_USERNAME=localuser;
USE_RABBITMQ=false;
-
setup the-spring locally at 8080
-
run
npm install -
run
npm run start
-
run rabbitmq locally
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management -
run minio locally
docker run -it --rm --name minio -p 9000:9000 -p 9001:9001 quay.io/minio/minio server /data --console-address ":9001" -
in
index.tsreplace redis password and host with your redis account -
run
npm run start -
in the-spring, change environment variable
USE_RABBITMQ=false; -
setup the-spring locally at 8080
-
post user brief and profile pic with spring apis
ensure aws cli is logged in
-
in
main.tf, setdeploy_rdsanddeploy_ecsto true, other deploys to false -
run
terraform init -
run
terraform apply -
get the ec2 Public IPv4 DNS, for example: ec2-12-345-678-90.compute-1.amazonaws.com
-
hit http://ec2-12-345-678-90.compute-1.amazonaws.com:8080/swagger-ui/index.html
-
when finished, run
terraform destroy