Task Estimation

MILESTONE: Project kickoff blog posting
Mock up possible example offline applications as a start, to ground Dojo Offline API design
Design Dojo Offline API and code API facade, studying possible Dojo Offline usage patterns and applications
Document Dojo Offline API and architecture
MILESTONE: Dojo Offline API and architecture designed and written up as provisional Wiki page in Dojo Book
Brush up on cross-platform C, Mingw libraries, GCC, and GCC cross-compiling
Study Polipo source code
Create PAC (Proxy AutoConfigure) file that works even when proxy is down
Research way for sites to indicate they want to have the ability to go offline
Modify Polipo to load and save list of domains that want to work offline, and to load this file on startup
Have Polipo only cache sites that are in offline list
MILESTONE: Test web app using Dojo Offline API to "register" itself for offline ability
Figure out how to have proxy start up for Windows on system startup
Figure out how to have proxy start up for Mac OS X on system startup
Figure out how to reverse this as well to uninstall proxy from startup when we get to the uninstaller
MILESTONE: Show code and techniques for having offline proxy start on OS startup (for some OS's this might just be a line of code that updates the Windows Registry, for example)
Add way for Dojo Offline API to query if Dojo Offline proxy is available and running
Create UI for Dojo Offline API to prompt on where/how to install Dojo Offline
Have Dojo Offline API not try to install Dojo Offline proxy if proxy already installed
MILESTONE: Show Dojo Offline API prompting user to install Dojo Offline in appropriate way if needed, and also detecting if Dojo Offline already available and not prompting to install
Read NSIS manual (open source installer for Windows)
Using NSIS, figure out how to tell Firefox to use PAC file without starting it up (by adding line to prefs.js, for example)
Using NSIS, figure out how to tell Internet Explorer to use PAC file (might be a registry key, for example)
Create Installer for Windows using NSIS
MILESTONE: Installer for Windows for Dojo offline
Create Uninstaller for Windows
MILESTONE: Uninstaller for Windows for Dojo Offline
Research how to create installers/uninstallers for Mac OS X/x86
Create Installer for Mac OS X/x86
MILESTONE: Installer for Mac OS X/x86
Create Uninstaller for Mac OS X/x86
MILESTONE: Uninstaller for Mac OS X/x86
Fix bug in Polipo where it won't access network if offline if file is inside cache
Make Polipo a bit more stable so we can depend on it being up for the lifetime of the system
Turn off all Polipo runtime options not needed to be more secure
Have Polipo start up on loopback address and not be exposed on network
Update Dojo Offline detection script to make sure it works correctly with installers
Revisit Dojo Offline API to make sure it is solid and understandable
Configure Polipo build to be smaller
MILESTONE: Polipo is now more reliable and secure, and Dojo Offline is nearing feature complete
Figure out way to generate all installers from Mac OS X/x86 (if possible)
Create build file for installers/uninstallers and building Polipo
Integrate Dojo Offline build system into Dojo's build system
MILESTONE: Dojo Offline build system integrated into Dojo's build system
Integrate Dojo Storage into Dojo Offline
Fix occasional Dojo Storage bug where it won't work on first try if Flash VM is started up for very first time by OS (still need to isolate bug)
Do Dojo Storage benchmarking and scalability tests for number of records
Modify Moxie to use Dojo Offline
Fix potential issues with Moxie's use of Editor widget when Editor widget is pulling resources dynamically from offline proxy (probably will simply work, but noted as potential issue since it uses XHR)
MILESTONE: Dojo Storage and Dojo Offline integrated, with demo of Moxie with true offline ability
Finalize Document Dojo Offline API and architecture
MILESTONE: Dojo Offline is at feature complete
Submarine issues in Polipo not known about
Submarine issues due to OS startup issues
Submarine issues due to integration between Dojo Storage and Dojo Offline
Submarine issues due to Dojo Storage not having a perfect API fit for offline needs
Make sure Polipo doesn't have bad interactions with Windows firewall software
QA testing and fixing of issues for Windows
QA testing and fixing of issues for Mac OS X/x86
MILESTONE: Dojo Offline has had significant cross-platform QA testing and fixing