Skip to content

luisebenkert/ask-your-repository-api

 
 

Repository files navigation

Elija · Coverage StatusCode style: black

Setup service

  • Install Python 3.7
  • On Windows:
    • Click: Add path
    • At the end of installation allow usage of paths longer than 260 characters
    • See: Setup Python
  • Highly recommended to use pyenv instead for this as it makes swapping python versions much easier.
    You can use the installer from here for easy installation.

Installing dependencies:

  • Setup Poetry:

  • Copy .env.example into new .env file

  • It's highly recommended you have docker installed it makes environment setup much easier: https://www.docker.com/get-started

  • Install Neo4j

    • Neo4J is our GraphDB you can find more info and an install guide on it here: https://neo4j.com/
    • To run tests you need a neo4j installation on the ports specified in .env.testing
    • To simply run the application locally I recommend seting up a docker container with neo4j with this command:
      docker run \
      --publish=7474:7474 --publish=7687:7687 \
      --volume=$HOME/neo4j/data:/data \
      --volume=$HOME/neo4j/logs:/logs \
      neo4j:3.0
      
  • Install Elasticsearch

    • Setup Elasticsearch
    • Don't forget to set JAVA_HOME path to the path of java jdk
    • You can setup a local ES docker container with this command:
      docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.5.2
      
  • Setup elasticsearch development and testing

    • Rename config directory to config.development in your elasticsearch installation directory
    • Copy the contents of elasticsearch.example.yml in this repository into elasticsearch.yml in config.development
    • Make a new directory named config.test and copy the contents of config.development into it
    • Edit the elasticsearch.yml by replacing every occurence of development with test and change the port to 9400
    • Start both services by running ES_PATH_CONF=config.development ./bin/elasticsearch-service.bat install elasticsearch-development ./bin/elasticsearch-service.bat start elasticsearch-development and ES_PATH_CONF=config.test ./bin/elasticsearch-service.bat install elasticsearch-test ./bin/elasticsearch-service.bat start elasticsearch-test
    • Unfortunately sometimes a service crashes, then you neet to run both commands again

Install dependencies

  • Run: poetry install

Setup database

  • Install constraints for neo4j for development and testing database (adapt the urls if you have a different setup):
    • Run: poetry run neomodel_install_labels application application.models --db bolt://:@localhost:7687
    • Run: poetry run neomodel_install_labels application application.models --db bolt://:@localhost:17687

Download Wordkit for synonyms

  • Run: poetry run shovel utils.download_wordkit

Running tests

  • Run: poetry run mamba specs

Running linter

  • Run: poetry run black --check .
  • Run: poetry run flake8 ./

Running auto-formater

  • Run: poetry run black .

Autoformating and linting can be automized if you have Pre-Commit installed on user.

Start service

  • Run: poetry run flask run

About

This service provides an api to store artefacts with their related meta-data and tags and performs machine learning on them

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.0%
  • HTML 6.2%
  • Other 0.8%