Social Network Services

Social network services in bringin backend project use grpc server to serve logic. The grpc protocol defined at api/proto folder. Social network services serve social network logic like ( create network invitation, withdraw invitation, accept invitation & reject invitation).

Tech Stack

  • Golang version 1.20

  • Postgres version 14 as Primary Database

  • Redis for publishing data

Installation

  • Make sure you have golang version 1.20

  • Make sure you have postgres that support uuid, jsonb

  • Make sure you have installed redis

  • See Recommmended project structure section.

Migrate Database

Make sure you already create database and integrate with uuid extension. Look at this to create uuid extension. Look at folder internal/sqls you can execute sql in that folder to migrate database.

Besides executing the commands above, you can execute the command below to migrate database. But before you execute migrate command, make sure you already set database environment in .env file

    go mod download // run this if dependency not downloaded
    go mod tidy // run this if dependency changed
    go run cmd/main.go -command=migrate:up // execute migration up will create tables

There are 3 migrate commands :

  • command migrate:up will create tables

  • command migrate:down will drop tables

  • command migrate:both will drop and then create tables

Run Services

First to run this services, make sure your database and the tables that needed already created. Then create .env file from example.env template. The example.env file look likes below change the configuration and match with your environment.

After .env file created. Run this command

    go mod download // run this if dependency not downloaded
    go mod tidy // run this if dependency changed
    go run cmd/main.go -command=main

Last updated