Difference between revisions of "Project:Box identification"

From London Hackspace Wiki
Jump to navigation Jump to search
Line 66: Line 66:
 
=== User Interface ===
 
=== User Interface ===
 
* Admin maintenance for helping with physical setup.
 
* Admin maintenance for helping with physical setup.
** <s>Create a box.</s> ([[User:Montyphy|Montyphy]] 02:44, 1 March 2012 (UTC))
+
** Storage unit
** <s>Delete box</s> ([[User:Montyphy|Montyphy]] 02:44, 1 March 2012 (UTC))
+
*** Create
 +
*** Update
 +
*** Delete - Anything assigned to that unit should get it's location set to NULL
 +
** Storage bay
 +
*** Create
 +
*** Update
 +
*** Delete - Anything assigned to that bay should get it's location set to NULL
 +
** Box
 +
*** Create one or multiple boxes
 +
*** Assign member
 +
*** Assign location
 +
*** Disable
 
* Member maintenance of personal storage.
 
* Member maintenance of personal storage.
 
** Create a box.
 
** Create a box.

Revision as of 10:48, 6 March 2012

Box Identification
Created 01/02/2012
Members Montyphy asc Akki14
QR code


Brief

The members personal storage area

There are a few very minor issues with the Members Storage Boxes. Firstly, it's not easy to describe the location of a box to another member. Secondly, it's not easy to tell if a box on the shelf is owned by an active member.

Aims

  • Label each bay of the storage shelves with location indicators.
  • Label each member's box with a QR code representing its ID which can then be used to query information about its owner. The QR code is just for convenience so the label should also include a human readable version of the query.
  • Create an interface to allow members to maintain the location and ownership of their box(es).
  • Create an interface for members to represent and share information about the location of their box.
  • Create an interface for searching the name/nickname of a member to get the location of their box.

Use Cases

  • Identify a box - Lookup a QR code or ID that's on a box and get told who owns it (if anyone).
  • Label a group of new boxes - For a given number, create new box instances in the database and output a batch of QR codes.
  • Relabel a group of existing boxes - For a given range of IDs, output a batch of corresponding QR codes.
  • Lookup the location of a member's box using their nickname.
  • Lookup the location of a member's box using their name.
  • Express the location of a member box - A link that will provide a visual representation of where a box is.
  • Take ownership of a labelled box.
  • Take ownership of a previously unlabelled box.
  • Renounce ownership of a box.
  • Allow a member to set the location of their box.

Decisions/Progress

  • Current code progress can be found at https://github.com/montyphy/hackspace-foundation-sites/tree/members_storage
  • Shelf locations will have the format /s\d\db\d\d/ e.g. s01b10. With the first segment (/s\d\d/), e.g. s01, representing the shelving unit and the second segment (/b\d\d\/), e.g. b10, representing the bay on that particular unit.
  • Shelf bays will have to be labelled sequentially left to right, bottom to top to account for when people double stack the top bays.
  • A location indicator can be generated by visiting /members/storage_image.php and attaching a box location with '?loc=' e.g.
/members/storage_image.php?loc=s16b03

will create: Montys box location.png

  • A box identification label can be generated by visiting /members/storage_image.php and attaching a box id with '?id=' e.g.
/members/storage_image.php?id=1 

will create: Example box qr code.png

  • A range of QR codes can be generated for labelling boxes by visiting /members/storage_image.php a start id with '?start_id=' and optional end id with '&end_id=' e.g.
/members/storage_image.php?start_id=1&end_id=10

will create a page containing something like: Qr codes sheet.png

  • Two of each ID are produced for the QR code sheet in order to label both short sides of the box.
  • Started creating the member maintenance interface.
  • Rather than deleting a box it will be marked as disabled to prevent loss of possibly useful information in the event someone has belongings in the box still.
  • Rather than the disown function setting the owner field to NULL it will set an Owned field to False in order to prevent loss of possibly useful information in the event someone has belongings in the box still.

To Do

Physical

  • Label the boxes.
    • Assign boxes to correct members.
    • Assign boxes to their locations.
  • Label the shelves. Please let me know if any labels drop off and I can print replacements --Akki14 23:42, 28 February 2012 (UTC)

Database

  • Represent a storage location.
  • Represent a box.

Image Generation

  • API for creating box location images.
  • API for creating box labels.
  • API for creating numerous box labels by providing a range of IDs.

User Interface

  • Admin maintenance for helping with physical setup.
    • Storage unit
      • Create
      • Update
      • Delete - Anything assigned to that unit should get it's location set to NULL
    • Storage bay
      • Create
      • Update
      • Delete - Anything assigned to that bay should get it's location set to NULL
    • Box
      • Create one or multiple boxes
      • Assign member
      • Assign location
      • Disable
  • Member maintenance of personal storage.
    • Create a box.
    • Claim a box. (Montyphy 01:23, 1 March 2012 (UTC))
    • Disown a box. (Montyphy 01:23, 1 March 2012 (UTC))
      • Don't set user_id to NULL, instead change Owned to False.
    • Assign a box to a location. (Montyphy 01:39, 1 March 2012 (UTC))
      • Make more user friendly by making a select box of unclaimed boxes
      • Validate location
    • Generate label for claimed box (Montyphy 01:27, 1 March 2012 (UTC))
    • Generate location indicator (Montyphy 01:40, 1 March 2012 (UTC))
  • Box lookup e.g. searching name or location.
  • Box identification e.g. QR code / ID lookup.
    • List info about owner e.g. name, member status (Montyphy 02:43, 1 March 2012 (UTC))
    • Option to claim box if no one owns it

Gallery