Commit fe61b3e4274dc752d429caca5c3cffcf15322982
1 parent
e4b33601
Exists in
master
and in
1 other branch
- updates README.md
- updates javascript libraries
Showing
3 changed files
with
55 additions
and
37 deletions
Show diff stats
README.md
1 | 1 | # User Manual |
2 | 2 | |
3 | 3 | 1. [Requirements](#requirements) |
4 | -1. [Installation](#installation) | |
5 | -1. [Setup](#setup) | |
6 | -1. [Running a demo](#running-a-demo) | |
7 | -1. [Running on lower ports](#running-on-lower-ports) | |
8 | -1. [Troubleshooting](#troubleshooting) | |
4 | +2. [Installation](#installation) | |
5 | +3. [Setup](#setup) | |
6 | +4. [Running a demo](#running-a-demo) | |
7 | +5. [Running on lower ports](#running-on-lower-ports) | |
8 | +6. [Troubleshooting](#troubleshooting) | |
9 | 9 | |
10 | 10 | --- |
11 | 11 | |
12 | 12 | ## Requirements |
13 | 13 | |
14 | -The webserver is a python application that requires `>=python3.7` and `pip` to | |
15 | -be installed. Node package management `npm` is also necessary in order to | |
16 | -install the javascript libraries. | |
14 | +The webserver is a python application that requires `>=python3.7` and the package installer for python `pip`. The node package management `npm` is also necessary in order to install the javascript libraries. | |
17 | 15 | |
18 | -```bash | |
19 | -sudo apt install python3 python3-pip npm # Ubuntu | |
20 | -sudo pkg install python37 py37-sqlite3 py37-pip npm # FreeBSD | |
21 | -sudo port install python37 py37-pip py37-setuptools npm6 # MacOS | |
16 | +```sh | |
17 | +sudo apt install python3 python3-pip npm # Ubuntu | |
18 | +sudo pkg install python37 py37-sqlite3 py37-pip npm # FreeBSD | |
19 | +sudo port install python37 py37-pip py37-setuptools npm6 # MacOS (macports) | |
22 | 20 | ``` |
23 | 21 | |
24 | -The file `pip.conf` should be configured to the following: | |
22 | +To make the `pip` install packages to a local directory, the file `pip.conf` should be configured as follows: | |
25 | 23 | |
26 | 24 | ```ini |
27 | 25 | [global] |
... | ... | @@ -32,7 +30,7 @@ format=columns |
32 | 30 | ``` |
33 | 31 | |
34 | 32 | This file is usually in `~/.config/pip/` in Linux and FreeBSD. In MacOS it's in |
35 | -`~/Library/Application Support/pip/`. | |
33 | +`~/Library/Application Support/pip/`. You may have to create it, if it doesn't exist yet. | |
36 | 34 | |
37 | 35 | --- |
38 | 36 | |
... | ... | @@ -40,16 +38,16 @@ This file is usually in `~/.config/pip/` in Linux and FreeBSD. In MacOS it's in |
40 | 38 | |
41 | 39 | Download and install: |
42 | 40 | |
43 | -```bash | |
41 | +```sh | |
44 | 42 | git clone https://git.xdi.uevora.pt/perguntations.git |
45 | 43 | cd perguntations |
46 | 44 | npm install |
47 | -pip3 install . | |
45 | +pip3 install . # this must come last | |
48 | 46 | ``` |
49 | 47 | |
50 | -The command `npm` installs the javascript libraries and `pip3` installs the | |
51 | -python webserver. | |
52 | -This will also install any required dependencies. | |
48 | +The command `npm` installs the javascript libraries and then `pip3` installs the python webserver. This will also install any required dependencies. | |
49 | + | |
50 | +**Atention!** `pip3 install .` must run **after** `npm install`, otherwise the javascript libraries will not be found during the install. | |
53 | 51 | |
54 | 52 | --- |
55 | 53 | |
... | ... | @@ -64,14 +62,14 @@ There are two possibilities to generate the certificates: |
64 | 62 | Certificates must be saved in the `$XDG_DATA_HOME` path if defined in the |
65 | 63 | environment, otherwise in `~/.local/share/certs` (I will assume the latter). |
66 | 64 | |
67 | -```bash | |
65 | +```sh | |
68 | 66 | mkdir -p ~/.local/share/certs |
69 | 67 | ``` |
70 | 68 | |
71 | 69 | Self-signed certificates are not certified by a recognised authority and |
72 | 70 | browsers will complain that the certificate is not trusted. That's ok. |
73 | 71 | |
74 | -```bash | |
72 | +```sh | |
75 | 73 | cd ~/.local/share/certs |
76 | 74 | openssl req -x509 -newkey rsa:4096 -keyout privkey.pem -out cert.pem -days 365 -nodes |
77 | 75 | ``` |
... | ... | @@ -90,7 +88,7 @@ as a template for your own tests and questions. |
90 | 88 | To run the demonstration test you need to initialize the database using one of |
91 | 89 | the following methods: |
92 | 90 | |
93 | -```bash | |
91 | +```sh | |
94 | 92 | cd perguntations/demo |
95 | 93 | |
96 | 94 | initdb students.csv # initialize from a CSV file |
... | ... | @@ -109,13 +107,13 @@ The complete tests submitted by the students are stored in JSON files in the |
109 | 107 | directory defined in `demo.yaml` under the option `answers_dir: ans`. |
110 | 108 | We also have to create this directory manually: |
111 | 109 | |
112 | -```bash | |
110 | +```sh | |
113 | 111 | mkdir ans # directory where the tests will be saved |
114 | 112 | ``` |
115 | 113 | |
116 | 114 | Start the server and run the `demo.yaml` test: |
117 | 115 | |
118 | -```bash | |
116 | +```sh | |
119 | 117 | perguntations demo.yaml # run demo test |
120 | 118 | ``` |
121 | 119 | |
... | ... | @@ -149,7 +147,7 @@ The details depend on the operating system/firewall. |
149 | 147 | |
150 | 148 | FIXME: Untested |
151 | 149 | |
152 | -```.bash | |
150 | +```.sh | |
153 | 151 | iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-ports 8443 |
154 | 152 | ``` |
155 | 153 | |
... | ... | @@ -219,6 +217,26 @@ Again, copy certificate files `privkey.pem` and `cert.pem` to `~/.local/share/ce |
219 | 217 | |
220 | 218 | --- |
221 | 219 | |
220 | +## Upgrading | |
221 | + | |
222 | +From time to time there can be updates to perguntations, python packages and javascript libraries. | |
223 | + | |
224 | +Python packages can be upgraded independently of the rest using pip: | |
225 | + | |
226 | +```sh | |
227 | +pip list --outdated # lists upgradable packages | |
228 | +pip install -U something # upgrade something | |
229 | +``` | |
230 | + | |
231 | +To upgrade perguntations and javascript libraries do: | |
232 | + | |
233 | +```sh | |
234 | +cd perguntations | |
235 | +git pull # get latest version of perguntations | |
236 | +npm update # get latest versions of javascript libraries | |
237 | +pip3 install -U . # upgrade perguntations | |
238 | +``` | |
239 | + | |
222 | 240 | ## Troubleshooting |
223 | 241 | |
224 | 242 | - The server tries to run `python3` so this command must be accessible from | ... | ... |
package-lock.json
... | ... | @@ -3,9 +3,9 @@ |
3 | 3 | "lockfileVersion": 1, |
4 | 4 | "dependencies": { |
5 | 5 | "@fortawesome/fontawesome-free": { |
6 | - "version": "5.11.1", | |
7 | - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.1.tgz", | |
8 | - "integrity": "sha512-DtXLVYAkDU0ce1cFUgLvZaMd1R2J/LviBYih9xr4ZLhQMrgvYX7w2vOxlpKLRALfIj5GyC5zoVrcACOkLcFgvg==" | |
6 | + "version": "5.11.2", | |
7 | + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz", | |
8 | + "integrity": "sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ==" | |
9 | 9 | }, |
10 | 10 | "bootstrap": { |
11 | 11 | "version": "4.3.1", |
... | ... | @@ -13,9 +13,9 @@ |
13 | 13 | "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==" |
14 | 14 | }, |
15 | 15 | "codemirror": { |
16 | - "version": "5.48.4", | |
17 | - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.48.4.tgz", | |
18 | - "integrity": "sha512-pUhZXDQ6qXSpWdwlgAwHEkd4imA0kf83hINmUEzJpmG80T/XLtDDEzZo8f6PQLuRCcUQhmzqqIo3ZPTRaWByRA==" | |
16 | + "version": "5.49.0", | |
17 | + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.49.0.tgz", | |
18 | + "integrity": "sha512-Hyzr0HToBdZpLBN9dYFO/KlJAsKH37/cXVHPAqa+imml0R92tb9AkmsvjnXL+SluEvjjdfkDgRjc65NG5jnMYA==" | |
19 | 19 | }, |
20 | 20 | "commander": { |
21 | 21 | "version": "3.0.1", |
... | ... | @@ -63,9 +63,9 @@ |
63 | 63 | "integrity": "sha512-yJxrWBHCjFZEHsZgfs7m5g9OSCNzsVYadW6f6lX3pgZL67vmodtSW/4zhsYmuDKweXfHs0M1kJge1uQIasWA+g==" |
64 | 64 | }, |
65 | 65 | "popper.js": { |
66 | - "version": "1.15.0", | |
67 | - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", | |
68 | - "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==" | |
66 | + "version": "1.16.0", | |
67 | + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", | |
68 | + "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==" | |
69 | 69 | }, |
70 | 70 | "speech-rule-engine": { |
71 | 71 | "version": "3.0.0-beta.6", | ... | ... |
package.json
... | ... | @@ -2,12 +2,12 @@ |
2 | 2 | "description": "Javascript libraries required to run the server", |
3 | 3 | "email": "mjsb@uevora.pt", |
4 | 4 | "dependencies": { |
5 | - "@fortawesome/fontawesome-free": "^5.11.1", | |
5 | + "@fortawesome/fontawesome-free": "^5.11.2", | |
6 | 6 | "bootstrap": "^4.3", |
7 | - "codemirror": "^5.48", | |
7 | + "codemirror": "^5.49.0", | |
8 | 8 | "datatables": "^1.10", |
9 | 9 | "jquery": "^3.4.1", |
10 | 10 | "mathjax": "^3", |
11 | - "popper.js": "^1.15" | |
11 | + "popper.js": "^1.16.0" | |
12 | 12 | } |
13 | 13 | } | ... | ... |