Boggle Game API is a solution engineered for hosting simple Boggle Game. The REST API is written in Python3 using Flask
webframework and has testing suite available both in Python (unit-tests and integration tests) and Ruby (end-to-end tests).
Boggle is a word game that is played on a 4x4 board with 16 letter tiles. The goal is to find as many words as possible given a time constraint.
Now it is possible for one or more of the letter tiles to be blank (denoted by *
).
When a tile is blank, it can be treated as any other letter. Example board:
A C E D
L U G *
E * H T
G A F K
Some sample words from this board are ace, dot, dug, eight, hole, huge, hug, tide.
This project requires Python 3 and Ruby, followed by some libraries.
This application mainly run and tested for Ubuntu 18.04.
python >= 3.6
MongoDB
python3-venv
ruby >= 2.5
git
You can directly download the binary source from
If you're using linux/ubuntu (12.0 - 18.04) you can install python3
by using apt-get
as follows:
$ sudo apt-get update
$ sudo apt-get install python3.6
$ python3 --version # check installation successful
$ which python3 # check software bash directory
Then install virtualenv manager. There are many python virtualenv manager but here we choose to pick venv
. To install, run apt-get
command:
$ sudo apt-get install python3-venv # install venv
$ python3 -m venv .venv # create virtual environment called .venv
$ source .venv/bin/activate # activate virtual environment (.venv)
(.venv) $ pip3 install -r requirements.txt # ensure you are using .venv and python 3.6
First, install Ruby. Then run the following commands under the project directory.
$ruby -v # confirm Ruby present
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
$ gem install bundler # install bundler to manage dependencies
$ bundle install # install dependencies using Gemfile
...
...
Bundle complete! 3 Gemfile dependencies, 8 gems now installed.
You need to install Mongo
DB in your machine.
$ sudo apt install -y mongodb
$ sudo systemctl status mongodb # check mongodb status
$ sudo systemctl start mongodb # if mongodb not active/running, start db using systemctl
The entry points for running Flask
application is the run.py
script. There are several environment variables that you need to provide:
$ export DATABASE_URI=mongodb://localhost:27017/testdb # get your db url
$ export HOST=127.0.0.1
$ export PORT=5001
$ export ENV=testing # testing mode
$ export DEBUG=1 # debug mode
$ export UNIT_TEST_MODE=1 # disable logging for unit testing
$ python3 run.py # available at 127.0.0.1:5001
Running with docker container is easy. First make sure you have docker ready and setup in your machine.
$ sudo bash deploy/build_app.sh # build image
$ sudo bash deploy/run_mongo.sh # mongo server running on container
$ sudo bash deploy/run_app.sh # application running on localhost:5001
Execute the script below to run all tests in pytest.
(.venv)$ python3 run_pytest.py