Skip to content

Rayato159/stupid-inventory

Repository files navigation

Stupid Inventory App

👌 Architecture

🍃 Run MongoDB on Docker

# start user_db container
docker run --name user_db -e MONGO_INITDB_ROOT_USERNAME=rayato159 -e MONGO_INITDB_ROOT_PASSWORD=123456 -p 2000:27017 -d mongo

# start item_db container
docker run --name item_db -e MONGO_INITDB_ROOT_USERNAME=rayato159 -e MONGO_INITDB_ROOT_PASSWORD=123456 -p 2001:27017 -d mongo

🔌 Connect to a database

user_db

docker exec -it user_db bash
mongosh mongodb://rayato159:123456@0.0.0.0:27017
use user_db

item_db

docker exec -it item_db bash
mongosh mongodb://rayato159:123456@0.0.0.0:27017
use item_db

🪄 Migrate collection

items

use item_db
db.items.insertMany([
   {
    _id: ObjectId("649f133fce9ca44af3239ca6"),
    title: 'Sword of Fire',
    description: 'A powerful sword engulfed in flames',
    damage: 50
  },
  {
    _id: ObjectId("649f133fce9ca44af3239ca7"),
    title: 'Elven Bow',
    description: 'A beautifully crafted bow with enhanced accuracy',
    damage: 35
  },
  {
    _id: ObjectId("649f133fce9ca44af3239ca8"),
    title: 'Dwarven Axe',
    description: 'A sturdy axe forged by skilled dwarven smiths',
    damage: 45
  },
  {
    _id: ObjectId("649f133fce9ca44af3239ca9"),
    title: 'Wand of Thunder',
    description: 'A magical wand that conjures bolts of lightning',
    damage: 40
  },
  {
    _id: ObjectId("649f133fce9ca44af3239caa"),
    title: 'Staff of Healing',
    description: 'A staff imbued with restorative powers',
    damage: 10
  }
]);

users

use user_db
db.users.insertMany([
  {
    _id: ObjectId("649f14208624cc23d3a6e7c5"),
    username: 'john_doe'
  },
  {
    _id: ObjectId("649f14208624cc23d3a6e7c6"),
    username: 'jane_smith'
  },
  {
    _id: ObjectId("649f14208624cc23d3a6e7c7"),
    username: 'alex_miller'
  }
]);
db.users_items.insertMany([
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c5"),
    item_id: ObjectId("649f133fce9ca44af3239ca6"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c5"),
    item_id: ObjectId("649f133fce9ca44af3239ca7"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c5"),
    item_id: ObjectId("649f133fce9ca44af3239ca8"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c6"),
    item_id: ObjectId("649f133fce9ca44af3239ca6"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c6"),
    item_id: ObjectId("649f133fce9ca44af3239ca7"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c7"),
    item_id: ObjectId("649f133fce9ca44af3239ca9"),
  },
  {
    user_id: ObjectId("649f14208624cc23d3a6e7c7"),
    item_id: ObjectId("649f133fce9ca44af3239caa"),
  }
]);

🌞 Generate proto file

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    src/proto/item/item.proto

🐳 Start with docker-compose

docker compose up

About

Just a stupid microservices project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages