The objective of this project is to gain insights into how XOs are used in Nepalese classrooms. In order to learn about XO usage, first data is collected from their Journal backups on the schoolserver. Subsequently, the data is processed and imported into a database and finally visualized using fancy interactive charts. The application that implements the visualization of the data is called XOvis, a Couch App built using Kanso framework. See dataflow.svg for a schematic representation of the entire workflow.
-
To install the application, simply run
install_xovis.sh
./scripts/install_xovis.sh
-
Install project dependencies
yum install python-pip git couchdb nodejs npm"
-
Install Kanso framework
npm install -g kanso
-
Clone this repository in the destination of your choice
git clone https://github.com/martasd/xovis.git
-
Install the application into a new database
cd xovis kanso createdb http://localhost:5984/xovis kanso push http://localhost:5984/xovis
where
xovis
is the name of the new database.
-
If you prefer to avoid having to install Node JS, you can also install from a database dump:
./scripts/install_xovis_dbdump.sh
Note: Downloads of database dump file.
-
Insert XO Journal backup data into the same database using a Python script
pip install -r requirements.txt ./process_stats/process_journal_stats.py dbinsert xovis --deployment <deployment-name>
Note:
The script can also output statistical data to a file instead of inserting it into a database. To produce all statistical data from the Journal, one row per Journal record, call:
process_journal_stats.py all
To extract statistical data about the use of activities on the system, use:
process_journal_stats.py activity
To learn about all options of the script, see:
process_journal_stats.py --help
-
To manage Couch databases using a browser dashboard, go to
http://localhost:5984/_utils
-
Open up a browser and go to
http://localhost:5984/<deployment-name>/_design/xovis-couchapp/index.html
Enjoy the beautiful view!
process_journal_stats.py
script is based on
olpc-journal-processor
script Leotis' Buchanan and
get-journal-stats by
Raul Gutierrez Segales.