forked from kristjan/cjvt-valency
Contains the tool for viewing valency frames and adding user-defined senses to underlying sentences.
| data | ||
| dip_src | ||
| dockerfiles | ||
| old_api_examples | ||
| src | ||
| test_make | ||
| .gitignore | ||
| .gitmodules | ||
| env.default | ||
| Makefile | ||
| README.md | ||
cjvt-valency
Required submodules:
https://gitea.cjvt.si/kristjan/cjvt-corpusparser.git
$ git submodule init
$ git submodule update
Components
Credentials
Copy env.default to env.local (gitignored).
Modify database credentials in env.local.
The file is used by make.
Database (2 containers)
Set db admin, user, pass, etc in 'Makefile'.
Spin up the database service and create users:
Make sure you create a folder for the data on host machine (see mongodb-stack.yml volumes.
$ mkdir -p ${HOME}/mongo_container/data/ # default one
# $ make database-clean # opt, removes docker services, not data
$ make database-service
$ make database-users # only first time; user data persists too
Populate the database with data form files:
- ssj500k.xml
- kres.xml
- kres_SRL.json
Set path to files in Makefile.
# spin up a container with python env
$ make python-env
# install our packages
$ make python-env-install
# run the code
# beforehand, set the data files in Makefile
$ make fill-database
If all goes well, we should be able to inspect the database, filled with corpora, on 0.0.0.0:8087.
Flask backend (1 container)
Relies heavily on the database. Set that up first.
# spin up container
$ make python-env
# install our packages
$ make python-env-install
# needs to be ran once to modify a new database
$ make backend-prepare-db
# with debugger
$ make backend-dev
# production
$ make backend-prod
API endpoints:
- GET word list (pre-cached)
- GET reduced frames (pre-cached)
- POST senses
- User auth logic
Vue frontend (1 container)
Relies on Flask backend.
Before running make, you might need to set the correct api address.
Check ./src/frontend_vue/config/config_prod.json.
bash
# $ make frontend-dev # development
$ make frontend-prod
App available on: http://0.0.0.0:8080.