For further info on the use of this system, please see the following papers:
Tropel: Crowdsourcing Detectors with Minimal Training
LICENSE - Open source
README - This file
app - The main flask webserver
bin - scripts for setting up db, recreating, and running main server
test - unit tests
utils - utility functions for computer vision and feature extraction
tasks.py - jobs for the Celery task queue
extract.py - functions for extracting features
requirements.txt - python requirements
Dockerfile - instructions for Dockerizing this repo
mkvirtualenv kaizen # this app tested with Python3.9 pip install -r requirements.txt
To restart venv:
workon kaizen
To add to python requirements:
pip freeze > requirements.txt
Setup the configuration parameters:
cp config-example.py config.py
Then edit the config.py
file to suit your environment.
Add this repo to your PYTHONPATH:
export APPROOT=/Users/$USER/kaizen # this is an example of where the app might be. export PYTHONPATH= $APPROOT:$PYTHONPATH
createdb APPNAME-local # APPNAME should match that set in config.py
If you'd like to blow away the db:
dropdb APPNAME-local
Setup default objects in the database:
chmod +x ./bin/setup_database.py ./bin/setup_database.py
Load some data to play with:
chmod +x bin/forge.py ./bin/forge.py
Start the Celery server to manage new tasks from the Flask app:
celery -A tasks.celery worker --loglevel=debug
Run Server:
flask run
Tests are in the tests directory
cd tests Run unit test classes using: python -m unittest unit_tests.py
The forge functions also serve as system tests.
This project is licensed under the MIT License (see the LICENSE file for details).