52

GitHub - delta/dalal-street-server: Server for Pragyan's Dalal Street

 4 years ago
source link: https://github.com/delta/dalal-street-server
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Server for Dalal Street

Prerequisites

Check prerequisites

  • Check the go version installed.
go version
  • Check protobuf installation.
protoc --help
  • Setup SECRET_KEY environment variable to some string

Build instructions

  • Download the repository and cd into it.
go get github.com/delta/dalal-street-server
cd $GOPATH/src/github.com/delta/dalal-street-server
  • Install dependencies
go get -v ./...
go get -v github.com/gemnasium/migrate
go get -v gopkg.in/jarcoal/httpmock.v1
go get -v github.com/golang/protobuf/proto
go get -v github.com/golang/protobuf/protoc-gen-go
go get -v github.com/sendgrid/sendgrid-go
go get -v github.com/delta/plivo-go
  • Setup submodules
git submodule init
git submodule update --recursive
  • Create databases and run migrations
mysql -u root -p -e "CREATE DATABASE dalalstreet_dev; CREATE DATABASE dalalstreet_test;"
migrate -url "mysql://root:YOUR_MYSQL_ROOT_PASSWORD@/dalalstreet_dev" -path ./migrations up
  • Generate proto files
./build_proto.sh
  • Run cp config.json.example config.json
  • Fill in the database credentials in the Dev section of config.json.
  • Run go run main.go

Create Migrations

migrate -url "mysql://root:YOUR_MYSQL_ROOT_PASSWORD@/dalalstreet_dev" -path ./migrations create migration_file_xyz

Tests

  • Run the test script locally before pushing commits.
./test.sh

Docker usage instructions

  • Install docker and docker-compose.
  • Run cp .env.example .env. Fill in the DB_NAME and DB_PASS in .env. These are the credentials for the database container.
  • Use the same credentials in Docker section config.json (DbName and DbPassword) and docker-entry.sh (in the migrate command).
  • Run docker-compose up.
  • Once the containers are up, you can get shell access by using
docker exec -it <CONTAINER_ID> bash

GoMock usage instructions

  • To generate mock for a file using mockgen, place this comment after import statement
 //go:generate mockgen -source {YOUR_FILE_NAME}.go -destination ../mocks/{YOUR_FILE_NAME}.go -package mocks
  • To generate mocks for all packages that has above comment
go generate ./...

  • To manually generate a mock package
mockgen -destination=mocks/{YOUR_FILE_NAME}.go -package=mocks {PATH_TO_YOUR_FILE}


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK