SoftwareFor:UI

From SoftwareFor

Jump to: navigation, search

The CD/DVD User Interface (UI) is the reason we're here. There are several things needed for the new interface.

The Basics

Because this is the central piece, there are several tiers we need to cover with regard to the design of this component. The UI currently is very pretty, and as far as the look and feel the users see, there isn't much improvement needed there. At least, not from my perspective (way to go Dave) Herlo

However, there are several things that need to be attended to with regard to the capabilities of the UI itself. Among them are internationalization, extensible UI (online and local), etc. This piece also needs to be built by utilizing the other two development projects, PKGApprove and ISOBuilder.

SVN

You can check out this project using SVN. You'll need access to it as well, however. Here's how to checkout the project:

svn co svn+ssh://username@softwarefor.org/var/www/svn/ui

Background

I am sure there will be more background added here. For now, lets discuss the UI a bit. Originally, the development of UI was held by one Dave Turnbull, who did quite a good job with it. Developed it and loved it, and made it a furry little application with a useful build process. Problem was, no one else knew the process and thus, when things were passed on, no tribal knowledge went with it. This caused some serious delays (even a cancellation, if we want to be trite) of the project. Because of this, the project suffered a little.

The delays and lack of understanding of the project was not really anyone's fault, just a circumstance of the project growing up. Mainly, the UI has been a very good look and feel, even as far back as its days at BYU-UUG. Trick is, only one or two people knew the details backward and forward. Now, even though a few of us could build the UI, spreading the knowledge of how the process is to work is a large task undertaken each time someone new shows up.

Which brings us to this page. Because of the learning curve we've had, it's been my idea to collaborate on the wiki for the development effort. And because of that, I get to write the design documents for the new version which will improve upon what currently exists.

Phase 1

  • New Browser - K-Meleon CD Browser Kit
    • Includes the DiscTree toolkit and some preconfigurable components for AutoLoading the CD.
    • Is this possible for OS X too?
  • New DB (mysql) and structure
  • File path structure
    • language (en_US, de, or es) -- many languages are possible this way on one CD. It is altogether possible we may not need this directory in the resulting UI.
    • interface -- web pages along with execution scripts, called .lch files. This directory reads the chosen language and displays the html appropriately.
        • examples -- example html pages, though this should include videos, images, etc.
        • images -- pictures belonging to certain applications
        • scripts? -- not sure if this really needs to be here anymore. The new gecko based interface removed the need for much of this...
        • videos -- some applications have video demos, include them here.
    • software -- packages of software encompassed in their own directory.
  • Removal of local database to create UI. Instead, will be built with MediaBuilder.
    • UI will have this function call available as well.
  • XHTML Compliance - This will provide simplicity with well formed XML documents.
HTML Example Options

This example gives a good idea of what might be involved in internationalizing the content. It actually could be quite simple. Trick is to have some experience with evaluating the results in many encodings.

 <html xmlns= "http://www.w3.org/1999/xhtml"> 
 <head> 
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
     <title>Welcome - Bienvenue</title> 
 </head> 
 <body> 
   <div lang="en" xml:lang="en">
    <h1>Welcome!</h1> 
    <p>Lots of text in English...</p>
   </div>
   <div lang="fr" xml:lang="fr">
    <h1>Bienvenue !</h1> 
    <p>Beaucoup de texte en français...</p>
   </div>
 </body> 
 </html>