logo logo
Design: Sections

The Securepub site is organized into two kinds of sections:

  • documentation sections which describe it
  • application sections which provide functionality

Each section is numbered as shown below to make it easy to identify and locate in Securepub's source code repository. For example the content for the "welcome" section is kept in the folder src/01.welcome

     documentation                         application
       sections                             sections
┌─────────┴─────────┐  ┌────────────────────────┴──────────────────────────┐

  01. welcome            10. create      20. bundlelist    40. memberlist
  02. how-it-works       11. profile     21. bundle        41. member
  03. design
  04. development        60. join        30. topiclist
  05. deployment         61. signin      31. topic
  06. about                              32. review
  07. licenses

All URL paths of pages in these sections begin with a Securepub release prefix:

   /_v1.2401_/
/XX/_v1.2401_/

where XX represents a two character ISO 639-1 ↗︎ language code. The relevant section name follows the release prefix. For example, pages in the design section have URL paths starting with

   /_v1.2401_/design/
/XX/_v1.2401_/design/

Documentation Sections

The documentation sections explain various aspects of Securepub:

    1. Welcome
      Explain Securepub's purpose and why someone would use it.

    2. How it works
      Explains Securepub's core concepts and how they relate to each other.

    3. Design
      Securepub's requirements, design decisions, architecture and components.

    4. Development
      What developers need to know to work on it.

    5. Deployment
      Where and how Securepub is deployed.

    6. About
      About the Securepub project and people.

    7. License
      Securepub's license and the licenses of third-party components it uses.

Application Sections

The pages in the application sections are organized based on the nature of information they manage and the role they play. The numbering of the sections roughly follows the order the section would be used by the host or guest. E.g. the "create" section comes first because the others aren't relevant until after the engagement is created, followed by the "profile" section because after they create an engagement a host must add their profile and so forth.

    1. Create
      Allows a host to create a new engagement.

    2. Profile
      Allows members to manage their profile and change their Userbase credentials.
      Allows members to accept their Securepub invitation.

    1. Bundle List
      Allows the host to view the list of all the bundles they've added.
      Allows other members to list all the bundles the host has shared with them.

    2. Bundle
      Allows members to examine a bundle and exchange comments on it with the host.
      Allows the host to add a new bundle and specify the members it's shared with.
      Allows the host to modify a bundle and/or share and comment on it with members.
      Allows members to download unrestricted bundles shared with them.
      Allows accepted members to download restricted bundles shared with them.

    1. Topic List
      Allows members to view the list of topics shared with them.
      Allows accepted members to add new topics.

    2. Topic
      Allows members to review the content of a topic.
      Allows accepted members to read and add comments on a topic.
      Allows accepted members to create new topics and specify required bundles.
      Allows the topic creator to share the topic with other members.

    3. Review
      Pages in this section allow the Topic pages to safely serve content
      reviewed in the preview iframe or new browser tab from a separate origin.

    1. Member List
      Allows members to view the list of members in the engagement.
      Allows the host to view invitation links of members.

    2. Member
      Allows members to view the profile of a member.
      Allows members to edit a private note they've made about a member.
      Allows accepted members to share their topics with other members.
      Allows the host to add a member to the engagement with an initial profile.
      Allows the host to specify bundles shared with the new member.

    1. Join
      Allows a member to join an engagement with their invitation link.

    2. Sign In
      Allows a member who has changed their Userbase credentials to sign in.

Application Site Map

The following diagram shows most of the navigational paths between the application sections. Some paths may only be taken by the host or by members after they have satisified related preconditions.

        invitation link                               securepub
       or securepub menu                                menu
            │                                            │
            │                                            │
            ▼       link                                 ▼
         60. /join  pw       61. /signin            10. /create/have
         ┏━━━━━━┓   failed   ┏━━━━━━━━┓             ┏━━━━━━━━┓
         ┃ join ┃ ─────────▶ ┃ signin ┃ ◀┐          ┃ create ┃
         ┗━━━━━━┛            ┗━━━━━━━━┛  │ fail     ┗━━━━━━━━┛
            │ │ host            │   └────┘               │ proceed
            │ │ without         │                        │
            │ │ profile         │                        ▼
            │ │                 │                   11. /profile/add
            │ │                 │                   ┏━━━━━━━━━━━━━┓
            │ └───────────────────────────────────▶ ┃ add profile ┃
            │                   │           ┌────── ┗━━━━━━━━━━━━━┛
            │ link pw           │           │            │ update
            │ worked            │           │            │
            ▼                   │           │            ▼
         30. /topiclist         │           │       11. /profile/update
         ┏━━━━━━━━┓ ◀───────────┘◀──────────┘       ┏━━━━━━━━━┓
  ┌────▶ ┃ topics ┃ ◀─────────────────────────────▶ ┃ profile ┃ ◀┐
  │ menu ┗━━━━━━━━┛─────────────┐                   ┗━━━━━━━━━┛  │ update
  │           │ details         │ add                       └────┘
  │           │                 │
  │           ▼                 ▼
  │      31. /topic/#n     31. /topic/add
  │      ┏━━━━━━━━┓         ┏━━━━━━━━━━━┓
  │  ┌─▶ ┃ topic  ┃◀────────┃ add topic ┃
  │  │   ┗━━━━━━━━┛         ┗━━━━━━━━━━━┛
  │  └────┘
  │  update
  │
  │
  │      20. /bundlelist
  │      ┏━━━━━━━━━┓
  ├────▶ ┃ bundles ┃────────────┐
  │ menu ┗━━━━━━━━━┛            │
  │           │ details         │ add
  │           │                 │
  │           ▼                 ▼
  │      21. /bundle/#n    21. /bundle/add
  │      ┏━━━━━━━━┓         ┏━━━━━━━━━━━━┓
  │  ┌─▶ ┃ bundle ┃◀────────┃ add bundle ┃
  │  │   ┗━━━━━━━━┛         ┗━━━━━━━━━━━━┛
  │  └────┘
  │  update
  │
  │
  │      40. /memberlist
  │      ┏━━━━━━━━━┓
  └────▶ ┃ members ┃────────────┐
   menu  ┗━━━━━━━━━┛            │
              │ details         │ add
              │                 │
              ▼                 ▼
         41. /member/#n    41. /member/add
         ┏━━━━━━━━┓         ┏━━━━━━━━━━━━┓
     ┌─▶ ┃ member ┃◀────────┃ add member ┃
     │   ┗━━━━━━━━┛         ┗━━━━━━━━━━━━┛
     └────┘
     update