Web Hob design project with T&T: Difference between revisions

From Yocto Project
Jump to navigationJump to search
mNo edit summary
 
(103 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page contains information on the '''Web Hob''' project to develop a web-based UI for the Yocto project.
[[Category:Toaster]]


'''Mailing List:''' [https://lists.yoctoproject.org/listinfo/webhob https://lists.yoctoproject.org/listinfo/webhob]
The project formely known as Web Hob / WebHob / Webhob / webhob is now [[Toaster]].
 
This page contains information on the '''[[WebHob|Web Hob]]''' design project we ran with the London-based agency [http://www.tobiasandtobias.com/ Tobias & Tobias] between January and March 2013.
 
General discussion about '''Web Hob''' happens on a dedicated mailing list: [https://lists.yoctoproject.org/listinfo/webhob https://lists.yoctoproject.org/listinfo/webhob]


<br>
<br>


== Design ==
== Introduction ==
 
Web Hob is a web-based interface to the Yocto Project. The agency Tobias & Tobias were hired to start the interface design process, following a previous strategy engagement that established priorities and a high level plan for the Web Hob project.
 
The design work happened between January and March 2013 and was structured like this:
 
* 3 design iterations
* 2 rounds of user feedback
 
[[#Final deliverables|The final deliverables]] would be a set of static wireframes, a web-based prototype and a visual design framework.
 
== Scope ==
 
The strategy engagement identified 8 stages for the Web Hob project. The 3-month design work would cover the first 3 stages.
 
=== Stage 1 ===
 
Create the first iteration of Web Hob, a read-only application that is limited to carrying out build metrics and forensics.
 
=== Stage 2 ===
 
Implement the second core capability of Web Hob for the first time - the build specification and creation process. Along with build metrics this will undergo continuous improvement throughout Web Hob's lifetime. Also implement support for multi-user operation, supporting the [[Web Hob Contexts|Team Web Hob context]].
 
=== Stage 3 ===
 
Improve the two core capabilities, making them more powerful and more robust. At the end of this stage these core Web Hob features should be mature enough that it is ready to be deployed on [[Web Hob Contexts#3._Public_Web_Hob|publicly available infrastructure]].
 
=== Scenarios included in stages 1 to 3 ===
 
* Show Build Metrics
** Identify image
** Define scope of analysis
** Run analysis of image
** View analysis overview
* Finding / Viewing Builds
** View list of projects/builds
* Install Single-User Web Hob
** Check prerequisites
** Download/git clone Web Hob
** Install single-user option
* Create build
** Set up project
** Choose hardware
** Set preferences
** Specify layer(s)
** Specify base image and packages
** Run build
* Install Web Hob server
** Configure team servers
** Select team options and configure
* Error messaging
** View error logs
 
=== What we really covered ===
 
The project plan turned out to be over optimistic. Of the above scenarios, the 2 installation ones (Install single-user option and Install Web Hob server) were never covered.
 
We, however, introduced an additional scenario about file access.
 
== Final deliverables ==
 
Wireframes: [[File:Final_wireframes_candidate_v1.1.pdf]]
 
[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/Design%20project%202%20-%20TT/phase3_final_prototype_with_dots/index.html Static prototypes]
 
[http://www.yoctoproject.org/webhob/phase3_final_web_prototype/dashboard.html Web-based prototype]
 
[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/tree/Design%20project%202%20-%20TT/visual_design_psd Visual design (Photoshop files)]
 
== Intermediate deliverables ==
 
=== Wireframes ===


==== Latest Files ====
* [[File:Wireframes-Stage_1-INT-002-0.10.pdf]] — Final Stage I Wireframes (bright blue links, buttons, etc. are clickable)
* [[File:Prototype-Stage_2-File_Browsing_&_Visualisation-INT-002-0.15.pdf]] — FIle browsing & build analysis prototype for Stage II (bright blue links, buttons, etc. are clickable)
* [[File:Wireframes-Stage_2&3_review-INT-002-0.18.pdf]] — Interim wireframes incorporating Stage II & III feedback (bright blue links, buttons, etc. are clickable)
* [[File:User_Test_1_Findings-INT-002.pdf‎|User Test Findings, Round 1]] — Summary of feedback gathered on the Stage I designs
* [[File:Wireframes-Stage_1-INT-002-0.10.pdf|Wireframes 0.10]] — Final Stage I Wireframes (bright blue links, buttons, etc. are clickable)
* [[File:Web_Hob_content_structure.pdf|Web Hob content structure]] — An outline of the structure of the Web Hob application
<br>
[https://wiki.yoctoproject.org/wiki/Web_UI#Old_Files older files]


==== Prototype Index ====
=== Static prototypes index ===


{|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0"
{|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0"
! style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"| Design phase
! style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"| Iteration
! style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"| Iteration
! style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"| Version
! style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"| Stage
! style="align: left; border-style: solid; border-width: 0 1px 1px 0; padding: 0 5px;"| Scope
! style="align: left; border-style: solid; border-width: 0 1px 1px 0; padding: 0 5px;"| Scope
! style="align: left; border-style: solid; border-width: 0 1px 1px 0; padding: 0 5px;"| Link
! style="align: left; border-style: solid; border-width: 0 1px 1px 0; padding: 0 5px;"| Link
Line 25: Line 96:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|I,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Build analysis
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Build analysis
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase1-iteration1-prototype/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase1-iteration1-prototype/index.html prototype]
Line 30: Line 102:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration1-projects-builds/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration1-projects-builds/index.html prototype]
Line 35: Line 108:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration2-projects-builds/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration2-projects-builds/index.html prototype]
Line 40: Line 114:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|3
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|3
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|Projects and builds
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration3-projects-builds/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration3-projects-builds/index.html prototype]
Line 45: Line 120:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|File browsing and multi-user
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|File browsing and multi-user
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration1-fileBrowsing-multiuser/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration1-fileBrowsing-multiuser/index.html prototype]
Line 50: Line 126:
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|I,II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|File browsing and build analysis
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|File browsing and build analysis
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration2-filebrowsing-buildanalysis/index.html prototype]
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration2-filebrowsing-buildanalysis/index.html prototype]
|-
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|4
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|I,II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|All scenarios
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration4-allscenarios/index.html prototype]
|-
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|2
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|5
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|I,II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|All scenarios
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase2-iteration5-allscenarios/index.html prototype]
|-
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|3
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|1
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|I,II,III
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|All scenarios
|style="border-style: solid; border-width: 0 1px 1px 0; align: left; padding: 0 5px;"|[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/Design%20project%202%20-%20TT/phase3_final_prototype/index.html prototype]
|}
|}
<br>
<br>


=== Stage II & III ===
* <strong>Iteration</strong> is the design round during which the prototype was produced. There were 3 design iterations in this project.


==== Scenarios Covered ====
* <strong>Version</strong> indicates how many variations of each prototype we created as part of the design process.
* Create Build 
 
** Set up Project 
* <strong>Stage</strong> refers to the Web Hob stages identified by Tobias & Tobias and described in the [[#Scope]] section.
** Choose Hardware
 
** Set Preferences 
* <strong>Scope</strong> indicates, at a high level, which scenarios are addressed by the prototype.
** Specify Layer(s)
 
** Specify base image and package(s)
* <strong>Link</strong> to the Yocto Project git repository where the prototype is hosted.
** Run Build
 
* Install Web Hob Server
=== Other interaction design documents ===
** Configure team servers 
 
** Select team options and configure
* [[File:Web_Hob_content_structure.pdf]] — Web Hob information architecture
* Error Messaging 
* [[File:Multiuser_support_in_Web_Hob.pdf]] - Design approach to multi user workflows in Web Hob
** View error logs
 
* Refine scenarios from Stage I
=== User feedback ===


* [[File:User_Test_1_Findings-INT-002.pdf]] — Summary of feedback gathered on the iteration I designs
* [[File:User_Test_2_Findings-INT-002.pdf]] - Summary of feedback gathered on iteration II designs


====Schedule ====
=== Visual design ===


* '''4 Feb 2013''' — Workshop
Visual design work by Tobias & Tobias started at the beginning of March. They agreed to deliver a set of GUI components and 3 screen mockups:
* '''8 Feb''' — 1st review
* '''12–14 Feb''' — User testing
* '''15 Feb''' — User testing review
* '''20 Feb''' — 2nd review
* '''22 Feb''' — Final review


<br>
* My activity dashboard
----
* Build dashboard
<br>
* Package information


=== Stage I ===
The thumbnails below show the visual design work as it was delivered over time. I've grouped them by page, so that it's easier to see how they evolved.


==== Scenarios Covered ====
Final versions were delivered on Friday, 22nd March 2013. This is the agency's final piece of work: it doesn't mean it will be the design we will implement. Changes might come based on community feedback.


* Show Build Metrics (minimal)
===== My activity dashboard =====
** Identify image (minimal)
** Define scope of analysis (minimal)
** Run analysis of image (minimal)
** View analysis overview (minimal)
* Finding/Viewing Builds (minimal)
**View list of projects/builds (minimal)
* Install Single-User Web Hob (minimal)
** Check prerequisites (minimal)
** Download/git clone Web Hob (minimal)
** Install single-user option (minimal)


<gallery>
File:INT-002-Yocto-Dashboard-v0.10.png|Final
File:INT-002-Yocto-Dashboard-v0.9.png | 22 Mar
File:INT-002-Yocto-Dashboard-v0.8.png | 21 Mar
File:INT-002_-_Yocto_-_Dashboard_-_v0.7.png| 8 Mar
File:Yocto_light_01.png | 4 Mar - light
File: Yocto_dark_01.png | 4 Mar - dark
</gallery>


====Schedule ====
===== Build dashboard =====


* '''11 Jan 2013''' — Kickoff
<gallery>
* '''14 Jan''' — Workshop
File:INT-002-Yocto-Build_Dashboard-v0.10.png|Final
* '''18 Jan''' — 1st review
File:INT-002-Yocto-Build_Dashboard-v0.9.png | 22 Mar
* '''22–24 Jan''' — User testing
File:INT-002-Yocto-Build_Dashboard-v0.8.png | 21 Mar
* '''25 Jan''' — User testing review
File:INT-002_-_Yocto_-_Build_Dashboard_-_v0.7.png| 8 Mar
* '''30 Jan''' — 2nd review
File:Yocto-02.png | 6 Mar
* '''1 Feb''' — Final review
File:Yocto-01.png | 6 Mar
File:Yocto_light_02.png | 4 Mar - light
File:Yocto_dark_02.png | 4 Mar- dark
</gallery>


<br>
===== Package information =====


===Old Files===
<gallery>
File:INT-002-Yocto-Build_Packages-v0.10.png|Final
File:INT-002-Yocto-Build_Packages-v0.9.png | 22 Mar
File:INT-002-Yocto-Build_Packages-v0.8.png | 21 Mar
File:INT-002_-_Yocto_-_Build_Packages_-_v0.7.png | 8 Mar
</gallery>


* [[File:Wireframes-Stage_1-INT-002-0.6.pdf|Wireframes 0.7]]
===== GUI controls =====
* [http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/plain/phase1-iteration1-prototype/index.html Prototype 0.2]


<br>
<gallery>
----
File:INT-002-Yocto-UI-v0.9.png|Final
<br>
File:INT-002_-_Yocto_-_UI_Web_Kit_-_v0.7.png | 8 Mar
</gallery>


=== Previous Versions ===
== Other Web Hob work ==


* [http://git.yoctoproject.org/cgit/cgit.cgi/yocto-webhob-design/ Prototype 1.0]
* [[Web Hob]] - the main page for the Web Hob project
* [[Yocto_Web_Hob_Design_0.0_—_Archived|WebHob Design — Archived]] - Design and documentation for the first Web Hob project, now superseded by the above.
* [[Yocto_Web_Hob_Design_0.0_—_Archived|WebHob Design — Archived]] - Design and documentation for the first Web Hob project, now superseded by the above.
* Web UI 0.1: [[File:HOB_WEB_architecture_overview_v0_1.pdf]] (deprecated)
* Web UI 0.1: [[File:HOB_WEB_architecture_overview_v0_1.pdf]] (deprecated)

Latest revision as of 13:18, 15 October 2013


The project formely known as Web Hob / WebHob / Webhob / webhob is now Toaster.

This page contains information on the Web Hob design project we ran with the London-based agency Tobias & Tobias between January and March 2013.

General discussion about Web Hob happens on a dedicated mailing list: https://lists.yoctoproject.org/listinfo/webhob


Introduction

Web Hob is a web-based interface to the Yocto Project. The agency Tobias & Tobias were hired to start the interface design process, following a previous strategy engagement that established priorities and a high level plan for the Web Hob project.

The design work happened between January and March 2013 and was structured like this:

  • 3 design iterations
  • 2 rounds of user feedback

The final deliverables would be a set of static wireframes, a web-based prototype and a visual design framework.

Scope

The strategy engagement identified 8 stages for the Web Hob project. The 3-month design work would cover the first 3 stages.

Stage 1

Create the first iteration of Web Hob, a read-only application that is limited to carrying out build metrics and forensics.

Stage 2

Implement the second core capability of Web Hob for the first time - the build specification and creation process. Along with build metrics this will undergo continuous improvement throughout Web Hob's lifetime. Also implement support for multi-user operation, supporting the Team Web Hob context.

Stage 3

Improve the two core capabilities, making them more powerful and more robust. At the end of this stage these core Web Hob features should be mature enough that it is ready to be deployed on publicly available infrastructure.

Scenarios included in stages 1 to 3

  • Show Build Metrics
    • Identify image
    • Define scope of analysis
    • Run analysis of image
    • View analysis overview
  • Finding / Viewing Builds
    • View list of projects/builds
  • Install Single-User Web Hob
    • Check prerequisites
    • Download/git clone Web Hob
    • Install single-user option
  • Create build
    • Set up project
    • Choose hardware
    • Set preferences
    • Specify layer(s)
    • Specify base image and packages
    • Run build
  • Install Web Hob server
    • Configure team servers
    • Select team options and configure
  • Error messaging
    • View error logs

What we really covered

The project plan turned out to be over optimistic. Of the above scenarios, the 2 installation ones (Install single-user option and Install Web Hob server) were never covered.

We, however, introduced an additional scenario about file access.

Final deliverables

Wireframes: File:Final wireframes candidate v1.1.pdf

Static prototypes

Web-based prototype

Visual design (Photoshop files)

Intermediate deliverables

Wireframes

Static prototypes index

Iteration Version Stage Scope Link
1 1 I,III Build analysis prototype
2 1 II,III Projects and builds prototype
2 2 II,III Projects and builds prototype
2 3 II,III Projects and builds prototype
2 1 II,III File browsing and multi-user prototype
2 2 I,II,III File browsing and build analysis prototype
2 4 I,II,III All scenarios prototype
2 5 I,II,III All scenarios prototype
3 1 I,II,III All scenarios prototype


  • Iteration is the design round during which the prototype was produced. There were 3 design iterations in this project.
  • Version indicates how many variations of each prototype we created as part of the design process.
  • Stage refers to the Web Hob stages identified by Tobias & Tobias and described in the #Scope section.
  • Scope indicates, at a high level, which scenarios are addressed by the prototype.
  • Link to the Yocto Project git repository where the prototype is hosted.

Other interaction design documents

User feedback

Visual design

Visual design work by Tobias & Tobias started at the beginning of March. They agreed to deliver a set of GUI components and 3 screen mockups:

  • My activity dashboard
  • Build dashboard
  • Package information

The thumbnails below show the visual design work as it was delivered over time. I've grouped them by page, so that it's easier to see how they evolved.

Final versions were delivered on Friday, 22nd March 2013. This is the agency's final piece of work: it doesn't mean it will be the design we will implement. Changes might come based on community feedback.

My activity dashboard
Build dashboard
Package information
GUI controls

Other Web Hob work