forked from kristjan/cjvt-valency
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # cjvt-valency
 | |
| Required submodules:
 | |
| 
 | |
| * `https://gitea.cjvt.si/kristjan/cjvt-corpusparser.git`
 | |
| 
 | |
| ```bash
 | |
| $ 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`.  
 | |
| ```bash
 | |
| $ 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`.  
 | |
| ```bash
 | |
| # 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. 
 | |
| ```bash
 | |
| # 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`.  
 |