Comparing Event Sequences aka Google Analytics Behavior Flow - algorithm

I have a series of events stored as JSON in text files. These events represents actions carried out by users on a website - page view, item click, auto-complete etc. What I would like to do is find common journeys through my website - like the "Behavior Flow" tab in google analytics:
I would like to know if there are any standard tools or algorithms or techniques that are useful in producing this functionality. I am currently using Apache Spark, so my preference is for solutions compatible with that.
I can easily build this myself, but my intention is to learn about common best-practices (if any).

Related

What are good analytic tools for Xamarin Forms?

I am looking for a way to track the navigation process of my users, as well as the number of clicks/user for each view, average screen time per/day/user, and so on.
I know I can do this programmatically but it doesn't seem like the ideal solution.
Is there any software that covers all of this?
Visual Studio App Center provides multiple useful tools. It offers real-time diagnostic data, tracking of usage patterns, user adoption and a lot more engagement metrics with App Center Analytics. You can even use custom events to get the exact user behaviors you are looking for.
I've been using it for a while and so far i'm satisfied.
AppCenter is the easiest to integrate with, it also allows you to export the data to ApplicationInsights on azure to do more with that data. There are some other options like Google Analytics (You have to install nugets on platform projects and implement them separately). You also have segment If you are interested.

Language to Create User-Friendly Web Applications

I wish to create web application for users. So far, I have been developing mock-ups on PowerPoint.
I've asked around and I've been told to study HTML, Javascript, CSS. The books I find from https://www.allitebooks.in/ are for super-beginners, i.e. how to write "hello world", how to use css to select font and color.
Then I saw that Duolingo wrote it's website in Scala. To me, Duolingo is a user-friendly, easy-to-use website that allows user interactions to type, drag-and-drop.
But can Scala be useful?
Right now, I am looking to create a web application that takes user input and dynamically updates webpages. The web application is mostly graphics (I'm more of a visual person)
Also, user should be able to drag and drop things. For instance, if there is a bowl of fruit, how to allow users to type in description, and drag it where they wish?
One more thing. If user decides to save data, it should be saved on the cloud (user has account, but they don't have to download software).
Application is free for individual users, but huge organizations need to pay nominal fee.
A website being user-friendly doesn't have anything to do with what language it was built with. A good design is what makes a website more appealing and as you said user-friendly. Designs are typically made in softwares like Photoshop, Sketch,Xd... Now once you have a design you like, comes the web dev part of building a website. Typically this is split into two parts:
Frontend : Here you implement the design using HTML, CSS and JS. There are no alternatives as browsers only understand these languages. HTML is used to create the structure of the design. CSS is used to style the different elements. JS is a programming language used to make pages more dynamic.
Backend: Here we deal with tasks than need to be tackled on the server i.e Login, singup,send email etc. Now because a server can be thought of just being a computer,you can technically use any language that has capabilities to make http requests. Here Scala can be used. Typical languages include PHP, Python, NodeJS etc.
I kept this brief and didn't want to go in much detail, just to paint a picture of what is used for which purpose. I recommend before thinking about building a website like duolingo, to take some kind of course that explains in detail how websites are built.

Extjs 4 Calendar how to implement

I would like to implement an Calendar using Extjs 4 (4.1.3), that permits to me keeps dates, with ajax tecnology, from database. I would like that clicking on cell makes appear an editor that permits to me to modify the caratteristic of that date on database and so on.
P.s. : I have tanke a look to that site, http://docs.sencha.com/ext-js/4-1/#!/example/calendar/index.html, but i really don't know how to its works and to download the code. BUt it is so difficult to implement that i need?
Tanx.
The example uses the Extensible Calendar. It is fairly easy to work with, they include examples and documentation in the download. They even have a "remote" example that shows a simple example of your scenario.
With that said, it is not free if you are using it in a commercial application (just like ExtJS). An individual developer license is $199 ($329 with support).

Google analytics-style custom report builder UI

I'm looking for a reporting engine/UI that can be integrated into a product, which has a UI along the lines of Google Analytics' Custom Reports builder. Is anyone aware of such a thing?
The data is in our case is not page views/visitors/etc, but is similar in nature, in that there are limited entities or types of data, but each entity has many attributes/columns and many different ways of aggregating data (or in GA-style speak, metrics and dimensions).
The analytics-style UI is very intuitive and allows many reports to be created in powerful ways, without having to know SQL.
I have preference for a web-based tool (seeing that it is 2010 and this is a web app -- I mention only because it seems the vast majority of reporting tools still have only a non-web-based creation tool).
Example UI screenshot:
alt text http://gregmaclellan.com/analytics-custom-search.png
you can drag metrics from the sidebar into the dotted rectangles - these become the columns (and determine the underlying entities used for the data)
You can select dimensions to add grouping
Have a look at myDBR, a web-based reporting solution that is easy to install and allows you to create reports within minutes.
myDBR also features a report wizard and query builder that allows you to build reports without extensive SQL knowledge.
Cacti is similar to Google Analytics but its more powerful as it also gives the administrators insight into resource consumption.
While not quite as elegant, Report Builder 1.0 coupled with a model of the datast can possibly provide a solution. The table/data structure can be defined in the model to provide drag and drop placement of columns into a grid (one example - it does charts also), and you could define the Dimensions via the use of Filters. Best part is it is free and comes with MS SQL. More info on Report Builder

Content/Document/Project Management System - Which is right for my needs?

So I just started an internship with this nonprofit company and it's pretty cool. My first assignment was to find a type of program that would work well for the company and its users. I and some team members just finished summarizing down what I think is a good list for the needed functionality. Before I started working, I've never even heard of content/document/knowledge/project management systems. So I've done a bit of research on many other programs and I've narrowed it down to Joomla, activeCollab, Basecamp, sharepoint and a few more. Which program out there would fit my needs the best? It doesn't have to be from the list I just wrote, those are just the programs that popped up first when I started searching.
MUST-HAVE CAPABILITIES
Searchable
Keyword search
Advanced search: Ability to tag & search documents by different categories, for example, type of file (e.g. PDF, Word, etc.), service line (e.g., fundraising, strategy, etc.), type of document (e.g., deliverable, data set, etc.)
In-document search
Categorization
Simple navigation to browse all content
Simple to set up and modify the tree/hierarchy used to browse content
Workrooms
Provide each team a separate workroom to post their own documents
Easy to navigate from team workrooms to the Toolkits (best if team workrooms reside in the same system the toolkits reside)
Version Control
Ability to see which is the most recent file
Security
Password protected
Tiered security, i.e. certain permissions for certain users (to create workrooms, change navigation tree, change toolkits, view/post team files, etc.)
Multi-year support
Easy to “archive” old workrooms or files so the navigation doesn’t become cluttered over time
Share across workgroups
Ability for power users to access multiple team workrooms
Ability to send docs from one group to another—or to the toolkits (by simple tagging or simple “submit” feature)
Uploading
Ability to upload files to workrooms
Ability to submit a new file for consideration for a toolkit (not a file currently in any workroom)
OPTIONAL CAPABILITIES
Messaging
Opt-in notification of uploaded files or changes to existing files
Version Control
Ability to see who has the file checked out
External Access
Client access to certain documents
Within our website
Users gain access from our website
It looks like it resides on our website
Collaboration Tools
Team Calendar
Blog / Forum
Instant Chat
WebEx/Remote Presentation (for virtual team meeting)
Ratings
1-5 Star document rating (by user community)
Searching & Sorting documents by rating (best documents display first in search results)
Simultaneous Edit
Multiple people can edit the same document at same time
Workflow
Ability to tag a file to be reviewed by another user (ability to “escalate” a file for review by someone else)
Messaging alerts when a file has been flagged for a user
Most of the features that you mentioned above are available for free using Plone, which is an application that runs on top of Zope. I actually built and deployed an instance of Plone for a non-prof that had a lot of the features that mentioned above. They features might not have had the same names, but you get a lot of the same functionality.
Here's what my users really liked about Plone:
The ability to index the content of MS Office documents, so that people could search for documents based on content in addition to property and tags/keywords.
Usability. The default theme for Plone isn't the flashiest thing that you will ever see, but it's usability is excellent.
How easy it was the change the system and add new sites or functionality.
Here's what I liked about Plone:
Zero licensing costs. I was able to implement features that usually only come in very expensive systems for free. And I'm aware of these types of costs, because I administer FileNet systems for a living
It was very easy to install, upgrade, and administer. Please take that "pro" with a grain of salt if you're not a professional systems administrator :)
Overall, it was just very easy to work with.
And here are my cons:
If you need the web site to be accessible on the public internet, then your hosting costs may be higher-than-expected. It's definitely cheaper to set up a vanilla Joomla site than it is to set up a vanilla Plone site. Please note that you sound like you need a lot more than a vanilla content management system, so their may be no difference in hosting costs.
Plone is built on Zope, and Zope is an application server. It's easy to set up and use, but it works a little differently than a lot of other web and application servers. If you're used to administering a LAMP stack, then this will be different (but not necessarily bad).
One final con is true with all modern content management systems: don't give your users enough rope to hang themselves. When it take 2 minutes to a wiki and a blog to a web site, then users expect you to add new sites all of the time. Every new site adds a lot of administrative work to your plate, so try and get as much functionality as you can from each site that you add.
Hope that helps!
Tom Purl
Basecamp. Even if it doesn't have all the features you think you need, it does what it is supposed to (37Signals loves to rant about too many features, you aren't gonna need it (YAGNI), etc.)
Joomla is a pain. Activecollab is a poor clone of basecamp (unless it has changed drastically in the year or so that its been since I tried to use it to get out of paying for basecamp).

Resources