Posts tagged ‘OppiaMobile’

Map of OppiaMobile Users

[Updated to show all users until 15 March 2014]

I just created a map of all the recent activity in OppiaMobile Android app based on the IP addresses our users are visiting from:

The map is just a point-in-time visualization of all our current users and since it’s based on IP addresses the locations aren’t exact (for example all users in Ethiopia are shown as being in Addis), but it’s sufficient to get a good impression on a country/regional level. The size of each ‘blob’ represents how many hits we’ve had from that location.

For info, here’s the process I went through to generate the map:

  1. Exact all the distinct IP address from our server logs
  2. Look up the IP address to get the city/region and country from the IPAddressLabs web service. I only signed up for their basic trial version – which doesn’t give the lat/lng – hence the requirement for the next step
  3. Look up the city and country using the GeoNames web service to get the lat/lng to then match up the IP address.
  4. Export the data and upload into CartoDB to create the visualization

Hopefully soon I’ll figure out how to make this a live map so it’s dynamically updated.

OppiaMobile presentation at TelSpain

On Friday I gave a presentation about OppiaMobile to the TelSpain conference in Madrid. At the conference I meet several colleagues from projects and work I was doing at the Open Uni over 5 or 6 years ago, so was great to meet them again. My presentation was video recorded, so will post up a link to the full video once it is available.

DaeSav 2013 – Presentation on OppiaMobile

Generating documentation for OppiaMobile

This afternoon, I’ve been figuring out how to produce some nice documentation for the OppiaMobile Django server. I recently got the Django app published on PyPi, at: (it’s still very much under development, just in case you’re inclined to install!), so wanted some docs, especially for the installation, upgrading and REST API.

Using Sphinx, I successfully got it to build a local documentation set of html files, but rather than manually post these to a static website evry tiem I update, I looked to use ReadTheDocs to dynamically create my documentation from my source code on Github. My first mistake was to assume that ReadTheDocs would just read the built html files… it doesn’t… it generates it’s own set of docs from the Sphinx /docs/ file.

So although my first attempts at building the docs from ReadTheDocs appeared to successfully complete, I was getting errors in the build output log about not being able to find my Django settings, modules etc – so the documentation was only partially complete, since it had skipped over any of the .rst files which linked to Django modules. I eventually found the answer to set up a local file in my docs directory and edit my sphinx slightly – details here.

So I now have the documentation upa nd running at: – although at the moment the docs are rather sparese at the moment – I need to spend some time getting these written correctly.

Visit to Addis, Raspberry Pi and OppiaMobile

I realise it’s been quite a while since I’ve posted anything up, over a month. Usually I like to post regularly, but I seem to have got a little behind, probably mainly because much of the work I’ve been doing recently hasn’t been particularly blog-worthy (project set-up, documentation, paperwork etc).

I was recently back in Addis for a couple of weeks, we still had funding for travel left from our previous project so needed to use it or lose it. We spent quite a lot of time with AMREF and the Ministry of Health, we’re hopefully going to be running a project with them – but I’ll give more news on this once the funding is properly confirmed. I also had chance to catch up with a lot of people, although we only stayed in Addis, no trip up to Mekelle. Addis is changing very quickly, every time I go there are many new buildings (either completed or under construction), and this time they’ve started to put in a tram system (not sure when this is due to be completed). What was interesting was the number of smartphones around now, many people now have one. OK, this was Addis so maybe the situation isn’t the same out in the rural areas, but it is a big change from only 18 months ago. One of the master students from Adama Uni who I met up with estimated that over 30% of the students in his class now have (Android) smartphones, up from 0% about a year ago.

I’ve also been working a bit with my Raspberry Pi, I got one of the camera modules, so have been having a play around with that, creating some time-lapse videos and a motion dectection (using this script), but as yet nothing quite good enough to post up here.

Finally, I’ve been doing some work on the OppiaMobile Android app and server. For the app there were a few bugs that I needed to get fixed up, and are now released over on Google Play, but the main work I’ve been doing is to restructure the server side. Before the focus was all on quizzes and the mobile learning courses seemed to be hidden away. So I wanted to reverse the focus so the course became the main focus, I’m in the process of putting up the updated site at:, but I’m still working on it right now so not everything may work. I’ve also been learning about how to package up and distribute django apps (reference) and I now have a first verison of the OppiaMobile server side released onto the Python Package Index, at:

New OppiaMobile video

I’ve just uploaded an updated OppiaMobile preview video, showing some of the changes we’ve made over the last couple of months, especially with the updated interface design and with our platform name. I’ve also launched the OppiaMobile website, so has some extra information pages especially for course authors and for developers.

For those interested, I used an Android screen recording app to create the video – was easy to use and could record my voice at the same time (though it requires a rooted phone to work). With the previous demo videos I’ve made of apps running the mobile, it’s always been tricky to get my digital camera to focus on the screen properly and also so there aren’t reflections from the mobile screen. Although I think it looks good, I think I still prefer videos where you can see the whole phone and it being manipulated. One issue I found was that when I was demonstrating the videos running, they automatically play in landscape mode, but the rest of the video is in portrait, so I needed to cut and rotate this part of the demo. I’d be interested to hear if you think a video of the full phone (and my hands) or a screencast recording is preferable as a demo of the app.