Giter Club home page Giter Club logo

otto-pathfinder's Introduction

alt tag

otto-pathfinder

With OTTO Pathfinder we invented a great tool which offers the ability to interactively analyze paths.

screenshot1

The user has the possibility to filter paths, to drill certain nodes up to three levels of detail (e.g. from the assortment to the product or from page types to ever finer page names), to select the number of the displayed steps within the journey, to display only the paths of visitors of specific marketing channels and many more options.

screenshot2

Not only the absolute, but also the percentage occurrences of the paths are displayed (share of the current view, not share of total).

screenshot

It is now possible to save different views (drilldowns and filters) in the webbrowser and reload them later.

screenshot4

A view that has been saved in the browser previously can be reloaded via the "Load Sankey" function. Here the stored drilldowns and filters are applied to the current data of the Sankey database.

Requirements

Web Server MongoDB Node.js

Installation

  1. Upload all files to the server
  2. Navigate to OTTO Pathfinder folder
  3. Adjust config.json
  4. sudo npm install
  5. sudo npm install forever -g
  6. sudo forever start sankey.js
  7. Access OTTO Pathfinder at http://<server-ip>:<port>

MongoDB structure

Each Sankey diagram is stored as a collection in MongoDB. Each collection contains several paths as well as metadata:

Sample json Structure representing one path:

{
    "p-1" : { /*Step -1*/
        "PC" : "Entrysite", /*Hierarchy 1; e.g. Page type*/
        "N1" : "herrenmode", /*Hierarchy 2; e.g. Page name*/
        "N2" : "Entrysite", /*Hierarchy 3*/
        "N3" : "Entrysite" /*Hierarchy 4*/
    },
    "p0" : { /*Step 0*/
        "PC" : "Storefront", /*Hierarchy 1; e.g. Page type*/
        "N1" : "homepage", /*Hierarchy 2; e.g. Page name*/
        "N2" : "hierarchie_level3", /*Hierarchy 3*/
        "N3" : "hierarchie_level4" /*Hierarchy 4*/
    },
    "p1" : { /*Step 1*/
        "PC" : "Entrysite", /*Hierarchy 1; e.g. Page type*/
        "N1" : "herrenmode", /*Hierarchy 2; e.g. Page name*/
        "N2" : "Entrysite", /*Hierarchy 3*/
        "N3" : "Entrysite" /*Hierarchy 4*/
    },
    "p2" : { /*Step 2*/
        "PC" : "Entrysite", /*Hierarchy 1; e.g. Page type*/
        "N1" : "herrenmode", /*Hierarchy 2; e.g. Page name*/
        "N2" : "shirts", /*Hierarchy 3*/
        "N3" : "Entrysite" /*Hierarchy 4*/
    },
    "p3" : { /*Exit-Step*/
        "PC" : "#exit",
        "N1" : "exit",
        "N2" : "exit",
        "N3" : "exit"
    },
    /*Filter variables*/
    "device" : "mobile",
    "marketingchannel" : "SEA",
    "ordervalue" : 5.99,
    "date" : ISODate("2016-08-23T12:00:00.000Z"),
    "count" : 1 /*Number of paths with this structure*/
}

Sample json Structure representing metadata:

{
    "metadata" : {
        "date" : {
            "min" : "2016-06-26T12:00:00.000Z", /*Minimum date available*/
            "max" : "2016-07-08T12:00:00.000Z", /*Maximum date available*/
            "start" : "2016-07-08T12:00:00.000Z",  /*Preselected start date*/
            "end" : "2016-07-08T12:00:00.000Z"  /*Preselected end date*/
        },
        "steps" : {
            "min" : -7,  /*Minimum step available*/
            "max" : 7,  /*Maximum date available*/
            "start" : -3, /*Preselected start step*/
            "end" : 3 /*Preselected end step*/
        },
        "meta" : {
            "owner" : "Sales",  /*Owner of the current Sankey diagram; e.g. department*/
            "description" : "This sankey shows the paths that visitors of otto.de go.",
            "created" : "2016-08-23T12:00:00.000Z"
        },
        "sum" : { /*Field which can be summarized in the frontend. "count" is standard. */
            "count" : "Number of paths",
            "ordervalue" : "Order value in EUR"
        },
        "info" : {  /*Variables that are shown in tooltip*/
            "size" : "Screen size"
        },
        "filter" : [ 
            {
                "label" : "Screen size",
                "type" : "multilist",
                "field" : "device",
                "default" : false,
                "required" : false,
                "variant" : [ 
                    {
                        "label" : "S",
                        "value" : "S"
                    }, 
                    {
                        "label" : "M",
                        "value" : "M"
                    }, 
                    {
                        "label" : "L",
                        "value" : "L"
                    }, 
                    {
                        "label" : "XL",
                        "value" : "XL"
                    }
                ]
            }, 
            {
                "label" : "Marketing Channel",
                "type" : "multilist",
                "field" : "marketingchannel",
                "default" : false,
                "required" : false,
                "variant" : [ 
                    {
                        "label" : "SEA",
                        "value" : "SEA"
                    }, 
                    {
                        "label" : "SEO",
                        "value" : "SEO"
                    }
                ]
            }
        ]
    }
}

Third party licence

otto-pathfinder's People

Contributors

mariohienen avatar mistereo avatar otto-pathfinder avatar tomdick avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.