From d82013c214021d6e5480d18105760fa70cfc708b Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 14 Sep 2015 12:46:01 +0200 Subject: Script for adding problems to DB, update readme --- readme.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 readme.md (limited to 'readme.md') diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6f891f2 --- /dev/null +++ b/readme.md @@ -0,0 +1,53 @@ +Deployment +========== + +Install the following packages: + + - apache2 + - python3-falcon + - python3-ply + - python3-psycopg2 + - python3-termcolor + - python3-waitress + - swi-prolog-nox + +Settings: + + - point webroot to codeq-web + - set up reverse proxy for /svc/ to wsgi server: + ProxyPass /svc/ http://localhost:8082/ + ProxyPassReverse /svc/ http://localhost:8082/ + - set _path_prefix in server.problems + - set DB settings in db + +Running: + + - run prolog/runner/main.pl + - run python/runner/main.py + - run daemon.py + - run wsgi_server.py + +Misc. +===== + +Add a new problem to the database by running + + python -m scripts.add_problem + +in the toplevel directory. This will ask for language and problem group (groups +can be shared between languages, e.g. Introduction can be used for both Prolog +and Python). The script will print the ID and path for the new problem. + +You can test stuff in a python interpreter: + + >>> import server + >>> session = server.user_session.authenticate_and_create_session(, ) + >>> session.get_problem_data('python', 'introduction', 'fahrenheit_to_celsius') + + >>> python = session.get_python() + >>> python.test(231, 180, '''print('-17.7')''') + >>> python.hint(231, 180, '''print('-17.7')''') + + >>> prolog = session.get_prolog() + >>> prolog.test(231, 96, 'sister(X,Y):- parent(P,X), parent(P,Y), female(X).') + >>> prolog.hint(231, 96, 'sister(X,Y):- parent(P,X), parent(P,Y), female(X).') -- cgit v1.2.1