Location: PHPKode > projects > Obsessive Website Statistics > ows/docs/ideas.txt
Overall goal:

	To provide a powerful yet easy to use statistics analysis framework geared
	towards analysis of apache log files. Obsessive web stats should allow
	you to analyze and put every facet of your web traffic under a microscope,
	and not just deal with aggregate data.

	Must be easy to use
	Must be easy to setup
	Must be easy to create new plugins for it
	New plugins should not feel like hacks, but integrate into interface nicely

What about an initial 'overview' screen that immediately shows aggregate data? And,
a way for plugins to get in on this as well. 

	- perhaps a canned report with the top everything of the month like AWSTATS.  
	Now not everyone knows SQL, or even how to filter data to get what they want.  
	With your current interface, you can get pretty much any report.  So maybe a canned stats 
	plugin that can produce aggregate stats similar to awstats for a week, month, year etc.    
	This can also be a flat file updated by cron or some other scheduler.  So if I just want
	to see my hits to date this month, or the most popular referrers, I should be able to see 
	it all with no wait.  This can be updated every few hours or so.

There has to be an easy way to implement localization. Hmm.

Plugins (not in any particular order)

	Need a plugin manager of some sort. Must be able to activate/deactivate plugins
	
	Definitely need something that can store 'favorite' queries. There are probably
	a number of ways to implement this.
	
	Implement some kind of error handling thing that can flag plugin problems and reverse them. Or
	something to that effect. As opposed to everything dying.
	
	(these two go together)
	Need a visit analysis plugin to track visits
	Need a path analysis plugin, for sure
	
	Search Engine referrer analysis
		Should be easy, just add another dimension to the data
	
	Add bot recognition
		Honeypot type stuff! .. I don't even remember what I meant by this
		
	

   An alert to admins if site is suddenly getting a huge amount of hits from somewhere...  
   I want to know if my site gets slashdot, digg, etc and it is easy to see from the logs.  
   So a logical extension of a stats program is to alert you if you are mentioned somewhere 
   important.  We would like to place a link on our pages somewhat automatically if it is 
   mentioned somewhere.  Like I would like the stats program to send out a message to our 
   cms  and admin that there is a spike in traffic, and all referrers are coming from 
   nytimes.com/article_on_physics.html   So I go and click on my cms, publish link. But if 
   suddenly there is a spike of traffic with a spoofed referrer set to goatse or something, 
   I dont want to automatically publish that!
   
	   This would be a pretty easy plugin to implement -- except it depends on the php mail 
	   function actually working (I've always had issues with it). The way one would implement 
	   it (for 0.8x) is  have an analysis plugin that doesn't implement any actual fields and 
	   just has a pre/post analysis function that runs the analysis and uses some predetermined 
	   measure to detect spikes.

	I want to count our RSS subscribers.  Now when an aggregator like google feeds updates 
	my feed with them, they put something like this in the referrer: 
	"Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 241 subscribers; feed-id=4792911719065424831)" So 
	by parsing out the 241 subscribers, I can add that to the count of unique IPs accessing that
	RSS feed, and get a pretty accurate count of subscribers.  Nobody does this as far as I have 
	seen.

Data purging

	For some sites, we need to get rid of the data in the database after
	either a specified time or a specified amount of rows. Summary tables
	should be created for some useful old data.
	
	What if data older than a month was reduced to summary tables? (add as option,
	small websites this wont matter).
	
	Right now, old data is just deleted by the db_limit plugin, it does not retain
	any of the old data.
		

Add Limits

	Search functions
		- Pages LIKE keyword
		- Referrers, ips, etc
	
	Include/Exclude filetypes
		
Add standard output types

	The solution to this is simple: force all filter plugins to use an object for output, instead
	of using 'echo'. Then, any item can be easily retrieved and formatted using standard output
	plugins. Different calls can be used to differentiate between headers and information, and the
	actual output -- useful for RSS/CSV/XML/PNG/etc output types.

	-- table output using a result set (done, needs to be converted into a plugin)
		- It would be way cool to have 'foldable' tables, ie, expand GROUP BY queries
		- What if the table had a context menu where it could allow you to filter to include/exclude 
		that particular item? Javascript can do this easily, we just need some easy to use mechanism
		for plugins to implement this.
	
	-- Graph output using a specified type of passed data
		-- May require recursive embedding for pretty printing? ie.. self referencing img tags
	
	-- export to CSV/XML? This would be way neat
	
Authentication

	At some point authentication is going to HAVE to be supported somehow. 
	


Return current item: Obsessive Website Statistics