A dashboard for the researchers running projects on the Zooniverse Panoptes Citizen Science platform.
The software is constructed out of several (sort-of) microservices;
- A data interface layer that listens to events on the Zooniverse platform and streams them into a MongoDB database.
- An API that provides some REST-esque endpoints that gives the application programmatic access to certain structured data in the database.
- A small web application framework that generates and serves the dashboard's HTML pages from templates.
This simply subscribes to some Pusher streams and then transforms the data into a sensible format before indexing it into a MongoDB database.
The backend API is quite straightforward, and just performs queries on data in the database, which can then be shuttled to the web interface or other frameworks.
The application is written entirely in Node.JS and uses the Express web
framework to serve requests. It uses the nunjucks
templating engine, which is
essentially a Node.JS clone of Python's Jinja2.
Shows real-time geographic activity of users on the platform, plus a list of live-streaming comments, users, etc.
Shows a real-time display of the most popular images - that is, images with the highest overall activity from users (comments and so forth).