borc / usaproxy-tools Goto Github PK
View Code? Open in Web Editor NEWTools for website usability analysis. Includes a fork of UsaProxy 2.0.
Tools for website usability analysis. Includes a fork of UsaProxy 2.0.
USAPROXY-TOOLS ============== Description: ------------ This project is a collection of website usability evaluation tools. See individual tools' readme files for further information. Parts: ------ USAPROXY-FORK - A proxy server that logs users' actions. Forked from UsaProxy 2.0. USAPROXYLOGPARSER - A tool that parses the log files generated by USAPROXY-FORK and provides an object-based API for analyzing the log. USAPROXYREPORTGENERATOR - A tool that turns USAPROXY-FORK log files into pretty HTML+JS reports. USAPROXYLOG2DB - A tool for reading UsaProxy-Fork log files into a database. Licensing: ---------- The tools are licensed under GNU GENERAL PUBLIC LICENSE, version 2 or later. See provided readme and license files for details.
There are no timezones in the log, and they are largely unnecessary. Handle all times as if they were in UTC.
UsaProxy seems to log localhost as the server name if it is in server mode and is proxying a local server. In these cases, it should log the URL provided in the HTTP request, if available.
In the element details dialog window there should be a link to the original image if the element is an image.
The file sender implementation allows users to fetch any file from the file system by pointing their browser to a fitting UsaProxy URL. Only allow to load files from the specified directories: css
, html
, img
, js
and plugins
. Also only allow to load files with specified extensions: css
, htm
, html
, gif
, jpg
, png
and js
.
Separate JPA persistent versions of log data model classes for use in relational databases.
Zooming the main plot erroneously zooms the plot in the details window as well. The details plot should always stay at the same zoom level.
Sometimes the proxy streams an incomplete document to the client. This seems to occur frequently with HTTPD-provided directory listings.
XML functionality should be a separate library
Random coloured circles appear when hovering over elements in the plot. They should always appear the same colour as the elements themselves.
Resize events make the viewport plot jump around oddly.
Make it possible to open the element details window by clicking anywhere on an element, not just the corner points.
A feature for comparing two or more plots.
Have an ability to split log files at user-chosen intervals (eg. every day, every 2 hours, weekly, etc)
Add an option to auto-load images so that you dont have to open the element details dialog to load them.
A race condition is possible in some rare cases:
Exception in thread "Timer-0" java.util.ConcurrentModificationException
at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
at fi.uta.infim.usaproxyFork.Users$UserCheck.run(Users.java:74)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Host name lookup timeout is too long. The proxy should also generally avoid host name lookups.
Test compatibility with Monocle, the ebook reader.
Iframes with local content are not tracked by the proxy. Since it doesn't violate same origin, the content of such iframes should be tracked.
A commandline switch to turn off all DNS queries. Only in server mode. To fix name resolving issues with LAN-deployed installations.
Log reports need a prettier interface.
Add an output directory CLI parameter for report generator. Currently the second argument is used as the output directory, but there should be a switch (eg. --outputDir=...)
The element type filter checkboxes are always unchecked when opening the filters dialog. The checkboxes should represent the current filtering state:
The one-to-many relationship between HTTPTraffic and PageEvent is missing the relationship definition in HTTPTraffic.
Time axes have an erroneous 2 hour offset.
Element contents lookup is unreliable. Fix needed.
This probably requires that the logger log the contents or at least part of the contents. A commandline switch?
The plugin system currently only supports loading a single javascript file with a predetermined name. Change the system so that each plugin may contain multiple files.
Create a plugin that allows users to highlight/mark areas of interest in a HTML document.
Hovering over plotted DOM elements doesn't hilight anything at all. The plot should clearly show which element the tooltip is referring to.
Move http traffic log parsing away from the report generator. A more logical place is the log parser.
Implement a plugin system for writing plugins that log additional events.
HTTP referers should be logged in order to catch search engine parameters, and for better tracing between web pages. Add feature to parser as well.
There are some issues with mobile browsers when the monocle plugin is loaded. Investigate.
Every time a website creates DOM elements dynamically, all the waypoints should be reset, since appending new DOM elements may cause elements to be displaced.
Command line option for generating reports from N logs at a single run.
Toolitips for DOM elements display mostly irrelevant information. Should display more relevant data, such as:
HTTP headers should be shown in the reports.
Create a plugin that turns event data logged with the usaproxy monocle plugin into pretty reports.
New feature: radio-button in the filter dialog with the following choices:
The current plot will then hide or show only the selected elements.
Write readme files and include license files for all components individually
The parser does not currently recognize plugin log entries.
Write maven assembly descriptors for all parts. This makes it easier to create distribution packages.
UsaProxyFork spews out tons of JS errors in server mode. Some XHRs get 404 responses.
Echo the applied settings to stdout on startup. This helps to assure the user that the CLI switches were correct.
The report generator needs a plugin system in order to allow generating reports from any kind of data. To be used in conjunction with usaproxy plugins.
Add visualization of a single element's appearances and disappearances to the element details dialog.
The visualization must show:
Resize events show a linear progression from the previous viewport change towards the moment of resizing. This is incorrect; resize events are instantaneous.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.