General Technical:
Note | ||
---|---|---|
| ||
This document is currently being worked on. Full version will be available when this notice disappears! |
- What kind of project is this?
SiteStats is a new tool, built from ground up. It watches registers for notifications with the Sakai Event Tracking Service for site related events generated by tools in site, and persists aggregated values to hibernate managed tables. - What level of code review has been applied?
By the time the tool reached the 2.0 version, SiteStats was analysed by Alan Berg's Automated Code review scripts and reviewed toghether. Since then, some manual review is made from time to time using PMD, Firebugs and Sonar. The tool maven configuration has goals to generate PMD and FindBugs analysis and, locally, it is periodically analysed with Sonar. - What architectural or technical documentation exists?
Sakai wiki page for the project including installation and configuration guides, and performance considerations
JIRA has been used to track all tasks and bugs from release 0.2 onwards - How many people have been working through the code?
Mainly, Nuno Fernandes, Feliz Gouveia (Universidade Fernando Pessoa) and David Roldan Martinez (Universidade Politecnica de Valencia). There are some others sporadic contributors, though. - What is the lifetime of the code? How long has this code been around?
The first development versions of the tool were on a local svn repository. Since version 0.2 that SiteStats is hosted on Sakai SVN Contrib repository (March 2006). - How long and where has been it in production?
Universidade Fernando Pessoa has been running SiteStats in production since the very early releases 0.1 pre-release (early 2006), followed by UCT (University of Cape Town) on the same year. Since then, many others institutions have been running the tool in production (UNISA, Universidad Politécnica de Valencia (UPV), Indiana University (IU), University of Colombia, Claremont Colleges, University of Windsor, Georgia Tech, University of Hawaii, possibily others). - Is the project planning on independent releases?
Current stable releases (2.0.x) are available on Sakai's contrib subversion repository. Anthony White has recently configured the tool for independent releases on binary format available from Maven repository (2.1-SNAPSHOT). - What happens if an instance uses, then uninstalls the project?
The project is a simple add-on which can be safely installed and unninstalled (by simply removing the deployed jars/wars from the application server). If an institution decides to re-install the tool, there is the possibility to aggregate all missing event data (from the period the tool was uninstalled) through the provided Quartz Job.
...
- How large is the project? (Lines of code / modules) The project has a 19.981 lines of code + 2.472 comment lines in 1449 methods from 155 classes from 19 packages.
Module
Lines of Code
Comments
Methods
Classes
Packages
API
1373
629
286
33
5
Impl
10328
1079
446
41
6
Impl-Hib
526
201
27
7
1
Tool
7754
563
690
74
7
TOTAL:
19981
2472
1449
155
19
Source: Sonar 1.11.1
- How many non-kernel Sakai dependencies?
Scheduller (Quartz job), SakaiMock (tests)
...
- Was load testing performed? What were the results? Is a load testing report available?
I had performed some load test testing for code optimization a long time ago on the 1.x versions - however, I currently don't have any useful information about it. David Roldan Martinez had also run some load tests with SiteStats right afterwards which revealed some performance increase.
It would be excellent if we can (and desirable) if the tool could have some kind of automatic load testing procedures (fired my Maven?) in the future.
- Are there features that are database intensive, either in terms of large data or heavy CPU demand?
The event aggregation mechanism needs to update value on SiteStats tables which can be, in some configurations, some kind what heavy. There are two operational behaviors options regarding this: a real-time event aggregation thread (for small-medium sized installations) and a quartz job for event aggregation to be scheduled at will (for large sized installations).
...