Commit ca9934fac522d84d5268d2992f0e977259340d24

Authored by Miguel Barao
1 parent 65fc5e2e
Exists in master and in 1 other branch dev

- updated README.md

Showing 2 changed files with 49 additions and 26 deletions   Show diff stats
1 1
2 # BUGS 2 # BUGS
  3 +
  4 +- servidor nao esta a lidar com eventos scroll/resize
3 - se um teste tiver a mesma pergunta (ref igual) varias vezes, rebenta na correcçao. As respostas são agregadas numa lista para cada ref. Ex: 5 - se um teste tiver a mesma pergunta (ref igual) varias vezes, rebenta na correcçao. As respostas são agregadas numa lista para cada ref. Ex:
4 {'ref1': 'resposta1', 'ref2': ['resposta2a', 'resposta2b']} 6 {'ref1': 'resposta1', 'ref2': ['resposta2a', 'resposta2b']}
5 possivelmente as referencias das perguntas deveriam ser o "testeRef:numPergunta"... é preciso ver como depois estao associadas às correcções. 7 possivelmente as referencias das perguntas deveriam ser o "testeRef:numPergunta"... é preciso ver como depois estao associadas às correcções.
6 -- se ocorrer um erro na correcçao avisar aluno para contactar o professor.  
7 - se directorio logs não existir no directorio actual (não perguntations) rebenta. 8 - se directorio logs não existir no directorio actual (não perguntations) rebenta.
8 - usar thread.Lock para aceder a variaveis de estado? 9 - usar thread.Lock para aceder a variaveis de estado?
9 10
10 # TODO 11 # TODO
11 12
  13 +- se ocorrer um erro na correcçao avisar aluno para contactar o professor.
12 - implementar practice mode. 14 - implementar practice mode.
13 - usar http://wtfforms.com para radio e checkboxes 15 - usar http://wtfforms.com para radio e checkboxes
14 -- usar http://fontawesome.io/examples/ em vez dos do bootstrap3  
15 - abrir o teste numa janela maximizada e que nao permite que o aluno a redimensione/mova. 16 - abrir o teste numa janela maximizada e que nao permite que o aluno a redimensione/mova.
16 - detectar scroll e enviar posição para servidor (analise de scroll para detectar copianço? ou simplesmente para analisar como os alunos percorrem o teste) 17 - detectar scroll e enviar posição para servidor (analise de scroll para detectar copianço? ou simplesmente para analisar como os alunos percorrem o teste)
17 - single page web no teste/correcçao. Página construída em javascript, obter perguntas com ajax (para practice?). 18 - single page web no teste/correcçao. Página construída em javascript, obter perguntas com ajax (para practice?).
@@ -26,6 +27,7 @@ possivelmente as referencias das perguntas deveriam ser o "testeRef:numPergunta" @@ -26,6 +27,7 @@ possivelmente as referencias das perguntas deveriam ser o "testeRef:numPergunta"
26 27
27 # FIXED 28 # FIXED
28 29
  30 +- usar http://fontawesome.io/examples/ em vez dos do bootstrap3
29 - se pergunta tiver 'type:' errado, rebenta. 31 - se pergunta tiver 'type:' errado, rebenta.
30 - se submeter um teste so com information, da divisao por zero. 32 - se submeter um teste so com information, da divisao por zero.
31 - se save_answers nao existir, da warning que nao serao gravados, mas sao sempre gravados! pagina de administracao diz --not being saved-- 33 - se save_answers nao existir, da warning que nao serao gravados, mas sao sempre gravados! pagina de administracao diz --not being saved--
1 # README # 1 # README #
2 2
3 -### Requirements: 3 +1. [Installation](#installation)
  4 +2. [Running a demo](#running-a-demo)
  5 +3. [Troubleshooting](#troubleshooting)
4 6
5 -The webserver is a python application and requires python 3.5+ to be installed. 7 +## Installation
6 8
7 -The following additional python packages are required: 9 +### Requirements
  10 +
  11 +The webserver is a python application and requires `python3.5` and `pip` to be installed, plus the following additional packages:
8 12
9 - CherryPy 13 - CherryPy
10 - Mako 14 - Mako
@@ -14,23 +18,43 @@ The following additional python packages are required: @@ -14,23 +18,43 @@ The following additional python packages are required:
14 - SQLAlchemy 18 - SQLAlchemy
15 - bcrypt 19 - bcrypt
16 20
17 -These can be installed globally or in a python virtual environment. 21 +These can be installed for a single user (recommended), in a python virtual environment or system wide.
  22 +
  23 +#### Installing packages for a single user (recommended)
  24 +
  25 +```.bash
  26 +pip install --user cherrypy
  27 +pip install --user mako
  28 +pip install --user markdown
  29 +pip install --user pyyaml
  30 +pip install --user pygments
  31 +pip install --user sqlalchemy
  32 +pip install --user bcrypt
  33 +```
  34 +
  35 +#### Installing packages in a virtual environment
18 36
19 ```.bash 37 ```.bash
20 -# install in a virtualenv  
21 -pyvenv-3.5 venv/perguntations # or choose another virtualenv directory 38 +pyvenv-3.5 venv/perguntations # or other virtualenv directory
22 source venv/perguntations/bin/activate # activate virtualenv 39 source venv/perguntations/bin/activate # activate virtualenv
23 40
24 -pip3.5 install cherrypy  
25 -pip3.5 install mako  
26 -pip3.5 install markdown  
27 -pip3.5 install pyyaml  
28 -pip3.5 install pygments  
29 -pip3.5 install sqlalchemy  
30 -pip3.5 install bcrypt 41 +pip install cherrypy
  42 +pip install mako
  43 +pip install markdown
  44 +pip install pyyaml
  45 +pip install pygments
  46 +pip install sqlalchemy
  47 +pip install bcrypt
31 ``` 48 ```
32 49
33 -To install `perguntations`: 50 +#### Installing packages system wide
  51 +
  52 +I personally prefer python packages to be installed for a single user, but if a system wide installation is required, it is probably better to use the operating system package manager instead of `pip`:
  53 +
  54 +- Linux: apt-get, etc
  55 +- macOS: macports, etc
  56 +
  57 +### Installing perguntations
34 58
35 ```.bash 59 ```.bash
36 cd WHERE/TO/PUT/THE/SOFTWARE 60 cd WHERE/TO/PUT/THE/SOFTWARE
@@ -39,7 +63,7 @@ git clone https://USERNAME@bitbucket.org/USERNAME/perguntations.git @@ -39,7 +63,7 @@ git clone https://USERNAME@bitbucket.org/USERNAME/perguntations.git
39 63
40 where USERNAME is your account on bitbucket. 64 where USERNAME is your account on bitbucket.
41 65
42 -### System setup: 66 +## Running a demo
43 67
44 The following commands will show how to run a demonstration test: 68 The following commands will show how to run a demonstration test:
45 69
@@ -47,8 +71,8 @@ The following commands will show how to run a demonstration test: @@ -47,8 +71,8 @@ The following commands will show how to run a demonstration test:
47 cd WHERE/YOU/INSTALLED/perguntations 71 cd WHERE/YOU/INSTALLED/perguntations
48 72
49 # create database. 73 # create database.
50 -# a database with 5 fake students is created if no CSV file is provided  
51 -./initdb_from_csv.py OPTIONAL_CSV_FILE 74 +# a database with fake students is created if no CSV file is provided
  75 +./initdb.py OPTIONAL_CSV_FILE
52 mv students.db demo/ 76 mv students.db demo/
53 77
54 # edit test configuration and check if everything looks right 78 # edit test configuration and check if everything looks right
@@ -61,11 +85,8 @@ vi config/server.conf @@ -61,11 +85,8 @@ vi config/server.conf
61 We are now ready to run the server: 85 We are now ready to run the server:
62 86
63 ```.bash 87 ```.bash
64 -# get help  
65 -./serve.py --help  
66 -  
67 -# run demo test  
68 -./serve.py demo/test.yaml 88 +./serve.py --help # get help
  89 +./serve.py demo/test.yaml # run demo test
69 ``` 90 ```
70 91
71 Open the browser at `http://127.0.0.1:8080/` and login as user number `0` (administrator) and: 92 Open the browser at `http://127.0.0.1:8080/` and login as user number `0` (administrator) and:
@@ -75,12 +96,12 @@ Open the browser at `http://127.0.0.1:8080/` and login as user number `0` (admin @@ -75,12 +96,12 @@ Open the browser at `http://127.0.0.1:8080/` and login as user number `0` (admin
75 96
76 The server can be stoped from the terminal with <kbd>^C</kbd>. 97 The server can be stoped from the terminal with <kbd>^C</kbd>.
77 98
78 -### Troubleshooting 99 +## Troubleshooting
79 100
80 * If you are getting any `UnicodeEncodeError` type of errors that's because the terminal is not supporting UTF-8. Try running `locale` on the terminal and see if there is any error messages. Solutions: 101 * If you are getting any `UnicodeEncodeError` type of errors that's because the terminal is not supporting UTF-8. Try running `locale` on the terminal and see if there is any error messages. Solutions:
81 - debian: fix it with `sudo dpkg-reconfigure locales`, select your UTF-8 locales and try again. 102 - debian: fix it with `sudo dpkg-reconfigure locales`, select your UTF-8 locales and try again.
82 103
83 -### Contribute ### 104 +## Contribute ###
84 105
85 * Writing questions in yaml format 106 * Writing questions in yaml format
86 * Testing and reporting bugs 107 * Testing and reporting bugs