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.
- CouchDB 1.7
- Python 2.7
- Node.js 8
Install project dependencies for a Fedora system.
yum install python-pip git couchdb nodejs npm
Create a couchdb database.
curl -X PUT http://127.0.0.1:5984/xovis
Note: if you use a different database name, you'll need to set that in your
Clone this repository in the destination of your choice.
git clone https://github.com/andi-g/xovis.git cd xovis
Push the xovis couchapp into your database.
./node_modules/.bin/couchapp push xovis/app.js http://localhost:5984/xovis
Note: If you have already set up a couchdb admin user, please use the credentials.
./node_modules/.bin/couchapp push xovis/app.js http://username:password@localhost:5984/xovis
Start the app.
Open your browser to localhost:8000.
Load existing deployment data into the database
Insert XO Journal backup data into the same database using a Python script
pip install -r process_stats/requirements.txt ./process_stats/process_journal_stats.py dbinsert xovis --deployment <deployment-name>
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:
To extract statistical data about the use of activities on the system, use:
To learn about all options of the script, see:
To manage Couch databases using a browser dashboard, go to
Open up a browser and open the index.html file in this repo.
Enjoy the beautiful view!