Skip to content

Information Architecture

mckoss edited this page Mar 8, 2012 · 10 revisions

Information architecture for our project (schema and site navigation).

Schema

Project data model outline. All models have created and modified properties as well as an AppEngine created id (primary key). Standard REST-ful data access

applies:

http://streetcode-sw.appspot.com/data/<model> - collection (GET, POST)
http://streetcode-sw.appspot.com/data/<model>?prop=value - filtered collection (GET)
http://streetcode-sw.appspot.com/data/<model>?prop=value* - filtered prefix (GET)
http://streetcode-sw.appspot.com/data/<model>/id - item (GET, PUT, DELETE)

Clients

  • displayName
  • fullName
  • story (long text)
  • sponsor
  • imageURL
  • shortCode

Sponsors

  • name
  • url
  • address
  • phone

Donors

  • name
  • email
  • phone

Users (user accounts)

  • isAdmin
  • sponsor
  • user (app engine credentials)

Scans

  • client
  • donor
  • ledger
  • transaction

Transactions (ledger)

  • fromAccount (e.g., 'stripe')
  • toAccount (e.g. 'sponsor_id/client_id' like 'sponsor_64/client_12')
  • amount
  • type
  • note
  • confirm

SKUs

  • name
  • price
  • description

Site Navigation

This web application serves several different constituents, with access to different functions:

  • Donors: Mobile web interface displayed after scanning a Clients's QR-Code. The site home page is also primarily targeted at Donors.
  • Sponsors: Partner organizations access to client administration pages.
  • Administrators: Site administration, setting up Sponsors and User accounts.

URL

  • /: Home pages, marketing, positioning
    • /about
    • /terms-of-service
  • /client/<nickname>: Mobile landing page for a Client (hand typed)
    • **/client/nickname?s=q: QR Code (mobile) landing page.
  • /admin/: Admin home page (requires is_admin_user)
    • (AppEngine) Admins see user list and sponsor list links. Normal users redirect to /admin/sponsor/id for their sponsor organization.
    • /admin/user/: User list (Admin only)
    • /admin/user/id: View/Edit user (id == 'new' to create new user)
    • /admin/sponsor/: Sponsor list (Admin only)
    • /admin/sponsor/id: View/Edit a sponsor (id == 'new' also) (Admin OR any or the sponsor's users) Also show client list (Ajax generated) here.
    • /admin/client/id: Individual Client view/edit (id == 'new' allowed) page. (Admin or sponsor allowed). (Note: Admins who edit will have to specify WHICH sponsor the client is for.
  • /data/model-name: REST interface to get list of all "model's".
    • /data/model-name?prop=value: Subset list of all "model's" where property equals value.
    • /data/model-name/id: Individual model JSON object.
Clone this wiki locally