http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_docs/useralepyqt/api.md ---------------------------------------------------------------------- diff --git a/_docs/useralepyqt/api.md b/_docs/useralepyqt/api.md deleted file mode 100644 index 22b2e7a..0000000 --- a/_docs/useralepyqt/api.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: API Documentation -component: useralepyqt -priority: 11 ---- - -Apache UserALE.PyQt5 intercepts all application events by letting the developer install an event filter in their PyQt5 application to generate detailed user logs. Apache UserALE.PyQt5 does not capture system level logs or events generated by a non-user (a.k.a. system and signals sent between QObjects). - -### Apache UserALE.PyQt5 - -> -```python -class userale.ale.Ale(output='userale.log', user=None, -session=None, toolname=None, toolversion=None, -keylog=False, interval=5000, resolution=100, shutoff=[]) -``` - -> **Bases:** PyQt5.QtCore.QObject - -> **Parameters:** -- output â [str] The file or url path to which logs will be sent -- user â [str] Identifier for the user of the application -- session â [str] Session tag to track same user with multiple sessions. If a session is not provided, one will be created -- toolname â [str] The application name -- toolversion â [str] The application version -- keylog â [bool] Should detailed key logs be recorded. Default is False -- interval â [int] The minimum time interval in ms between batch transmission of logs. Default is 5000ms. -- resolution â [int] Delay in ms between instances of high frequency logs like mousemoves, scrolls, etc. Default is 100ms (10Hz). -- shutoff â [list] Turn off logging for specific events - -An example log will appear like this: - - ```javascript - { - 'target': 'testLineEdit', - 'path': ['Example', 'testLineEdit'], - 'clientTime': '2016-08-03 16:12:03.460573', - 'location': {'x': 82, 'y': 0}, - 'type': 'mousemove', - 'userAction': 'true', - 'details' : {}, - 'userId': 'userABC1234', - 'session': '5ee42ccc-852c-44d9-a937-28d7901e4ead', - 'toolName': 'myApplication', - 'toolVersion': '3.5.0', - 'useraleVersion': '0.1.0' - } - ``` - -#### aggregate() -Sample high frequency logs at self.resolution. High frequency logs are consolidated down to a single log event to be emitted later - -#### cleanup() -Clean up any dangling logs in self.logs or self.hlogs - -#### dump() -Write log data to file - -#### eventFilter(object, event) -Filters events for the watched widget. - -> **Parameters:** -- object â [QObject] The object being watched. -- event â [QEvent] The event triggered by a user action. - -> **Returns:** -- [bool] Propagate filter up if other objects needs to be handled - -#### getClientTime() -Capture the time the event was captured in milliseconds since the UNIX epoch (January 1, 1970 00:00:00 UTC) - -> **Returns:** -- [str] String representation of the time the event was captured. - -#### getLocation(event) -Grab the x and y position of the mouse cursor, relative to the widget that received the event. - -> **Parameters:** -- event â [QEvent] The base class for all event classes. - -> **Returns:** -- [dict] A dictionary representation of the x and y positions of the mouse cursor. - -#### getPath(object) -Generate the entire object hierachy from root to leaf node. - -> **Parameters:** -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [list] List of QObjects. - -#### getSelector(object) -Get target objectâs name (object defined by user or objectâs meta class name). - -> **Parameters:** -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [str] The Qt objectâs name - -#### getSender(object) -Fetch the QObject who triggered the event - -> **Parameters:** -- object â [QObject] The object being watched. - -> **Returns:** -- [QObject] The QObject - -#### handleDragEvents(event_type, event, object) -Returns the userale log representing all drag events. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [dict] A userale log describing a drag event. - -#### handleKeyEvents(event_type, event, object) -Returns the userale log representing all key events, including key name and key code. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [dict] A userale log describing a key event. - -#### handleMouseEvents(event_type, event, object) -Returns the userale log representing all mouse event data. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [dict] A userale log describing a mouse event. - -#### handleMoveEvents(event_type, event, object) -Returns the userale log representing all move events. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [dict] A userale log describing a drag event. - -#### handleResizeEvents(event_type, event, object) -Returns the userale log representing all resize events. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. -**Returns:** -- [dict] A userale log describing a resize event. - -#### handleScrollEvents(event_type, event, object) -Returns the userale log representing all scroll events. - -> **Parameters:** -- event_type â [str] The string representation of the type of event being triggered by the user. -- event â [QEvent] The base class for all event classes. -- object â [QObject] The base class for all Qt objects. - -> **Returns:** -- [dict] A userale log describing a scroll event. - -#### timerEvent(event) -Routinely dump data to file or send over the network - -> **Parameters:** -- object â [list] List of events - -> **Returns:** -- [void] Emit events to file
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_docs/useralepyqt/changelog.md ---------------------------------------------------------------------- diff --git a/_docs/useralepyqt/changelog.md b/_docs/useralepyqt/changelog.md deleted file mode 100644 index 6ca3556..0000000 --- a/_docs/useralepyqt/changelog.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Changelog -component: useralepyqt -priority: 99 ---- - -### 0.1.5 (2016-09-19) - -- clientTime field is represented in ISO 8601 format. -- Sampling mouseenter, mouseleave, and dragmove events by resolution parameter. -- Batch dumping all logs to file by interval parameter. -- Added Apache license headers. -- Updated all documentation. -- Updated versioning numbers. -- Added docker support. - -### 0.1.4 (2016-08-04) - -- New events Apache UserAle is tracking: - - move - - resize - - scroll -- Remove timer from dragdrop log due to incorrect time being recorded. -- Session id is autogenerated if not passed into configuration. - -### 0.1.3 (2016-08-02) - -- New events Apache UserAle is tracking: - - mouseenter - - mouseleave - -### 0.1.2 (2016-08-01) - -- The elapsed time for a drag event is being recorded in the dragdrop log. - -### 0.1.1 (2016-07-29) - -- All logs will be stored to file called userale.log (configurable). -- Users can specify which events to capture by passing in a list of event keys when instantiating Apache UserAle. -- These are the events Apache UserAle is tracking: - - mouseup - - mousedown - - mousemove - - keypress (optional) - - keydown (optional) - - dragenter - - dragleave - - dragmove - - dragdrop - -### 0.1.0 (2016-06-24) - -- Initial release. http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_docs/useralepyqt/index.md ---------------------------------------------------------------------- diff --git a/_docs/useralepyqt/index.md b/_docs/useralepyqt/index.md deleted file mode 100644 index 7443ecf..0000000 --- a/_docs/useralepyqt/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Installation -component: useralepyqt -permalink: /docs/useralepyqt/ -priority: 0 ---- - -Apache UserALE.PyQt5 is the UserALE client for PyQt5 applications. It provides an easy way to generate highly detailed log streams from any PyQt5 application. - -### Requirements - -- Python 3.5 or above -- PyQt5, version 5.3 or above -- pip3, see requirements.txt - -### Installing UserALE.PyQt5 - -The first step is to install Apache UserALE.PyQt5. First, checkout the latest version of Apache UserALE.PyQt5 from our Git repository. - - ```shell - $ git clone https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git - ``` - -Apache UserALE.PyQt5 is a python3 project, so it can be installed like any other python library. Several operating systems (Mac OS X, Major Versions of Linux/BSD) have Python3 pre-installed, so you should just have to run - - ```shell - $ easy_install3 userale - ``` - - or - - ```shell - $ pip3 install userale - ``` - -Users are strongly recommended to install Apache UserALE.PyQt5 in a virtualenv. Instructions to setup an virtual environment will be explained below. - -> **Note** -> Apache UserALE.PyQt5 requires that PyQt5 and the Qt5 bindings has been installed. Instructions to install PyQt5 and Qt5 in a virtual environment will be left to the user. - -> **Note** -> When the package is installed via easy_install3 or pip3 this function will be bound to the userale executable in the Python installationâs bin directory (on Windows - the Scripts directory). - -### Installing Apache UserALE.PyQt5 in an Virtual Environment - -There are multiple ways to create virtual environments for a Python3 application. virtualenv is a one of those tools to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the packages that the UserAle project would need. - -Start by changing directory into the root of Apache UserALE.PyQt5âs project directory, and then use the virtualenv command-line tool to create a new environment: - - ```shell - $ virtualenv --python=/usr/bin/python3 env - ``` - -Optionally, Python3 has built in support for virtual environments. - - ```shell - $ mkdir env - $ python3 -m venv env - ``` - -Activate environment: - - ```shell - $ source env/bin/activate - ``` - -Install UserAle requirements: - - ```shell - $ env/bin/pip3 install -r requirements.txt - ``` - -To build the source code and run all unit tests. - - ```shell - $ env/bin/python3 setup.py develop test - ``` - -Deactivate environment - - ```shell - $ deactivate - ``` - -### Installing Documentation - -First, install the documentation dependencies: - - ```shell - $ env/bin/pip3 install -r doc_requirements.txt - ``` - -To build Apache UserALE.PyQt5âs documentation, create a directory at the root level of /userale.pyqt5 called userale.pyqt5-docs. - - ```shell - $ mkdir userale.pyqt5-docs & cd userale.pyqt5-docs - ``` - -Execute build command from inside the top-level doc/ directory: - - ```shell - $ make html - ``` - -This should build the documentation in your shell, and output HTML. At then end, it should say something about documents being ready in userale.pyqt5-docs/html. - -You can now open them in your browser by typing - - ```shell - $ open userale.pyqt5-docs/html/index.html - ``` http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_docs/useralepyqt/start.md ---------------------------------------------------------------------- diff --git a/_docs/useralepyqt/start.md b/_docs/useralepyqt/start.md deleted file mode 100644 index e268f2f..0000000 --- a/_docs/useralepyqt/start.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Getting Started -component: useralepyqt -priority: 1 ---- - -### Instrumenting Your Application Globally with Apache UserALE.PyQt5 - -Itâs very simple to instrument a PyQt5 application with Apache UserALE.PyQt5. Simply import the Apache UserALE.PyQt5 library and register it with your application. - -Below is an example PyQt5 application taken from ZetCode PyQt5 tutorial instrumented with Apache UserALE.PyQt5. - - ```python - import sys - from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QApplication, QMessageBox - from PyQt5.QtCore import QCoreApplication, QObject, QEvent - - from userale.ale import Ale - - class TestApplication (QWidget): - - def __init__(self): - super().__init__() - self.initUI() - - def initUI(self): - qbtn = QPushButton('Quit', self) - qbtn.setObjectName ("testApplicationButton") - qbtn.clicked.connect(QCoreApplication.instance().quit) - qbtn.resize(qbtn.sizeHint()) - qbtn.move(50, 50) - - self.setGeometry(300, 300, 250, 150) - self.setWindowTitle('Quit button') - self.show() - - if __name__ == '__main__': - app = QApplication(sys.argv) - ex = TestApplication() - # Initiate Apache UserALE.PyQt5 - ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1") - # install globally - app.installEventFilter (ale) - - sys.exit (app.exec_()) - ``` - -Before we enter the mainloop of the application, UserAle needs to register the application to be instrumented. Simply instantiate Apache UserALE.PyQt5 and install it as an event filter in your application. - - ```python - # Initiate UserAle - ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1") - # install globally - app.installEventFilter (ale) - ``` - -### Instrumenting Your Application Manually with Apache UserALE.PyQt5 - -*Todo:* Write guidelines for instrumenting specific PyQt5 Widgets with Apache UserALE.PyQt5. http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/doc_sidebar.html ---------------------------------------------------------------------- diff --git a/_includes/doc_sidebar.html b/_includes/doc_sidebar.html deleted file mode 100644 index 96ad98c..0000000 --- a/_includes/doc_sidebar.html +++ /dev/null @@ -1,174 +0,0 @@ -{% assign senssoft = site.docs | where:"component", "senssoft" | sort: "priority" %} -{% assign system = site.docs | where:"component", "system" | sort: "priority" %} -{% assign userale = site.docs | where:"component", "userale" | sort: "priority" %} -{% assign useralejs = site.docs | where:"component", "useralejs" | sort: "priority" %} -{% assign useralepyqt = site.docs | where:"component", "useralepyqt" | sort: "priority" %} -{% assign distill = site.docs | where:"component", "distill" | sort: "priority" %} -{% assign tap = site.docs | where:"component", "tap" | sort: "priority" %} -{% assign stout = site.docs | where:"component", "stout" | sort: "priority" %} - -<!-- <div class="ui inverted list"> - <a class="item" href="{{ '/docs' | prepend: site.baseurl }}">About the Docs</a> -</div> --> -<div id="docs-nav" class="ui inverted accordion"> - {% if page.component == "senssoft" %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - Apache SensSoft - </div> - {% if page.component == "senssoft" %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in senssoft %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - - {% if page.component == 'system' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - System - </div> - {% if page.component == 'system' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in system %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'userale' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - UserALE - </div> - {% if page.component == 'userale' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in userale %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'useralejs' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - UserALE.js - </div> - {% if page.component == 'useralejs' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in useralejs %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'useralepyqt' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - UserALE.pyqt - </div> - {% if page.component == 'useralepyqt' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in useralepyqt %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'distill' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - Distill - </div> - {% if page.component == 'distill' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in distill %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'tap' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - Tap - </div> - {% if page.component == 'tap' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in tap %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> - - {% if page.component == 'stout' %} - <div class="active title"> - {% else %} - <div class="title"> - {% endif %} - <i class="dropdown icon"></i> - Stout - </div> - {% if page.component == 'stout' %} - <div class="active content"> - {% else %} - <div class="content"> - {% endif %} - <div class="ui inverted bulleted list docs-list"> - {% for doc in stout %} - <a class="item" href="{{ doc.url }}">{{ doc.title }}</a> - {% endfor %} - </div> - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/footer.html ---------------------------------------------------------------------- diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 43ad6df..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,60 +0,0 @@ -<div class="footer ui inverted very padded vertical segment"> - <div class="ui vertical segment"> - <div class="ui four column grid"> - <div class="column"> - <h4 class="ui inverted header">About</h4> - <div class="ui inverted link list"> - <a class="item" href="{{ '/system' | prepend: site.baseurl }}">System</a> - <a class="item" href="{{ '/userale' | prepend: site.baseurl }}">UserALE</a> - <a class="item" href="{{ '/distill' | prepend: site.baseurl }}">Distill</a> - <a class="item" href="{{ '/tap' | prepend: site.baseurl }}">Tap</a> - <a class="item" href="{{ '/stout' | prepend: site.baseurl }}">Stout</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Docs</h4> - <div class="ui inverted link list"> - <a class="item" href="{{ '/docs/system' | prepend: site.baseurl }}">System</a> - <a class="item" href="{{ '/docs/userale' | prepend: site.baseurl }}">UserALE</a> - <a class="item" href="{{ '/docs/useralejs' | prepend: site.baseurl }}">UserAle.js</a> - <a class="item" href="{{ '/docs/useralepyqt' | prepend: site.baseurl }}">UserAle.pyqt</a> - <a class="item" href="{{ '/docs/distill' | prepend: site.baseurl }}">Distill</a> - <a class="item" href="{{ '/docs/tap' | prepend: site.baseurl }}">Tap</a> - <a class="item" href="{{ '/docs/stout' | prepend: site.baseurl }}">Stout</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Community</h4> - <div class="ui inverted link list"> - <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a> - <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a> - <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> - <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a> - <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Apache</h4> - <div class="ui inverted link list"> - <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a> - <a class="item" href="http://www.apache.org/">Apache Software Foundation</a> - <a class="item" href="http://incubator.apache.org/">Apache Incubator</a> - <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a> - <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a> - </div> - </div> - </div> - </div> - <div class="ui inverted vertical segment"> - <div class="ui two column middle aligned grid"> - <div class="column"> - Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. - </div> - <div class="center aligned column"> - <img class="component-image" src="/images/incubator-logo-white.png"> - <br> - Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation. Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc. - </div> - </div> - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/head.html ---------------------------------------------------------------------- diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index dd9cef5..0000000 --- a/_includes/head.html +++ /dev/null @@ -1,22 +0,0 @@ -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title> - <meta name="description" content="{{ page.excerpt | default: site.description | strip_html | normalize_whitespace | truncate: 160 | escape }}"> - - <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css"> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> - <script src="/semantic/dist/semantic.min.js"></script> - <script src="https://d3js.org/d3.v4.min.js"></script> - <script src="/js/main.js"></script> - - <link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}"> - <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}"> - <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}"> - - {% if jekyll.environment == 'production' and site.google_analytics %} - {% include google-analytics.html %} - {% endif %} -</head> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/header.html ---------------------------------------------------------------------- diff --git a/_includes/header.html b/_includes/header.html deleted file mode 100644 index 4dd1104..0000000 --- a/_includes/header.html +++ /dev/null @@ -1,34 +0,0 @@ -<div class="site-header"> - <div id="main-menu" class="ui inverted padded fixed top borderless menu"> - <a class="site-title" href="{{ site.baseurl }}/"> - <h3 class="ui inverted header item">Apache SensSoft</h3> - </a> - - <div class="right menu"> - <div class="ui dropdown item"> - Components - <div class="menu"> - <a class="item" href="{{ '/system' | prepend: site.baseurl }}">System</a> - <a class="item" href="{{ '/userale' | prepend: site.baseurl }}">UserALE</a> - <a class="item" href="{{ '/distill' | prepend: site.baseurl }}">Distill</a> - <a class="item" href="{{ '/tap' | prepend: site.baseurl }}">Tap</a> - <a class="item" href="{{ '/stout' | prepend: site.baseurl }}">Stout</a> - </div> - </div> - <div class="ui dropdown item"> - <a href="{{ '/docs' | prepend: site.baseurl }}">Docs</a> - <div class="menu"> - <a class="item" href="{{ '/docs/system' | prepend: site.baseurl }}">System</a> - <a class="item" href="{{ '/docs/userale'| prepend: site.baseurl }}">UserALE</a> - <a class="item" href="{{ '/docs/useralejs'| prepend: site.baseurl }}">UserALE.js</a> - <a class="item" href="{{ '/docs/useralepyqt'| prepend: site.baseurl }}">UserALE.pyqt</a> - <a class="item" href="{{ '/docs/distill'| prepend: site.baseurl }}">Distill</a> - <a class="item" href="{{ '/docs/tap'| prepend: site.baseurl }}">Tap</a> - <a class="item" href="{{ '/docs/stout'| prepend: site.baseurl }}">Stout</a> - </div> - </div> - <a class="item" href="{{ '/releases' | prepend: site.baseurl }}">Releases</a> - <a class="item" href="{{ '/community' | prepend: site.baseurl }}">Community</a> - </div> - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/tapDemo.html ---------------------------------------------------------------------- diff --git a/_includes/tapDemo.html b/_includes/tapDemo.html deleted file mode 100644 index e387e56..0000000 --- a/_includes/tapDemo.html +++ /dev/null @@ -1,93 +0,0 @@ -<div class="ui {% if include.inverted %}inverted grey{% endif %} very padded vertical segment"> - <div class="ui center aligned text container"> - <h2 class="ui {% if include.inverted %}inverted{% endif %} header">The Bowie Plot</h2> - <p> - Tap uses the Bowie plot to present your users' micro-workflows and help you uncover insights into how your users interact with you apps. Start on the left, with the activity that starts the workflow, sized by the frequency of the activity. Next, the circles in the middle show the second activity in the workflow. The circles are downselected and sized by a graph metric to help uncover a particular type of insight. End on the right with the final activity of the workflow. - </p> - </div> - - <div class="ui container"> - <div class="ui padded grid"> - <div class="four wide middle aligned column"> - <div class="ui {% if include.inverted %}inverted{% endif %} form"> - <h3 class="ui {% if include.inverted %}inverted{% endif %} header">Graph Metrics</h3> - - <div class="grouped fields"> - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="metric" value="out_degree" checked></input> - <label>Out Degree</label> - </div> - </div> - - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="metric" value="in_degree"></input> - <label>In Degree</label> - </div> - </div> - - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="metric" value="betweenness_cent_dir_weighted"></input> - <label>Weighted Betweenness</label> - </div> - </div> - - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="metric" value="closeness_cent_dir_weighted"></input> - <label>Weighted Closeness</label> - </div> - </div> - - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="metric" value="closeness_cent_dir_unweighted"></input> - <label>Unweighted Closeness</label> - </div> - </div> - </div> - </div> - </div> - - <div class="twelve wide center aligned column"> - <div class="ui basic row segment"> - <div id="bowie"></div> - </div> - </div> - </div> - - <div id="metric-explanation" class="ui center aligned text container"></div> - </div> -</div> - -<script src="/js/bowiePlot.js"></script> -<script> - $(document).ready(function () { - // Metric explanations - var metricExplanations = { - 'out_degree': 'Out degree describes how often an activity was a source. How often did a micro-workflow start with this activity? This could indicate an entry point to your app or the start of a particularly common workflow.', - 'in_degree': 'In degree describes how often an activity was a sink. How often did a micro-workflow end with this activity? This could indicate a final confirmation, exit navigation, or a place the user got stuck.', - 'betweenness_cent_dir_weighted': 'Betweenness centrality describes how often an activity was passed through. This indicates a common intermediate activity, like a busy intersection of your app.', - 'closeness_cent_dir_weighted': 'Closeness centrality indicates how "close" an activity is to all others. A higher closeness indicates an activity that was involved in more workflows. Weighted closeness focuses on closeness to the most common activities, rather than to all equally.', - 'closeness_cent_dir_unweighted': 'Closeness centrality indicates how "close" an activity is to all others. A higher closeness indicates an activity that was involved in more workflows. Unweighted closeness focuses on closeness to all activities equally, regardless of how often each activity occurred.' - }; - - // Change metric - function changeMetric() { - var metric = $('input[name=metric]:checked').val(); - $('#metric-explanation').html(metricExplanations[metric]); - Bowie.update(metric); - } - - // Initialize radio buttons - $('.ui.radio.checkbox').checkbox({ - onChange: changeMetric - }); - - // Initialize - Bowie.create(); - changeMetric(); - }); -</script> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_includes/useralejsDemo.html ---------------------------------------------------------------------- diff --git a/_includes/useralejsDemo.html b/_includes/useralejsDemo.html deleted file mode 100644 index 5416b2e..0000000 --- a/_includes/useralejsDemo.html +++ /dev/null @@ -1,134 +0,0 @@ -<div class="ui {% if include.inverted %}inverted grey{% endif %} very padded vertical segment"> - <div class="ui center aligned text container"> - <h2 class="ui {% if include.inverted %}inverted{% endif %} header">UserALE.js</h2> - <p> - UserALE.js is the DOM/JavaScript client for UserALE. Every user activity is logged and sent to the UserALE backend for storage and analysis by Distill. - </p> - <div class="ui basic vertical segment"> - <div id="start-button" class="ui green button">Start Logging</div> - <div id="stop-button" class="ui red button">Pause Logging</div> - </div> - </div> - - <div class="ui container"> - <div class="ui equal height two column grid"> - <div class="center aligned column"> - <div class="ui basic row segment"> - <h4 class="ui dividing header">Buttons</h4> - <div class="ui blue button">Blue</div> - <div class="ui yellow button">Yellow</div> - <div class="ui green button">Green</div> - <div class="ui red button">Red</div> - </div> - - <div class="ui form"> - <h4 class="ui dividing header">Checkboxes</h4> - <div class="field"> - <div class="two fields"> - <div class="field"> - <input type="checkbox"> - <label>Checked!</label> - </div> - <div class="field"> - <div class="two fields"> - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="demo-checkbox"> - <label>Yes</label> - </div> - </div> - <div class="field"> - <div class="ui radio checkbox"> - <input type="radio" name="demo-checkbox"> - <label>No</label> - </div> - </div> - </div> - </div> - </div> - </div> - - <h4 class="ui dividing header">Inputs</h4> - <div class="field"> - <div class="two fields"> - <div class="field"> - <div class="ui labeled input"> - <div class="ui grey label">Text</div> - <input type="text"> - </div> - </div> - - <div class="field"> - <div id="demo-dropdown" class="ui fluid selection dropdown"> - <input type="hidden" name="senssoft-component"> - <i class="dropdown icon"></i> - <div class="default text">Select Component</div> - <div class="menu"> - <div class="item">UserALE</div> - <div class="item">Distill</div> - <div class="item">Tap</div> - <div class="item">Stout</div> - </div> - </div> - </div> - </div> - </div> - - <h4 class="ui dividing header">Maps</h4> - <div class="ui basic row segment"> - <div id="map-example"></div> - </div> - - - </div> - </div> - - <div id="log-feed" class="center aligned column"> - <div class="ui fluid row segment"> - - </div> - </div> - </div> - </div> -</div> - - -<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" /> -<script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script> -<script src="/js/userale-demo.min.js" data-url=""></script> - -<script> - $(document).ready(function () { - $('#demo-dropdown').dropdown(); - $('.ui.checkbox').checkbox(); - - $('#start-button').on('click', userale.start); - $('#stop-button').on('click', userale.stop); - userale.options({ - logCb: addLog, - noSend: true - }); - - var map = L.map('map-example').setView([42.3601, -71.0589], 13); - L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { - attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' - }).addTo(map); - - function addLog(log) { - var html = '<div class="log ui fluid row segment">' + JSON.stringify(log) + '</div>'; - $('#log-feed').prepend(html); - } - - function clearLogs() { - setTimeout(function () { - var $feed = $('#log-feed .log'); - if ($feed.length > 10) { - $feed.slice(9).remove(); - } - clearLogs(); - }, 1000); - } - - clearLogs(); - }); -</script> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_layouts/basic.html ---------------------------------------------------------------------- diff --git a/_layouts/basic.html b/_layouts/basic.html deleted file mode 100644 index cc0dc09..0000000 --- a/_layouts/basic.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: default ---- - -<div class="page-wrapper ui text container"> - <h1 class="ui header"> - {{ page.title }} - </h1> - <div class="page-content"> - {{ content }} - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_layouts/component.html ---------------------------------------------------------------------- diff --git a/_layouts/component.html b/_layouts/component.html deleted file mode 100644 index 06a8435..0000000 --- a/_layouts/component.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: default ---- - -{% if page.image %} - <div class="ui image-masthead masthead padded center aligned inverted vertical segment"> - <img class="component-image" src="{{ page.image }}"> - </div> -{% else %} - <div class="ui blank-masthead masthead padded center aligned inverted vertical segment"> - <h1 class="ui header">{{ page.title }}</h1> - <h2 class="ui header">{{ page.subtitle }}</h2> - </div> -{% endif %} - -<div class="ui very padded vertical segment"> - <div class="ui center aligned text container"> - <p> - {{ page.description }} - </p> - </div> -</div> - -<div class="ui inverted grey very padded vertical segment"> - <div class="ui center aligned text container"> - <h2 class="ui inverted header">Features</h2> - {% for feature in page.features %} - <div class="ui basic padded vertical segment"> - <div class="ui middle aligned two column grid"> - <div class="column"> - <i class="huge circular inverted {{ feature.color }} {{ feature.icon }} icon"></i> - </div> - <div class="column"> - <h3 class="ui inverted header">{{ feature.title }}</h3> - <div class="feature-description"> - {{ feature.description }} - </div> - </div> - </div> - </div> - {% endfor %} - </div> -</div> - -{{ content }} - -{% assign mod = page.contentCount | modulo: 2 %} -<div class="ui {% if mod == 1 %}inverted grey{% endif %} very padded vertical segment"> - <div class="ui center aligned text container"> - <h2 class="ui {% if mod == 1 %}inverted{% endif %} header"> - Ready to try {{ page.component }}? - </h2> - <a class="ui big blue button" href="{{ '/releases' | prepend: site.baseurl }}"> - Get the Release - </a> - <a class="ui big yellow button" href="{{ '/docs' | prepend: site.baseurl | append: page.permalink }}"> - Read the Docs - </a> - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_layouts/default.html ---------------------------------------------------------------------- diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 68e7a2b..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,18 +0,0 @@ -<!DOCTYPE html> -<html lang="{{ page.lang | default: site.lang | default: "en" }}"> - - {% include head.html %} - - <body> - - {% include header.html %} - - <div class="main-wrapper"> - {{ content }} - </div> - - {% include footer.html %} - - </body> - -</html> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_layouts/docs.html ---------------------------------------------------------------------- diff --git a/_layouts/docs.html b/_layouts/docs.html deleted file mode 100644 index dfd02d3..0000000 --- a/_layouts/docs.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default ---- - -<div class="docs-wrapper"> - <div class="docs-sidebar"> - {% include doc_sidebar.html %} - </div> - <div class="docs-content"> - <h2 class="ui header">{{ page.title }}</h2> - {{ content }} - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/community.html ---------------------------------------------------------------------- diff --git a/_pages/community.html b/_pages/community.html deleted file mode 100644 index c079016..0000000 --- a/_pages/community.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -layout: basic -permalink: /community/ -title: Community ---- - -<div class="ui vertical segment"> - <p> - The Apache SensSoft team happily welcomes contributors and supporters of our work. Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else! See our <a href="{{ '/docs/system/contributing' | prepend: site.baseurl }}">docs</a> for more information on submitting effective contributions and bug reports. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Mailing Lists</h2> - <h3 class="ui header"> - <i class="user icon"></i> - <div class="content">Users</div> - </h3> - <p> - For users of Apache SensSoft who want to keep up to date with new releases and community highlights. To subscribe, email <a href="mailto:user-subscr...@senssoft.incubator.apache.org">user-subscr...@senssoft.incubator.apache.org</a>. - </p> - <h3 class="ui header"> - <i class="code icon"></i> - <div class="content">Dev</div> - </h3> - <p> - For contributors to Apache SensSoft or those interested in ongoing design and development efforts. To subscribe, email <a href="mailto:dev-subscr...@senssoft.incubator.apache.org">dev-subscr...@senssoft.incubator.apache.org</a>. - </p> - <h3 class="ui header"> - <i class="upload icon"></i> - <div class="content">Commits</div> - </h3> - <p> - For emails-on-commit across all Apache SensSoft products. To subscribe, email <a href="mailto:commits-subscr...@senssoft.incubator.apache.org">commits-subscr...@senssoft.incubator.apache.org</a>. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Community Hubs</h2> - <h3 class="ui header"> - <i class="github icon"></i> - <div class="content">GitHub</div> - </h3> - <p> - <a href="https://github.com/apache?q=senssoft">Find our code on Github</a> to browse and contribute. - </p> - <h3 class="ui header"> - <i class="twitter icon"></i> - <div class="content">Twitter</div> - </h3> - <p> - <a href="https://twitter.com/apachesenssoft">Follow us on Twitter</a> to keep up to date on Apache SensSoft and related developments. - </p> - <h3 class="ui header"> - <i class="stack overflow icon"></i> - <div class="content">StackOverflow</div> - </h3> - <p> - Get your questions answered on <a href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>. - </p> - <h3 class="ui header"> - <i class="bug icon"></i> - <div class="content">Issues and Bugs</div> - </h3> - <p> - Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> for full information on current developments, bugs, etc. - </p> - <h3 class="ui header"> - <i class="sticky note icon"></i> - <div class="content">Wiki</div> - </h3> - <p> - See our <a href="https://cwiki.apache.org/confluence/display/SENSSOFT">wiki</a> for detailed information on project organization, roadmaps, etc. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Contributors</h2> - <p> - Thank you to all our contributors! Want to be added? Contribute and <a href="mailto:d...@senssoft.incubator.apache.org">contact us!</a> - </p> - <ul class="ui list"> - <li>Michelle Beard</li> - <li>Hugh Enxing</li> - <li>Kyle Finley</li> - <li>Robert Foley</li> - <li>Alex Ford</li> - <li>Clay Gimenez</li> - <li>Laura Mariano</li> - <li>Lewis John McGibbney</li> - <li>Joshua Poore</li> - <li>David Reed</li> - <li>Fei Sun</li> - <li>Dan Traviglia</li> - <li>Arthi Vezhavendan</li> - <li>Steve York</li> - </ul> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/distill.html ---------------------------------------------------------------------- diff --git a/_pages/distill.html b/_pages/distill.html deleted file mode 100644 index 3536e5c..0000000 --- a/_pages/distill.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: component -permalink: /distill/ -title: Distill -image: /images/distill_inverted.png -component: Distill - -description: Apache Distill is an analytics framework for handling and analyzing UserALE data. Distill allows you to focus on the data you want and model it. Distill empowers you to learn more from your data than any commercial service; use Distill's analytic libraries to generate statistics on how users interact with different elements of your application and also understand how users interact with your applications. Distill specializes in models of sequence and workflow so that you can understand how users experiment with your application and whether they interact with your application the way you expected. Distill is written in Python and built for scalable growth and customization. - -features: - - - icon: search - color: blue - title: Easy, efficient queries - description: Distill utilizes RESTful APIs to streamline making calls to your UserALE log database. - - - icon: object ungroup - color: yellow - title: Segment your data - description: Retrieve on the cases or fields that you want. - - - icon: line chart - color: red - title: Compute gross usage trends - description: Distill comes with built-in statistics libraries so that you can see how much your application is being used and which elements users rely on most. - - - icon: ordered list - color: green - title: Model workflow - description: Distill comes with built in graph libraries for studying how user behaviors are sequenced in time allowing you to explore models of how user behavior unfolds over time. - -contentCount: 0 ---- http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/releases.html ---------------------------------------------------------------------- diff --git a/_pages/releases.html b/_pages/releases.html deleted file mode 100644 index be95ba4..0000000 --- a/_pages/releases.html +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: basic -permalink: /releases/ -title: Releases ---- - -<p> - Apache SensSoft is currently preparing for its first full release. Stay tuned and sign up for our mailing lists to keep up to date! -</p> - -<a class="ui blue button" href="mailto:dev-subscr...@senssoft.incubator.apache.org"> - Dev List -</a> -<a class="ui yellow button" href="mailto:users-subscr...@senssoft.incubator.apache.org"> - User List -</a> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/stout.html ---------------------------------------------------------------------- diff --git a/_pages/stout.html b/_pages/stout.html deleted file mode 100644 index 3da7ea7..0000000 --- a/_pages/stout.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: component -permalink: /stout/ -title: Stout -image: /images/stout_inverted.png -component: Stout - -description: Apache STOUT (Subject Tracking and Online User Testing) is for UI/UX (and behavioral) researchers that want to perform formal user-testing studies and experiments with web applications. In STOUT, you'll be able to track participants through a series of URLs in a sequence that matches your experimental designâboth between and within-subject designs. STOUT makes sure that your participants are sent to the right URLs in the right sequence. You can also set timing parameters so that each task at different URLs are uniformly timed. Participants can also be given directed tasks paired with different URLs. Currently STOUT works well with SurveyMonkey, meaning you can design questionnaires for delivery before, during and after their experience at a given URL. STOUT tracks users with anonymous identifiers (hashes) that are passed to the URLs you send your participants to. These are generated during a registration step, which can also configured for human-subjects testing compl iant workflows. This hash is appended with a task ID and then passed to UserALE so that every log generated through web applications during your experiment is traceable to specific users and tasks. STOUT also has features for extracting data from SurveyMonkey and organizing all the data you collect through SurveyMonkey and STOUT throughout experiments, providing you with a simple and easy-to-use .csv file for analysis. Other scripts can be configured to run with STOUT and SurveyMongo for automated post-processing, scale-computation, and truthing. Additionally, STOUT will generate completion codes so that it is easy to use with Amazon Mechanical Turk, and features both an acheivement and email system so that you can communicate with and engage your participants. STOUT is built in Django so its easy to customize STOUT for your specific needs. - -features: - - - icon: lab - color: blue - title: Perform experiments - description: STOUT allows you to track users as they interact with different applications or different versions of the same applications in simple experimental designs. STOUT's Django back end allows you collect task sequence data and even randomize or counterbalance your experiments without losing track of what users are interacting with and when. - - - icon: database - color: yellow - title: Wrangle different data sources - description: STOUT allows you to track users between different sources of information using an anonymous user hash. Collect demographics and psychometrics from form data, present users with tasks and questions while they interact with applications, and collect user behavior through UserALE without losing track of who generated the data. - - - icon: cloud download - color: red - title: Fuse data for analysis - description: With the SurveyMongo extension to STOUT you can automate polling for survey data and integrate with STOUT metadata to provide tabular datasets that make statistical analysis easy. - - - icon: refresh - color: green - title: Automate data preprocessing - description: STOUT's architecture makes it easy to run batch processing scripts in R or python, server-side. Perform your truthing, aggregation, and data transformations automatically, triggered by flags in STOUT, so that you can get straight to analysis. - - - icon: bar chart - color: blue - title: Visualize experimental findings - description: STOUT features a dashboard so that you can effectively manage multiple experiments and visualize your results using D3 packages. - -contentCount: 0 ---- http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/system.html ---------------------------------------------------------------------- diff --git a/_pages/system.html b/_pages/system.html deleted file mode 100644 index cba0968..0000000 --- a/_pages/system.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: component -permalink: /system/ -title: The Apache SensSoft System -subtitle: Easy combined deployment with Docker -component: Apache SensSoft - -description: Apache SensSoft is a line of products that provides all the components needed for tracking, analyzing and visualizing user event data. Apache UserALE provides comprehensive user event tracking for web pages, but it is specially engineered for toolsâapplications users will use in their work. Apache Distill is an analytics framework for handling and analyzing UserALE data. Apache TAP provides you with a customizable array of interactive visual analytic libraries (D3) to extract insights from your usage data, and a single point of access for end users of the SensSoft system. Each component is available on their own through our Apache repositories. However, we have bundled these components into an easy-to-deploy, pre-configured Docker container so that you can begin to collect data as soon as possible. - -features: - - - icon: cloud - color: blue - title: Containerized - description: Deploy on your infrastructure or in the cloud quickly and easily with Docker. - - - icon: rocket - color: yellow - title: Ready to Go - description: No configuration or connections to make to get a basic setup up and running. - - - icon: settings - color: red - title: Customizable - description: Switch out or modify components for your use case. Integrate with your existing system. - -contentCount: 1 ---- - -<div class="ui very padded vertical segment"> - <div class="ui center aligned text container"> - <h2 class="ui header">What's Included?</h2> - <p> - The Apache SensSoft System includes a complete backend deployment of UserALE, Distill, and Tap. The different components are connected as seen below and ready to work together out of the box. UserALE clients will still need to be included in the target applications to push logs into the system. - </p> - <img class="segment-image" src="/images/system.png"> - </div> -</div> http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/tap.html ---------------------------------------------------------------------- diff --git a/_pages/tap.html b/_pages/tap.html deleted file mode 100644 index fad7ab8..0000000 --- a/_pages/tap.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: component -permalink: /tap/ -title: Tap -image: /images/tap_inverted.png -component: Tap - -description: Apache TAP (Test Application Portal) is a single point of entry into your SensSoft system. TAP features registration features served through Djangoâregister your application, organization, and yourself to control access to your applications' usage data and manage custom configurations in TAP. TAP also provides you with a customizable array of interactive visual analytic libraries to extract insights from your usage data. You'll have many of the features you've come to rely on from other productsâthrough TAP you can explore how users interact with each element of your application, and how they interacted with each of them. With TAP you'll also be able to visually compare usage between different segments of your user base and perform A/B usability testing between different versions of your applicationâyou'll have access to any data you collect on your users and statistics, metrics or modeling output that is built into Distill. TAP also provides you with beautiful cu stom D3 visualizations of your users' workflows in your application. See how they do work with your application and learn how your application design augments their workflow or prevents them from discovering other features. TAP comes with many "out-of-the-box" features for extracting insight from usage data, but it is designed for customization. - -features: - - - icon: users - color: blue - title: Understand your users - description: TAP allows you to visualize how you application is used by different sets of users based on their characteristics (e.g., geography, demographics). - - - icon: ordered list - color: yellow - title: Understand how your application is used - description: TAP comes with custom visualization for how your users interact with elements of your application in sequence revealing insights about how application design affects usage and efficiency. - - - icon: lock - color: red - title: Control access to your data (coming soon) - description: Control permissions for how your organization can access user data by setting permissions at the instutitional level down to access to data collected from specific applications. - -contentCount: 1 ---- - -{% include tapDemo.html inverted=false %} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_pages/userale.html ---------------------------------------------------------------------- diff --git a/_pages/userale.html b/_pages/userale.html deleted file mode 100644 index 6b4dd05..0000000 --- a/_pages/userale.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: component -permalink: /userale/ -title: UserAle -image: /images/userale_inverted.png -component: UserALE - -description: Apache UserALE (User Analytic Logging Engine) is the beating heart of Apache SensSoft technology. UserALE provides instrumentation for applications, turning them into human use sensors. UserALE provides comprehensive user event tracking for web pages, but it is specially engineered for toolsâapplications users will use in their work. UserALE will transmit specially structured messages from your application to an activity logging server whenever your users interact with it. Apply UserALE with a single line of code and capture every user interaction without having to separately manage tags on each feature of your application. UserALE works with Elastic and other open source databasesâyou own your data and you can access it for analysis and automation without restriction. UserALE.js serves Javascript applications. For desktop applications written in PyQt5 see UserALE.PyQt5. - -features: - - - icon: thumbs up - color: blue - title: Low-effort - description: Embed UserALE with a single script tag in source, or from your browser console for testing. - - - icon: settings - color: yellow - title: Customizable - description: UserALE provides options for custom, manual instrumentation. - - - icon: mouse pointer - color: red - title: Capture every event - description: And the document object model targets of those events, with resolution suitable for advanced behavioral analytics. - - - icon: database - color: green - title: Own your own data - description: UserALE utilizes Elastic as a scalable, searchable database for user event log storage. - - - icon: dashboard - color: blue - title: Low processing overhead - description: UserALE will not adversely affect your applications performance. - - - icon: protect - color: yellow - title: Never lose data - description: Temporary offline log storage safeguards from dropped signal due to connectivity issues. - -contentCount: 1 ---- - -{% include useralejsDemo.html inverted=false %} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_sass/_bowie.scss ---------------------------------------------------------------------- diff --git a/_sass/_bowie.scss b/_sass/_bowie.scss deleted file mode 100644 index f1ebb23..0000000 --- a/_sass/_bowie.scss +++ /dev/null @@ -1,13 +0,0 @@ -.tooltip { - position: absolute; - text-align: center; - font: 12px sans-serif; - min-width: 100px; - min-height: 24px; - padding: 4px; - pointer-events: none; - background-color: $white; - border-style: solid; - border-width: 1px; - border-color: $grey; -} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_sass/_highlighting.scss ---------------------------------------------------------------------- diff --git a/_sass/_highlighting.scss b/_sass/_highlighting.scss deleted file mode 100644 index 23a512a..0000000 --- a/_sass/_highlighting.scss +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Syntax highlighting styles - */ -.highlight { - .c { color: $grey; font-style: italic } // Comment - .err { color: $red } // Error - .k { font-weight: bold } // Keyword - .o { font-weight: bold } // Operator - .cm { color: $grey; font-style: italic } // Comment.Multiline - .cp { color: $grey; font-weight: bold } // Comment.Preproc - .c1 { color: $grey; font-style: italic } // Comment.Single - .cs { color: $grey; font-weight: bold; font-style: italic } // Comment.Special - .gd { color: $black } // Generic.Deleted - .gd .x { color: $black } // Generic.Deleted.Specific - .ge { font-style: italic } // Generic.Emph - .gr { color: $red } // Generic.Error - .gh { color: $grey } // Generic.Heading - .gi { color: $black } // Generic.Inserted - .gi .x { color: $black} // Generic.Inserted.Specific - .go { color: $grey } // Generic.Output - .gp { color: $grey } // Generic.Prompt - .gs { font-weight: bold } // Generic.Strong - .gu { color: $grey } // Generic.Subheading - .gt { color: $red } // Generic.Traceback - .kc { font-weight: bold } // Keyword.Constant - .kd { font-weight: bold } // Keyword.Declaration - .kp { font-weight: bold } // Keyword.Pseudo - .kr { font-weight: bold } // Keyword.Reserved - .kt { color: $teal; font-weight: bold } // Keyword.Type - .m { color: $blue } // Literal.Number - .s { color: $red } // Literal.String - .na { color: $teal } // Name.Attribute - .nb { color: $blue } // Name.Builtin - .nc { color: $blue; font-weight: bold } // Name.Class - .no { color: $teal } // Name.Constant - .ni { color: $purple } // Name.Entity - .ne { color: $red; font-weight: bold } // Name.Exception - .nf { color: $red; font-weight: bold } // Name.Function - .nn { color: $grey } // Name.Namespace - .nt { color: $blue } // Name.Tag - .nv { color: $teal } // Name.Variable - .ow { font-weight: bold } // Operator.Word - .w { color: $grey } // Text.Whitespace - .mf { color: $green } // Literal.Number.Float - .mh { color: $green } // Literal.Number.Hex - .mi { color: $green } // Literal.Number.Integer - .mo { color: $green } // Literal.Number.Oct - .sb { color: $red } // Literal.String.Backtick - .sc { color: $red } // Literal.String.Char - .sd { color: $red } // Literal.String.Doc - .s2 { color: $red } // Literal.String.Double - .se { color: $red } // Literal.String.Escape - .sh { color: $red } // Literal.String.Heredoc - .si { color: $red } // Literal.String.Interpol - .sx { color: $red } // Literal.String.Other - .sr { color: $green } // Literal.String.Regex - .s1 { color: $red } // Literal.String.Single - .ss { color: $purple } // Literal.String.Symbol - .bp { color: $grey } // Name.Builtin.Pseudo - .vc { color: $teal } // Name.Variable.Class - .vg { color: $teal } // Name.Variable.Global - .vi { color: $teal } // Name.Variable.Instance - .il { color: $green } // Literal.Number.Integer.Long -} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_sass/_senssoft.scss ---------------------------------------------------------------------- diff --git a/_sass/_senssoft.scss b/_sass/_senssoft.scss deleted file mode 100644 index 4b4dbc7..0000000 --- a/_sass/_senssoft.scss +++ /dev/null @@ -1,88 +0,0 @@ -body { - display: flex; - flex-direction: column; -} - -.site-header { - flex: 0 0; -} - -.main-wrapper { - flex: 1 0; - height: auto; - padding-top: 50px; -} - -.footer { - flex: 0 0; - width: 100%; - text-align: center; -} - -#main-menu { - height: 50px !important; -} - -.page-wrapper { - padding: 2em 0 2em 0; -} - -#main-masthead { - padding: 10em; - background-image: url("/images/header.svg"); - background-repeat: no-repeat; - background-position: center; -} - -.blank-masthead { - padding: 10em !important; -} - -.image-masthead { - padding: 6.8em !important; -} - -.docs-wrapper { - display: flex; -} - -.docs-sidebar { - flex: 1 0 180px; - padding: 2em; - background-color: $grey; - min-height: calc(100vh - 50px); -} - -.docs-content { - flex: 8; - padding: 2em; -} - -.docs-list { - margin-left: 3em !important; -} - -.docs-list > a.item:before { - color: $white !important; -} - -.component-image { - max-width: 100%; - max-height: 170px; -} - -.site-title { - white-space: nowrap; -} - -.segment-image { - max-width: 100%; -} - -.feature-description { - color: $white; -} - -.indented { - padding-left: 2em; -} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_sass/_userale.scss ---------------------------------------------------------------------- diff --git a/_sass/_userale.scss b/_sass/_userale.scss deleted file mode 100644 index 7ce19f2..0000000 --- a/_sass/_userale.scss +++ /dev/null @@ -1,14 +0,0 @@ -#log-feed { - height: 720px; - overflow-y: hidden; -} - -#map-example { - min-height: 300px; - width: 100%; - z-index: 0; -} - -#demo-dropdown>.default.text { - color: $grey !important; -} http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_site/assets/main.css ---------------------------------------------------------------------- diff --git a/_site/assets/main.css b/_site/assets/main.css deleted file mode 100644 index a6c448d..0000000 --- a/_site/assets/main.css +++ /dev/null @@ -1,226 +0,0 @@ -body { - display: flex; - flex-direction: column; } - -.site-header { - flex: 0 0; } - -.main-wrapper { - flex: 1 0; - height: auto; - padding-top: 50px; } - -.footer { - flex: 0 0; - width: 100%; - text-align: center; } - -#main-menu { - height: 50px !important; } - -.page-wrapper { - padding: 2em 0 2em 0; } - -#main-masthead { - padding: 10em; - background-image: url("/images/header.svg"); - background-repeat: no-repeat; - background-position: center; } - -.blank-masthead { - padding: 10em !important; } - -.image-masthead { - padding: 6.8em !important; } - -.docs-wrapper { - display: flex; } - -.docs-sidebar { - flex: 1 0 180px; - padding: 2em; - background-color: #54595B; - min-height: calc(100vh - 50px); } - -.docs-content { - flex: 8; - padding: 2em; } - -.docs-list { - margin-left: 3em !important; } - -.docs-list > a.item:before { - color: #EBEBEB !important; } - -.component-image { - max-width: 100%; - max-height: 170px; } - -.site-title { - white-space: nowrap; } - -.segment-image { - max-width: 100%; } - -.feature-description { - color: #EBEBEB; } - -.indented { - padding-left: 2em; } - -/** - * Syntax highlighting styles - */ -.highlight .c { - color: #54595B; - font-style: italic; } -.highlight .err { - color: #E24614; } -.highlight .k { - font-weight: bold; } -.highlight .o { - font-weight: bold; } -.highlight .cm { - color: #54595B; - font-style: italic; } -.highlight .cp { - color: #54595B; - font-weight: bold; } -.highlight .c1 { - color: #54595B; - font-style: italic; } -.highlight .cs { - color: #54595B; - font-weight: bold; - font-style: italic; } -.highlight .gd { - color: #262626; } -.highlight .gd .x { - color: #262626; } -.highlight .ge { - font-style: italic; } -.highlight .gr { - color: #E24614; } -.highlight .gh { - color: #54595B; } -.highlight .gi { - color: #262626; } -.highlight .gi .x { - color: #262626; } -.highlight .go { - color: #54595B; } -.highlight .gp { - color: #54595B; } -.highlight .gs { - font-weight: bold; } -.highlight .gu { - color: #54595B; } -.highlight .gt { - color: #E24614; } -.highlight .kc { - font-weight: bold; } -.highlight .kd { - font-weight: bold; } -.highlight .kp { - font-weight: bold; } -.highlight .kr { - font-weight: bold; } -.highlight .kt { - color: #283F4E; - font-weight: bold; } -.highlight .m { - color: #38A6D8; } -.highlight .s { - color: #E24614; } -.highlight .na { - color: #283F4E; } -.highlight .nb { - color: #38A6D8; } -.highlight .nc { - color: #38A6D8; - font-weight: bold; } -.highlight .no { - color: #283F4E; } -.highlight .ni { - color: #852EB7; } -.highlight .ne { - color: #E24614; - font-weight: bold; } -.highlight .nf { - color: #E24614; - font-weight: bold; } -.highlight .nn { - color: #54595B; } -.highlight .nt { - color: #38A6D8; } -.highlight .nv { - color: #283F4E; } -.highlight .ow { - font-weight: bold; } -.highlight .w { - color: #54595B; } -.highlight .mf { - color: #BFD02C; } -.highlight .mh { - color: #BFD02C; } -.highlight .mi { - color: #BFD02C; } -.highlight .mo { - color: #BFD02C; } -.highlight .sb { - color: #E24614; } -.highlight .sc { - color: #E24614; } -.highlight .sd { - color: #E24614; } -.highlight .s2 { - color: #E24614; } -.highlight .se { - color: #E24614; } -.highlight .sh { - color: #E24614; } -.highlight .si { - color: #E24614; } -.highlight .sx { - color: #E24614; } -.highlight .sr { - color: #BFD02C; } -.highlight .s1 { - color: #E24614; } -.highlight .ss { - color: #852EB7; } -.highlight .bp { - color: #54595B; } -.highlight .vc { - color: #283F4E; } -.highlight .vg { - color: #283F4E; } -.highlight .vi { - color: #283F4E; } -.highlight .il { - color: #BFD02C; } - -.tooltip { - position: absolute; - text-align: center; - font: 12px sans-serif; - min-width: 100px; - min-height: 24px; - padding: 4px; - pointer-events: none; - background-color: #EBEBEB; - border-style: solid; - border-width: 1px; - border-color: #54595B; } - -#log-feed { - height: 720px; - overflow-y: hidden; } - -#map-example { - min-height: 300px; - width: 100%; - z-index: 0; } - -#demo-dropdown > .default.text { - color: #54595B !important; } http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6a2b3459/_site/community/index.html ---------------------------------------------------------------------- diff --git a/_site/community/index.html b/_site/community/index.html deleted file mode 100644 index 1c1916a..0000000 --- a/_site/community/index.html +++ /dev/null @@ -1,232 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Community</title> - <meta name="description" content="The homepage for Apache SensSoft"> - - <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css"> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> - <script src="/semantic/dist/semantic.min.js"></script> - <script src="https://d3js.org/d3.v4.min.js"></script> - <script src="/js/main.js"></script> - - <link rel="stylesheet" href="/assets/main.css"> - <link rel="canonical" href="http://localhost:4000/community/"> - <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml"> - - -</head> - - - <body> - - <div class="site-header"> - <div id="main-menu" class="ui inverted padded fixed top borderless menu"> - <a class="site-title" href="/"> - <h3 class="ui inverted header item">Apache SensSoft</h3> - </a> - - <div class="right menu"> - <div class="ui dropdown item"> - Components - <div class="menu"> - <a class="item" href="/system">System</a> - <a class="item" href="/userale">UserALE</a> - <a class="item" href="/distill">Distill</a> - <a class="item" href="/tap">Tap</a> - <a class="item" href="/stout">Stout</a> - </div> - </div> - <div class="ui dropdown item"> - <a href="/docs">Docs</a> - <div class="menu"> - <a class="item" href="/docs/system">System</a> - <a class="item" href="/docs/userale">UserALE</a> - <a class="item" href="/docs/useralejs">UserALE.js</a> - <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a> - <a class="item" href="/docs/distill">Distill</a> - <a class="item" href="/docs/tap">Tap</a> - <a class="item" href="/docs/stout">Stout</a> - </div> - </div> - <a class="item" href="/releases">Releases</a> - <a class="item" href="/community">Community</a> - </div> - </div> -</div> - - - <div class="main-wrapper"> - <div class="page-wrapper ui text container"> - <h1 class="ui header"> - Community - </h1> - <div class="page-content"> - <div class="ui vertical segment"> - <p> - The Apache SensSoft team happily welcomes contributors and supporters of our work. Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else! See our <a href="/docs/system/contributing">docs</a> for more information on submitting effective contributions and bug reports. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Mailing Lists</h2> - <h3 class="ui header"> - <i class="user icon"></i> - <div class="content">Users</div> - </h3> - <p> - For users of Apache SensSoft who want to keep up to date with new releases and community highlights. To subscribe, email <a href="mailto:user-subscr...@senssoft.incubator.apache.org">user-subscr...@senssoft.incubator.apache.org</a>. - </p> - <h3 class="ui header"> - <i class="code icon"></i> - <div class="content">Dev</div> - </h3> - <p> - For contributors to Apache SensSoft or those interested in ongoing design and development efforts. To subscribe, email <a href="mailto:dev-subscr...@senssoft.incubator.apache.org">dev-subscr...@senssoft.incubator.apache.org</a>. - </p> - <h3 class="ui header"> - <i class="upload icon"></i> - <div class="content">Commits</div> - </h3> - <p> - For emails-on-commit across all Apache SensSoft products. To subscribe, email <a href="mailto:commits-subscr...@senssoft.incubator.apache.org">commits-subscr...@senssoft.incubator.apache.org</a>. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Community Hubs</h2> - <h3 class="ui header"> - <i class="github icon"></i> - <div class="content">GitHub</div> - </h3> - <p> - <a href="https://github.com/apache?q=senssoft">Find our code on Github</a> to browse and contribute. - </p> - <h3 class="ui header"> - <i class="twitter icon"></i> - <div class="content">Twitter</div> - </h3> - <p> - <a href="https://twitter.com/apachesenssoft">Follow us on Twitter</a> to keep up to date on Apache SensSoft and related developments. - </p> - <h3 class="ui header"> - <i class="stack overflow icon"></i> - <div class="content">StackOverflow</div> - </h3> - <p> - Get your questions answered on <a href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>. - </p> - <h3 class="ui header"> - <i class="bug icon"></i> - <div class="content">Issues and Bugs</div> - </h3> - <p> - Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> for full information on current developments, bugs, etc. - </p> - <h3 class="ui header"> - <i class="sticky note icon"></i> - <div class="content">Wiki</div> - </h3> - <p> - See our <a href="https://cwiki.apache.org/confluence/display/SENSSOFT">wiki</a> for detailed information on project organization, roadmaps, etc. - </p> -</div> - -<div class="ui vertical segment"> - <h2 class="ui header">Contributors</h2> - <p> - Thank you to all our contributors! Want to be added? Contribute and <a href="mailto:d...@senssoft.incubator.apache.org">contact us!</a> - </p> - <ul class="ui list"> - <li>Michelle Beard</li> - <li>Hugh Enxing</li> - <li>Kyle Finley</li> - <li>Robert Foley</li> - <li>Alex Ford</li> - <li>Clay Gimenez</li> - <li>Laura Mariano</li> - <li>Lewis John McGibbney</li> - <li>Joshua Poore</li> - <li>David Reed</li> - <li>Fei Sun</li> - <li>Dan Traviglia</li> - <li>Arthi Vezhavendan</li> - <li>Steve York</li> - </ul> -</div> - - </div> -</div> - - </div> - - <div class="footer ui inverted very padded vertical segment"> - <div class="ui vertical segment"> - <div class="ui four column grid"> - <div class="column"> - <h4 class="ui inverted header">About</h4> - <div class="ui inverted link list"> - <a class="item" href="/system">System</a> - <a class="item" href="/userale">UserALE</a> - <a class="item" href="/distill">Distill</a> - <a class="item" href="/tap">Tap</a> - <a class="item" href="/stout">Stout</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Docs</h4> - <div class="ui inverted link list"> - <a class="item" href="/docs/system">System</a> - <a class="item" href="/docs/userale">UserALE</a> - <a class="item" href="/docs/useralejs">UserAle.js</a> - <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a> - <a class="item" href="/docs/distill">Distill</a> - <a class="item" href="/docs/tap">Tap</a> - <a class="item" href="/docs/stout">Stout</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Community</h4> - <div class="ui inverted link list"> - <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a> - <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a> - <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> - <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a> - <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a> - </div> - </div> - <div class="column"> - <h4 class="ui inverted header">Apache</h4> - <div class="ui inverted link list"> - <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a> - <a class="item" href="http://www.apache.org/">Apache Software Foundation</a> - <a class="item" href="http://incubator.apache.org/">Apache Incubator</a> - <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a> - <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a> - </div> - </div> - </div> - </div> - <div class="ui inverted vertical segment"> - <div class="ui two column middle aligned grid"> - <div class="column"> - Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. - </div> - <div class="center aligned column"> - <img class="component-image" src="/images/incubator-logo-white.png"> - <br> - Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation. Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc. - </div> - </div> - </div> -</div> - - - </body> - -</html>