Requirements

Business Requirements

NAT describes this system as a free decentralized co-working space across the city.

In an effort to encourage interactions between otherwise unrelated teams and individuals, NAT intends to allow teams to book physical spaces such as offices, desks, rooms, and the like.

In support of this objective, natPortal shall provide an interface to users registered with a project team. These users shall be capable of selecting timeslots to reserve a space in advance on behalf of their project team.

Staff appointed as “space managers” will receive and respond to these requests, communicating with users to arrange booking requests. NAT requests that booking times be overlapping with other nearby bookings, in an effort to encourage collaboration between multiple users.

Staff appointed as “location managers” serve as management to space managers, including acting as a substitute space manager when space managers are unavailable to perform their regular duties.

To verify that users are present at their designated bookings, natPortal shall allow users to record their presence at these booked spaces. In collaboration with natPass, these users must verify that they are present at these bookings by presenting a QR code of their UUID.

Persons not affiliated with the project team may also be present at the booking, and may scan their presence similarly with either natPortal’s identification, or with their LinkedIn profile QR code.

Software Requirements

We disambiguate the following terms:

  • “User”, as an abbreviation for “natPortal User” refers to a person with an user account on natPortal. This user may or may not be part of a team. For the purposes of this document, we assume that this user has some project or idea which NAT facilitiates in its capacity as an incubator.
  • “Manager” is an extension of the User which has privileges to directly modify, create, and delete bookings on natPortal. A manager is responsible for communicating with users requesting space bookings and utilizing natPortal to operate the booking system.
  • A hierarchy of managers exists. “Space managers” are responsible for staffing and managing a space, while “location managers” staff and manage the staffing of one or more spaces within a location.
  • “Team” and “Organization” may be used interchangably within this document. Team refers to a group of one or more persons. An organization similarly refers to one or more persons, usually with hierarchy within that group of persons.
  • “Space”, as an abbreviation to the term “co-working space”, will refer to some collection of one or more rooms, such as a conference room, desk space, presentation room, or the like, which may be tenably staffed by a single space manager (e.g. ICE, SIC, Edmonton Unlimited).
  • “Location”, as a broad term for a wider area in which a space exists, contains one or more spaces within it. Reference to the term “location” serves to abbreviate reference to some collection of spaces which may exist in close proximity, but distant enough that the management of these spaces require individual staffing in both spaces (e.g. UofA is a location with the spaces SIC, ICE).

Non-user persons looking for co-working spaces will find NAT’s Squarespace site first.

User stories

natPortal shall allow natPortal users to:

  • view bookings and their parties on all spaces, to encourage interest in other parties’ work sessions
  • modify their own bookings, so that users can reschedule or change details of their bookings, subsequently correcting information to other users of their presence in a space
  • book spaces in designated spaces on behalf of themselves or their team, so that a space can be reserved for their operations
  • communicate with the space manager to allocate available space, so that bookings of spaces can overlap between multiple parties
  • verify and view the current status of their reservations, so that users, including the group and persons without any affiliation with NAT may know where and when to meet
  • verify and record their attendance at their booking’s space, so that NAT can encourage and advertise the usage of its services

natPortal shall allow Space Managers to:

  • create bookings manually, so that non-natPortal users may consult for a booking through email through a Squarespace form
  • modify and delete all bookings, so that bookings are only shown when bookings can happen, and that bookings are only made when bookings can be facilitated through fulfilling the conditions of room availability and staffing. This also allows space managers to manually handle misuse of the booking system.
  • notify location managers of inability to staff a space, so that the location manager may arrange for staffing or staff the location themselves

natPortal shall allow Location managers to:

  • perform all duties of the Space Manager in their capacity as a substitute for the Space Manager, so that the Location Manager may fulfill the responsibilities of the Space Manager in contingencies where the Space Manager is unable to perform their regularly scheduled staffing
  • oversee all operations of the spaces within their designated location, so that the spaces can be verified to be fulfilling the requirements described in this document

System Design

For compatibility with the iCalendar standard and compatibility with the Google Suite, the backend will mainly rely on the Google Calendar API.

[1] Google Calendar API reference. https://developers.google.com/workspace/calendar/api/guides/overview