
        -=-  -=-  -=-  -=- MagicStats 2.0 TODO List -=-  -=-  -=-  -=-

Specific Goals:

[ ] 22. Implement installation system [EnginePlugin?  Perl Script?]
[ ] 23. Add a page that uses Meta Refresh if OS doesn't support symlinks...
[ ] 25. Reduce the required exposure by plugins to the MagicStats API.
[ ] 26. Implement classes for:
[X]    a. ALMonolithic - Just one big file.
[ ]    b. ALRotated    - Rotated daily, monthly, randomly, etc...
[X]    c. ALSplit      - For example, virtual hosts on magic...
[ ] 28. Create an Access Filter that combines hosts according to wildcards. 
        Example: Combine pdx*.teleport.com -> pdx-dialup.teleport.com
[ ] 35. Expand Global::AccessLog specifier to allow a list of plugin names...
[ ] 36. Implement InstallInterruptHandler for Win32.
[X] 37. Add StatsGraph java applet to makefiles...
[ ] 38. Develop MagicStatsD as an engine plugin
[ ] 39. Implement BrowserMatch plugins (but what about performance???)
[ ] 40. Implement Server Status plugin: Update, Disk Usage, Load, # users, etc
[ ] 41. Implement DNS Lookup AccessFilter
[ ] 42. Cache plugin information in the plugins directory to avoid loading all
        plugins when only a small subset is needed.  (later)
[ ] 43. Incorporate Ping plugin...
[ ] 44. Page plugin that plucks search keywords from referring URLs...
[ ] 45. Add user session tracking, with a nice API (inheritance?)
[ ] 46. Add filestream plugin to fetch log via FTP/HTTP from remote system.
[ ] 47. Add AccessFormatPlugin to process FTP Server log files... man xferlog
[ ] 49. Process browser type information
[ ] 50. Add extra parameter to Rewrite plugin to allow it to match with certain
        perl idioms (global, case insensitive, ...)
[ ] 51. Add parameters to filters to tell them WHAT FIELDS to filter.

General Goals:

[ ]  1. Create more plugins
[ ]  2. Create example themes
[ ]  3. Expand Graph Applet
[ ]    a. More graph types (line, pie, 3d...)
[ ]    b. More variations and options.
[ ]    c. Compress input for smaller HTML files.
[ ]  4. Develop MagicStats 2.0 web page


        -=-  -=-  -=-  -=- MagicStats 3.0 TODO List -=-  -=-  -=-  -=-

[ ]  1. Make MagicStats 3.0 monitor the access_log file.  It then gets a signal 
        whenever the file changes.  Same idea as tail -f *...


Done:

[X]  1. Switch to LinkedList template model.
[X]  2. Stabilize plugin model
[X]  3. Add "Themes" management capability
[X]  4. Add more template data types.  Hash table, dictionary, bintree...
[X]  5. Implement server wide changes via. Global.cfg file
[X]  6. Add capability to filter against different access fields
[X]  7. Create AccessLog base class and extend for different format access_logs.
[X]  8. Develop FilterManager class to cache Filter objects and make sure
        that only one exists at a time for each filter.
[X]  9. Extend Filter class to cache results of recent matches.
[X] 10. Create DataTable and DataGraph classes for interfacing with Java applet
[X] 11. Provide command line parameter to skip to end of access_log.  Useful 
        for the install program.  (Implemented as -S)
[X] 12. Provide facility to limit number of hits analyzed by MagicStats.  This
        allows to charge more for licenses for servers that have more hits.
[X] 13. Create totally contained plugins.  This requires only that the object
	file be linked into the final executable to be available.
[X] 14. Group together paths such as /test/index.html /test/ and /test
[X] 15. Move shared code out of the OutputManager class...
[X] 16. Create Access base class and extend for different formats of accesses.
[X] 17. Create AccessLog base class and extend for different access_logs.
[X] 18. Provide general serialization data object for shutdown at end of main.
        This would allow for all plugins of different types to serialize the 
	data that they need to start back up.  Especially important are data
	plugins and access_log plugins.
[X] 19. Provide a variable to Themes so that they know where to look for their
        resources (such as images/applets).
[X] 20. Provide a command line option that displays all of the available
        Themes and Plugins.  (And the resource path)
[X] 21. Implement all six update frequencies.
[X] 24. Add "Access Filter Plugins" that modify accesses before they go to 
        plugins.
[X] 27. Keep the Table class from performing linearly when inserting elements
        in a sorted order.  Hash Tables are your friends!
[X] 29. Add Regular Expression matching to the Filter class.
[X] 30. Add tags to header files for use when importing symbols into plugins 
        from Win32 plugins... *sigh*
[X] 31. Add dependancies for the Plugins directory when building under UNIX.
[X] 32. Add capability to copy resources from plugins directory when building.
[X] 33. Add a way to link to plugin specific resources...
[X] 34. Add a command line option to check a theme for validity.
[X] 48. Process referrer information
