52
GitHub - delta/dalal-street-server: Server for Pragyan's Dalal Street
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.
Server for Dalal Street
Prerequisites
- Go 1.10 Download link
- Protocol buffers Download link
- MySQL
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 themigrate
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}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK