Skip to content
A D-CENT project: Secure notifications combined with w3 activity streams
Clojure CSS HTML Shell JavaScript Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status

A D-CENT project: Secure notifications combined with w3 activity streams


Development VM

You can develop and run the application in a VM to ensure that the correct versions of Mooncake's dependencies are installed. You will need VirtualBox, Vagrant and Ansible installed.

First, clone the repository.

Navigate to the ops/ directory of the project and run:

vagrant up development

The first time this is run, it will provision and configure a new VM.

When the VM has started, access the virtual machine by running:

vagrant ssh

The source folder will be located at /var/mooncake.

After initial setup, navigate to the source directory with:

cd /var/mooncake


To start the app, run:

lein stub

Go to localhost:3000 see the application running.

Running test suite

To run all tests, use this command:

lein test

Commands and aliases can be found in the project.clj file.

Running the prototype

Simply type:

gulp server

Activity sources

Activities are expected in the following format:

  @context:  "",
  published: "2015-12-18T14:25:40.240Z",
  type:      "Add",  --- used to customise the feed
  object: {
    url:     "",  (optional)
    name:    "Why?",
    type:    "Question"  --- used to set the action text
  actor: {
    name:    "Jane Doe"
  target:  (optional) {
    url:   "",  (optional)
    name:  "This Objective"

The timestamp uses the format YYYY-MM-DDThh:mm:ss.sZ as specified in the international standard ISO 8601.

They should be presented inside a collection:

  @context:   "",
  type:       "Collection",
  name:       "Activity stream",
  totalItems: 23,
  items: [
    <activities go here>

The activity source must support the to and from query parameters, returning activities with a published time less than or greater than the provided timestamp respectively. For example, should return all activities that occurred after 2pm on the 22nd December 2015.

Adding translations

The translation files can be found at resources/lang/. To support a new language, you should create a new {language}.yml file and add to the client_translations.clj and time_translations.cljs files.

You can add any unsupported activity or object types to the activity-type section in {language}.yml in the following format:

action-text-{object type}: action text here
customise-feed-{activity type}: text here for customise feed view

For example,

  action-text-objective: created an objective
  customise-feed-create: Created content


To deploy using Docker, see here.

To deploy to Heroku, see here.

You can’t perform that action at this time.