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
# this is a long operation
# if running on a remote server, use nohup:
$ nohup $(make fill-database > fill-database.log) &
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
.