- clone the repo to your local machine
- copy the
.env.example
if you need to run on local machinecp .env.example .env
and change the value accordingly. - create database called
devsummit
on your mysql if you haven't change theDB_NAME
on.env
file. - run
make env
to setup your environments. - activate the virtual environment by running
source env/bin/activate
- run
make deps
insideenv
to automatically install all dependencies inrequirements.txt
- database migration can be done by the following steps:
- create a database file by
touch app.db
, naming convention follows the configuration inalembic.ini
sqlalchemy.url
value. - migrate by run
alembic upgrade head
- create a database file by
- seed the table by running:
python manage.py seed
- run the server by
python manage.py server
.
You can run the server on docker simply by running: *not in virtual environment
docker-compose build
docker-compose up
docker-compose exec database sh
and runmysql_upgrade -u root -p
docker-compose exec web sh
and runalembic upgrade head
then seed by runningpython manage.py seed
additional setup including migrations
and seeding
will be the same as setup instruction above by docker-compose exec bash web sh
to get into the container environment.
and server should be up on localhost:5000
Make sure flake-8 is installed on your env, by running make deps
inside your env
Linting is achieved by integrating flake8.
You can check you PEP8 compliance by typing: make lint
We use hercule to compile the blueprints into single apib file.
All the blueprints resided in /blueprint
folder, the main file is blueprint.apib
We also define the datastructure for all blueprint in sepearate apib files, resided in folder /blueprint/data
. To compile the blueprint these all what we need tobe done:
- Install hercule first
$ npm install -g hercule
- Compile
$ hercule blueprint/blueprint.apib -o apiary.apib
- To run the apiary test we need
dredd cli
installed globally
$ npm install -g dredd
- Then run the test in the project root folder
$ dredd