General software development process
All prerequisits for the development process and quality control have been taken. The code is available openly on github. User Stories and other issues are handled as issues, which are managed through a Kanban board. The inital backlog was filled in a two-day user story workshop. To ensure code quality, Travis CI is used for continous integration.
Development of the landing page
Initially, it was planned to very quickly release a landing page with basic project information and the possibility to register for the project newsletter. Instead of only describing what is planned though, the idea to actually build a first minimal yet functional version demonstrating the way that the OER World Map can provide an overview of the global OER ecosystem arose. The idea was to implement a heat map displaying an aggregation of users by country. Thus,
- getting basic project information,
- signing up for a newsletter,
- and a first implementation of an actual OER World Map
were the core features to realize.
Given the international character of the platform, multilinguality has been prepared for from the beginning. While only an English interface is provided for the time being, more languages can easily be added by creating text files in a very simple format.
Given these features, the designer and the front-end development team sat together to draft a first concept for the user interface. This process resulted in a basic page layout and color scheme as can be seen below.
In order to implement the functionalities and the design, technological choices had to be made. These choices were guided by the standpoint that at least a very basic version of the platform should be accessible by low-end clients such as old browsers, screen readers and search engine spiders. Instead of building a hi-fi version first and then making big efforts to make things work under less than ideal circumstances, it was decided to embrace the philosophy of progressive enhancement:
[G]raceful degradation starts from the status quo of complexity and tries to fix for the lesser experience whereas progressive enhancement starts from a very basic, working example and allows for constant extension for future environments. Degrading gracefully means looking back whereas enhancing progressively means looking forward whilst keeping your feet on firm ground. http://www.w3.org/wiki/Graceful_degradation_versus_progressive_enhancement
This meant to divert partly from the technology stack that was originally envisioned; most notably it was decided to not use AngularJS but relying on classic server-side rendering. Bootstrap is being used as a CSS framework as it eases the implementation of responsive design.
The geographical map itself is based on jVectorMap, which allowed very quick implementation of a global scale map. Several shortcomings – most significantly the fact that it is based on a custom data model instead of wide spread standards such as GeoJSON – make it very likely to be replaced by a D3 based solution in the course of the project, as was originally planned.
On the back-end side, the original technology stack that was proposed remains mostly unchanged. Data is indexed in Elasticsearch so that it can easily be exposed in two ways that are most important: as a list of search hits and as aggregations that can be displayed in various forms of visualizations. The data model is expressed as a JSON-Schema that is also used to validate instance data. Currently all elements of the data model stem from the widespread and well adopted schema.org vocabulary. Countries are referenced by their ISO 3166 alpha-2 country-codes which is also well accepted, widespread and integrates well with schema.org.
The actual newsletter is handled outside of the OER World Map platform by GNU Mailman, a widespread and well tested system for handling mailing lists. Comitted to privacy by design, this makes it possibly that the database driving the OER World Map itself currently does not hold clear text email adresses.
The main next feature to be implemented is the possibility to describe organizations producing or using OER or otherwise engaging in the community. This has several implications. Most importantly,
- authorization is needed to prevent spam,
- an editing interface has to be implemented to easily edit data,
- and an advanced layout is necessary that provides the means for more complex user interaction.
Work on all three of these has already begun. At this stage, authorization will be provided by making it possible for people that have signed up for the newsletter to request one-time-passwords that are delivered to their email address and are valid until logging out. This allows for Basic access authentication (over SSL, which the entire OER World Map uses) without the need to set up actual user accounts.
For the editing interface, several solutions to provide user-friendly geocoding are being evaluated. Among the most promising are solutions that are based on OpenStreetMap data and Elasticsearch, such as Photon and Pelias.
The layout of the OER World Map beyond the current landing page is based on responsive web design. Depending on the device being used, one to three columns are displayed at once. The first one presents the actual world map. The second one contains aggregations resp search results while the third is reserved for views of individual items. This approach keeps it open to add additional columns or a vertical dimension to individual columns so that future extensions can easily be incorporated.
If you would like to know more details or have additional questions, you are very welcome to post a comment.