Computer Info Science  (ICS4M1)
Final Project Proposal

Title:
- ZeroSlackr LazY Installer


Members:
- Philip Peng (solo)


Explanation:
- Command line / GUI package manager for the ZeroSlackr Project
  (http://sourceforge.net/projects/zeroslackr/) for iPodLinux.
- Written in Java for cross-platform goodness.


Capabilities:
- Install Loader 2 via ipodpatcher (external)
- Install iPodLinux via partition-less loop-mount method
- Install ZeroSlackr Framework (modified iPodLinux)
  via partition-less loop-mount method
- Install Rockbox (clean SVN builds)
- Download, manage and install packages (normal or ZeroSlackr)
  via packlists (special .ini files)


Optional:
- Step-based GUI (instead of command prompt guiding)
- Music player (read from MPD/iTunes database)
- iTunes music file extractor (read ID3 tags)


User Interface:
(note: all commands will automatically install
 Loader 2 if not already installed)

- "-l" = install/reinstall Loader 2

- "-rock" = install Rockbox
- "-ipl" = install iPodLinux only (basics+zilla)
- "-zs" = install ZeroSlackr Framework only (basics+zilla)

- "-packs" = prompts (y/n) through packs (which types depend on "-ipl" or "-zs")
- "-all" = install all packs (which types depend on "-ipl" or "-zs")
- "-extras" = install all Extras packs (which types depend on "-ipl" or "-zs")

- "-pack $pack-name" = download and install specific pack only
- "-m $mirror-url" = use different mirror for packlist retrieving

- "-lazy" = "-l -rock -zs -all -extras"
- "-list" = print list of packs (sorted by category)

i.e
"java zeroslackr-lazy.jar lazy"
"java zeroslackr-lazy.jar -l -zs -all -extras"
"java zeroslackr-lazy.jar -zs -packs"
"java zeroslackr-lazy.jar -m http://mirror.foobar.org/packs.ini -l -rock -zs -pack iboy -pack idoom"


Possible GUI:
- Main screen:
  ___________________________________________________
  |____________ZeroSlackr LazY Installer____________|
  |                                                 |
  | $PICTURE                                        |
  | $PICTURE    Welcome to Keripo's                 |
  | $PICTURE    Java-based LazY Installer           |
  | $PICTURE    Installer for the iPod!             |
  | $PICTURE    For installing Loader2,             |
  | $PICTURE    Rockbox, iPodLinux, and             |
  | $PICTURE    ZeroSlackr!                         |
  | $PICTURE                                        |
  | $PICTURE                                        |
  | $PICTURE    Click Next to start                 |
  | $PICTURE                                        |
  |                                                 |
  | [Music]                                [Next]   |
  |_________________________________________________|

- Startup screen:
  ___________________________________________________
  |____________ZeroSlackr LazY Installer____________|
  |                                                 |
  | $PICTURE                                        |
  | $PICTURE    You have a #GB iPod $model          |
  | $PICTURE    at X:/ with Loader2                 |
  | $PICTURE    not/already installed.              |
  | $PICTURE    What would you like to do           |
  | $PICTURE    today?                              |
  | $PICTURE                                        |
  | $PICTURE    () Install/change Loader2           |
  | $PICTURE    () Update ZeroSlackr                |
  | $PICTURE    () Update Rockbox                   |
  | $PICTURE    () Uninstall iPodLinux              |
  |                                                 |
  | [Music]                                [Next]   |
  |_________________________________________________|
  
- Package selection screen:
  ___________________________________________________
  |_____________ZeroSlackr LazY Installer___________|
  |                                                 |
  | $PICTURE                                        |
  | $PICTURE    Select the packages you             |
  | $PICTURE    want to install, then click Next.   |
  | $PICTURE                                        |
  | $PICTURE    Base:               Info Box        |
  | $PICTURE    [x] Userland        Name:           |
  | $PICTURE    Packs:              Author:         |
  | $PICTURE    [x] iBoy            Description:    |
  | $PICTURE    Extras:             Size:           |
  | $PICTURE    [ ] iBoy PD Roms    Blah:           |
  | $PICTURE    [ ] etc...                          |
  |                                                 |
  | [Music]                        [Back]  [Next]   |
  |_________________________________________________|
  
- Package selection screen:
  ___________________________________________________
  |_____________ZeroSlackr LazY Installer___________|
  |                                                 |
  | $PICTURE                                        |
  | $PICTURE    Installing package $packagename     |
  | $PICTURE    to $location                        |
  | $PICTURE                                        |
  | $PICTURE    Progress:                           |
  | $PICTURE    [===============              ]     |
  | $PICTURE                                        |
  | $PICTURE    Log:                                |
  | $PICTURE    | Extracting $file...Done.    |     |
  | $PICTURE    | Extracting $file...Done.    |     |
  | $PICTURE    | Extracting $file...         |     |
  |                                                 |
  | [Music]                                [Next]   |
  |_________________________________________________|

- Finished screen:
  ___________________________________________________
  |_____________ZeroSlackr LazY Installer___________|
  |                                                 |
  | $PICTURE                                        |
  | $PICTURE                                        |
  | $PICTURE    Installation finished!              |
  | $PICTURE                                        |
  | $PICTURE    You may now unplug your iPod and    |
  | $PICTURE    let it reboot.                      |
  | $PICTURE                                        |
  | $PICTURE    Enjoy!                              |
  | $PICTURE                                        |
  | $PICTURE    ~Keripo                             |
  | $PICTURE                                        |
  |                                                 |
  | [Music]                              [Finish]   |
  |_________________________________________________|
 


End-users:
- For those new to iPodLinux and unfamiliar with manual installation.
- For those who want to install iPodLinux without partitioning.
- For those who want to install ZeroSlackr and experience its awesomeness.
- For those who do not want to install ZeroSlackr and packs manually.
- For those who want to implement it into their own GUI installer
- For those who are use to using the command prompt/terminal (Linux users)
- For those who are lazy.

