Giter Site home page Giter Site logo

application-analytics's People

Contributors

farcasut avatar mflorea avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

farcasut

application-analytics's Issues

Create class structure

In this task, I want to create the general structure of the app, including the AnalyticsDashboard class, the sheet and the template, the Default Dashboard, and the homepage where you can view all the dashboards that exist on your wiki.

Create Visits overview macro

This should be an equivalent of the Visitors -> Overview Matomo widget.
image

The chart displayed on top is based on the option selected from below. Out of the ones displayed in the above screenshot, the following should be implemented:

  1. unique visitors
  2. average visit duration
  3. bounce rate
  4. actions per visi

Create the Locations macro

This should add an equivalent for 2 Matomo widgets:

  1. visits per country from Visitors -> Locations -> Country
    image

  2. browser language from Visitors -> Locations -> Browser language
    image

Improve the dashboard UX

As a usecase, a user accesses the dashboard and he can set the date filter for the complete page, and all macros are update (with the filter being saved in the URL). Now, there are times when some users may want to see some statistics of a specific macro for a different time range than the one set on the dashboard. For this, each macro will have a visible individual page where specific date filtering can be done (also saved in the URL). This page will be accessible as a link from each macro added on the dashboard.

It would help to also have the possibility to see a short description for each macro, similar to what Matomo does
image

Clean up code

Add the analytics_prefix to all the macros and modfied 1 to 0 because all the macros genereate livedatas

Software/Devices Macro

This task involves creating the macros that can be found in the software and devices tab in Matomo.
image
image

Creating the configs for tracking and using the matomo API

"In this task, essential configurations are incorporated to utilize Matomo's tracking capabilities and the Matomo API. To enable tracking, a field for the JavaScript code provided by Matomo is included. For the API, an auth_token and a site ID are needed to request information.

Modify the main page of the application

Having the main page of the application as a livetable, with its entries being the dashboards, was not helpful for users. The common expectation is to have direct access to a dashboard with date filtering capabilities and most of the macros, so requiring an extra click to get to it is not intuitive. This would also align with what Matomo offers.
Therefore, the main page of the application should be changed to a dashboard from the dashboard application, with a date filtering option at the top of the page, similar to a Matomo dashboard. The users will be able to edit the dashboard by adding or removing macros.

Site Search Keywords

This task involves creating a macro that displays the site search keywords in xwiki, along with various statistics such as searches, search results pages, search exits

Matomo Preview:
image

Search Categories

This task involves creating a macro that displays the search categories in xwiki, along with various statistics such as searches, search results pages, search exits

Pages Following a Site Search Macro

This task involves creating a macro that displays the pages following a site search in xwiki, along with various statistics clicked in search results, pageviews | avg. page load time

Matomo Preview:
image

Add more options for the Row evolution chart

This feature has been added as part of #15
It has the options to update the chart based on number of pageviews, unique pageviews, and average time per page.
It should also add options for bounce rate per page and exit rate per page
image

Create the Returning visits over time macro

This should be an equivalent of the Behaviour -> Engagement -> Returning visits over time Matomo widget.
image
The chart displayed on top is based on the option selected from below. Out of the ones displayed in the above screenshot, only returning visits over time should be implemented

Improve analytics macros livedata UI

Since the analytics macros are used inside a dashboard, it would be helpful to not have them take too much space. Usually, the information displayed inside the macros are numbers that do not take up to much space. So the column title is the one giving the size of it. For this, the column titles should be brief and comprehensive.
Since this could make columns less intuitive, a description should be added for each of them, so when hovering the title more info will be displayed. This info could be taken from Matomo

Other improvements that could be done the macros UI, is to update the current view of the seconds column in order to display a more human friendly value (using the D:HH:MM:SS format)
Also, the decimal numbers should be rounded to 2 decimals

The Config Check isn't working.

Steps to reproduce:

  1. Navigate to the 'Administration' tab in the application.
  2. Enter the details of your Matomo instance.
  3. Click 'Save'.

Expected results:
The user should receive a notification indicating whether the configuration is correct or not.

Actual results:
The notification consistently states that the user's configuration is incorrect.

Investigation:
The Config Check isn't working because the URL that I use for the Matomo segment is incorrect. The consequence of this is that the user will always receive the message: "Failed to connect to Matomo. Please check your configuration values." To fix this issue, I need to change pageUrl': window.location.href to $('#checkMatomoConnection').attr('src').

Move Most Viewed Pages Macro to livetable

I am planning to transition the Most Viewed Pages macro to Livetable. This decision is prompted by several problems with the current implementation, which uses ordinary HTML tables.
In the current setup, many features would require reimplementation. For instance, functions such as search, pagination, and sorting by column are not readily available and would need to be manually added. This not only creates extra work but also increases the likelihood of introducing errors and inconsistencies.
On the other hand, Livetable macro comes with these essential features built-in. This makes it a more efficient choice as it reduces the need for reinventing the wheel. By using Livetable, we can maintain these features without extra effort while also benefiting from its existing codebase's reliability and tested functionality.
In the future we will migrate towards livedata.
Current preview:
image

Most Viewed Page Macro

This task involves creating a macro that displays the most viewed pages in xwiki, along with various statistics such as unique pageviews, bounce rate, average time on page, exit rate, and average page load time.
image

Dashboard-filtering is not working

GetDate doesn't work properly on the main dashboard when the user enters the page for the first time, and because of this, the analytics macros don't display anything.

Translation not working

Steps to Reproduce:

  1. Install the Analytics Extension.
  2. Look at the application

Expected Result:
You should see the Analytics application tab with the correct translation.
Actual Result:
You see the Analytics application tab with missing translation.

Improve rights administration

The Analytics Application (PRO) should be visible only to administrators since it encompasses vital app statistics. Another key reason to limit visibility to administrators involves the usage of an auth_token in Matomo API requests for data access. If a user comes across this token, they could make requests to the Matomo API and access the data, potentially compromising the security and integrity of the information.

For this, the Analytics space will have the view right limited to admins only, so they have the possibility to add or remove specific users, depending on who they want to see the analytics info.
Each macro will check this rights in order to not be able to access sensitive info with a user without rights. This is needed since all macros are available for users, and someone might simply add an analytics one.
To not affect the gathering of data feature, the page that adds the tracking code will remain visible to all groups and guests users.

Create functional tests

Add functional tests to check the connection between Matomo and your instance, the administration section and to see if the Most Viewed Pages is registering user actions

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.