RichFaces Photo site demo application

PhotoAlbum Released!

Photoalbum Application [SVN sources] [Demo Guideline]

Links:

Page on JBoss Forum can be found there.

RichFaces Photo Site Demo Packaging

 

Initial design and gathering.

 

There are initial list of basic view which could be implemented in Real-World demo. Comments are welcome.

 

 

Overview

 

            Application should provide simple pictures storage with upload, management preview and sharing possibilities.

            This document describes set of view drafts that could be used within real world demo.

            Note that this document is just high level draft so some common components could be skipped in “Components used for use-cases” sections. (panels, toolbar, support, region, outputPanel and etc..)

 

Similar Applications

  1. flickr.com

Updated(13.02)

Functionality Summary

Photo Album demo application provide the following features set:

  1. User Login and registration.
    1. login/logout
    2. User preferences management.
    3. users preferences view(viewing the properties of any registered users)
  2. Data Life time
    1. OPEN ISSUE. User and their dat could be cleared
      1. nightly -  this will allow to organize dayly news, search between existing and so on.(I leaved the functionality which could be usefull with this option - news, search within all the uploaded and so on. Could be removed if option 2 will be choosen)
      2. on session closure.
  3. Sharing
    1. All the uploads are visible for any users and available to be searched for.
  4. Roles management (Simple in first version - registered/unregistered)
    1. Browsing the application in guest mode.(All the functionality except any kind of changing and own albums available) 
    2. Browsing application as registered user. All the functionality below available.
    1. Uploading and management pictures
        1. Multiple pictures upload
        2. Preview and edit pictures preferences after upload
        3. Hierarchical album structure (albums can be nested)
        4. Categorizing the pictures using Drag and Drop within the albums
        5. Categorizing images and whole albums with metatags
        6. Ability to provide the descriptions to images in order to create "story" functionality in slideshow mode.
      1. Operations on the picture OPEN ISSUE could be done according to release timeframe possibilities.
        1. Rotation
        2. Leveling
          1. OPEN ISSUE and so on editing(frames etc..),..
      2. Owner Images view
        1. Albums view. List of albums with their properties.
        2. album view. Browsing pictures thumbnails within concrete album.
        3. Single picture view and management.
          1. Preview for concrete picture with its properties.
          2. Properties management.
          3. full sized images links.
        4. Slideshow within the album
      3. content updates
        1. "News" functionality. Browsing within latest added, random pictures by tags an so on.
      4. Search (Both by shared pictures and owner pictures)
        1. Search images by tags
        2. Search images by metadata and other properties(upload date, description, and so on).
        3. Search for users by names
        4. Search by albums
      5. Application help
        1. Set of views describing implementation decisions details. (Seam and RF usage for the cases implemented)
        2. Information on how to use application itself within the views

       

      Future Versioned

      Features which could be done after the community mechanisms will be miplemented

      1. albums sharing
      2. groups creation
      3. friends for users
      4. messaging between users
      5. rating on the fotos
      6. comments on the fotos
      7. management of the comments
      8. favourites functionality
      9. bookmarking (useless till the data lifetime is short)

       

      Other

      1. administration module
      2. Layout redefinition
      3. Story creration
      4. Tag cloud widget for browsing shared
      5. emailing from user viewes.

       

      Use-case diagram for RealWorld demo

      In first version demo will include followed use-cases

       

      use-cases diagram for real-world demo.png

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      Dependent of time, RealWorld demo will include additional use-cases:

       

      use-cases diagram for real-world demo - rich.png

       

      Domain model for RealWorld demo

      Initial version:

       

      domain model for initial realworld demo.png

       

      Outdated

      (Will be updated soon after markups design finished)

      Design Section

       

      1.1 Login View

       

                  It should be some kind of standard login/register view. Some info about RF and application itself should be present in this view.

       

      1.2 Views for logged user

       

      1.2.1 User properties view

       

                  Standard user-info properties view. Should allow the user to add or edit its detailed info.

       

      1.2.2 Pictures Upload View

       

                  Every logged user should be able to upload the pictures to server. Upload restrictions should be defined (size of pictures, types, may be resolution). After uploading, the user should be able to preview pictures, edit its properties and save them or just remove some of them.

                Components used for use-case:

      • ·        rich:fileUpload
      • ·        rich:progressBar(built-in)
      • ·        rich:mediaOutput(preview)
      • ·        a4j:commandLink (store, change)
      • ·        rich:dataGrid (preview iteration)

       

      1.2.3 Albums management View

       

                  View for management albums should be available for the user in order to rearrange the albums, rename or delete existent ones or just create new albums. (TBD some other properties that could be changed from this view such as sharing and etc..)

                Components used for use-case:

      • ·        rich:dataGrid for albums list representation
      • ·        a4j:commandButtons/Links
      • ·        contextMenu

       

      1.2.4 User Pictures View

       

                  View for existent pictures viewing. It should contain the navigation tree for pictures groups and main area which should be switchable from list subview to slideshow subview.

                  Components used for use-case:

      • ·        rich:tree for folders representation

       

      1.2.4.1 List subview

       

                  The user could choose some folder from navigation panel and should be able to view all the pictures within folder. This subview also should allow moving pictures between folders delete some of them or call properties view for any picture.

                  This subview could optionally contain a filter for pictures which should be shown

                Components used for use-case:

      • ·        rich:dataGrid for pictures list representation
      • ·        rich:datascroller
      • ·        drag and drop components to move between folders
      • ·        rich:calendar, inplaces, commandButtons/links for filter
      • ·        context menu

       

      1.2.4.2 slideshow Subview

       

                  This subview should represent one picture in a full size in the subview. And also controls to switch between pictures (next/prev-like controls or maybe just line with clickable thumbnails). Also it should be possible to turn real-time slideshown on within this view.

                   Components used for use-case:

      • ·          context menu
      • ·        commandButtons/Links
      • ·          poll (realtime slideshow support)

       

      1.2.5 Pictures Properties Management View

       

                  This view could be called for any picture from “User Pictures View”. It should be opened as modal dialog and consist of picture properties in editable controls.

                   Components used for use-case:

      • ·        inplaces
      • ·        commandButtons/links
      • ·        rich:modalPanel

       

      1.3 Shared Albums

       

                  Application should provide all the users access to shared area. Albums marked as shared should be available to non logged users via the same “User Pictures View” but without any changes allowed.

                  Shared Albums view should be also allowed to be used by already logged users

       

      1.4 Live updates

       

                  While the user uses shared view it should be asynchronously updated after changed on server. So new albums should appears and some additional info (e.g. pictures counts in albums) info should be updated using push technique.

                 Components used for use-case:

      • ·        a4j:push