Commit cab247c9f11c2a51a1510a48b6513c3685cd473d
1 parent
a8d19a1a
Exists in
master
and in
1 other branch
updated README and BUGS
Showing
2 changed files
with
43 additions
and
13 deletions
Show diff stats
BUGS.md
| ... | ... | @@ -19,6 +19,9 @@ ou usar push (websockets?) |
| 19 | 19 | |
| 20 | 20 | # TODO |
| 21 | 21 | |
| 22 | +- gerar teste qd o prof autoriza. | |
| 23 | +- enviar resposta de cada pergunta individualmente. | |
| 24 | + | |
| 22 | 25 | - experimentar gerador de svg que inclua no markdown da pergunta e ver se funciona. |
| 23 | 26 | - imagens jpg/png nas perguntas. |
| 24 | 27 | - suportar cotacao to teste diferente de 20 (e.g. para juntar perguntas em papel). opcao "points: 18" que normaliza total para 18 em vez de 20. | ... | ... |
README.md
| ... | ... | @@ -4,9 +4,9 @@ |
| 4 | 4 | 2. [Running a demo](#running-a-demo) |
| 5 | 5 | 3. [Troubleshooting](#troubleshooting) |
| 6 | 6 | |
| 7 | -## Installation | |
| 7 | +## 1. Installation | |
| 8 | 8 | |
| 9 | -### Requirements | |
| 9 | +### 1.1 Requirements | |
| 10 | 10 | |
| 11 | 11 | The webserver is a python application and requires `python3.6` and `pip` to be installed, plus the following additional packages: |
| 12 | 12 | |
| ... | ... | @@ -16,13 +16,14 @@ The webserver is a python application and requires `python3.6` and `pip` to be i |
| 16 | 16 | - Pygments |
| 17 | 17 | - SQLAlchemy |
| 18 | 18 | - bcrypt |
| 19 | +- markdown | |
| 19 | 20 | |
| 20 | 21 | These can be installed for a single user (recommended), in a python virtual environment or system wide. |
| 21 | 22 | |
| 22 | 23 | #### Installing packages for a single user (recommended) |
| 23 | 24 | |
| 24 | 25 | ```.bash |
| 25 | -pip3 install --user tornado mistune pyyaml pygments sqlalchemy bcrypt | |
| 26 | +pip3 install --user tornado mistune pyyaml pygments sqlalchemy bcrypt markdown | |
| 26 | 27 | ``` |
| 27 | 28 | |
| 28 | 29 | #### Installing packages in a virtual environment (alternative) |
| ... | ... | @@ -31,7 +32,7 @@ pip3 install --user tornado mistune pyyaml pygments sqlalchemy bcrypt |
| 31 | 32 | pyvenv-3.6 venv/perguntations # or other virtualenv directory |
| 32 | 33 | source venv/perguntations/bin/activate # activate virtualenv |
| 33 | 34 | |
| 34 | -pip3 install tornado mistune pyyaml pygments sqlalchemy bcrypt | |
| 35 | +pip3 install tornado mistune pyyaml pygments sqlalchemy bcrypt markdown | |
| 35 | 36 | ``` |
| 36 | 37 | |
| 37 | 38 | #### Installing packages system wide (alternative) |
| ... | ... | @@ -51,7 +52,7 @@ port install py36-py36-tornado py36-mistune? py36-yaml py36-pygments... |
| 51 | 52 | ``` |
| 52 | 53 | |
| 53 | 54 | |
| 54 | -### Install and setup perguntations | |
| 55 | +### 1.2 Install and setup perguntations | |
| 55 | 56 | |
| 56 | 57 | There is no installer, pip or otherwise. It's still in development and has to be run from sources. Use `git` to get the sources: |
| 57 | 58 | |
| ... | ... | @@ -65,11 +66,35 @@ where USERNAME is your account on bitbucket. |
| 65 | 66 | The server will run an https server and requires valid certificates. |
| 66 | 67 | To generate certificates, there are two possibilities: public server with static IP address or a private server. |
| 67 | 68 | |
| 68 | -#### Generating certificates for a public server | |
| 69 | +#### Generating certificates for a public server (FreeBSD) | |
| 69 | 70 | |
| 70 | -For a public server, `letsencrypt` will allow a certificate to be generated. | |
| 71 | +```sh | |
| 72 | +sudo pkg install py27-certbot # FreeBSD | |
| 73 | +``` | |
| 74 | + | |
| 75 | +Shutdown the firewall and any server running. Then run the script to generate the certificate: | |
| 76 | + | |
| 77 | +```sh | |
| 78 | +sudo service pf stop # disable pf firewall (FreeBSD) | |
| 79 | +sudo certbot certonly --standalone -d www.example.com | |
| 80 | +sudo service pf start # enable pf firewall | |
| 81 | +``` | |
| 82 | + | |
| 83 | +Certificates are saved under `/usr/local/etc/letsencrypt/live/www.example.com/`. Copy them to `aprendizations/certs` and change permissions to be readable: | |
| 71 | 84 | |
| 72 | -TODO: explain... | |
| 85 | +```sh | |
| 86 | +sudo cp /usr/local/etc/letsencrypt/live/www.example.com/cert.pem . | |
| 87 | +sudo cp /usr/local/etc/letsencrypt/live/www.example.com/privkey.pem . | |
| 88 | +chmod 400 cert.pem privkey.pem | |
| 89 | +``` | |
| 90 | + | |
| 91 | +Renews can be done as follows: | |
| 92 | + | |
| 93 | +```sh | |
| 94 | +sudo service pf stop # shutdown firewall | |
| 95 | +sudo certbot renew | |
| 96 | +sudo service pf start # start firewall | |
| 97 | +``` | |
| 73 | 98 | |
| 74 | 99 | Copy certificates `cert.crt` and `cert.key` to the `perguntations/certs/` directory. |
| 75 | 100 | |
| ... | ... | @@ -79,7 +104,7 @@ Self-signed certificates are not certified by a recognised authority and browser |
| 79 | 104 | |
| 80 | 105 | ```bash |
| 81 | 106 | cd perguntations/certs/ |
| 82 | -openssl req -x509 -newkey rsa:4096 -keyout cert.key -out cert.crt -days -nodes | |
| 107 | +openssl req -x509 -newkey rsa:4096 -keyout cert.key -out cert.crt -days 365 -nodes | |
| 83 | 108 | ``` |
| 84 | 109 | |
| 85 | 110 | ## Running a demo |
| ... | ... | @@ -92,12 +117,14 @@ To run the demonstration test: |
| 92 | 117 | cd WHERE/YOU/INSTALLED/perguntations |
| 93 | 118 | |
| 94 | 119 | # create and initialize database using one of the following methods: |
| 95 | -./initdb.py students.csv # from CSV file | |
| 96 | -./initdb.py --demo # initialize with fake students | |
| 97 | -./initdb.py # only adds the administrator account | |
| 120 | +./initdb.py students.csv # initialize from a CSV file | |
| 121 | +./initdb.py --admin # only adds the administrator account | |
| 122 | +./initdb.py --add 123 "Asterix Gaules" # add one student | |
| 123 | + | |
| 124 | +# a database file "students.db" is created | |
| 98 | 125 | mv students.db demo/ |
| 99 | 126 | |
| 100 | -# create directory to save the student's tests | |
| 127 | +# create directory to save the finished tests | |
| 101 | 128 | mkdir demo/ans |
| 102 | 129 | |
| 103 | 130 | # edit test configuration and check if everything looks right | ... | ... |