Clone this project or download and extract ZIP file.
cd /polling-machine
Run docker-compose up
Navigate to http://$DOCKER_HOST
Note - This project assumes development docker host will run on 192.168.99.100. If you want to change this, you can modify ${WORKSPACE}/polling-machine/client/development.js to use another IP address.
Targeting - The docker-compose.yml file currently targets the development configuration when running the client container by using gulp development. This can be changed by replacing development with one of the other possible environment targets (local|staging|release)
Pool database and cache connections more efficiently.
Improve build process with Makefile to pass in static golang binary (Dockerfile currently is go-getting all dependencies causing the images to be very large.
Refactor GetResponseCounts(...) because its EXTREMELY inefficient. Might be better just storing count in Redis.
Break out domains into separately executable services and use gRPC or RabbitMQ for between services.
Use document storage for aggregating quick snapshots for poll results.
Take better advantage of cache layer for data access.
API Model Validation (currently, there is none...oops).
Add supervisor process to monitor golang app to keep it running.
Use a better abstraction for centralized configuration.
Pass in init script when initializing Postgres database.
Hash passwords instead of storing them as plain text :)
Use Consul or other mechanism for discovering infrastructure service endpoints.