Content
View differences
Updated by Parimal Satyal over 2 years ago
**As** a project member
**I want to** build meeting agendas, add invitees and document important information and decisions
**so that** our meetings are more efficient and key information is documented and easy to find.
### Note
These define the functional scope (the what) of the feature and do not yet go into the specifics of _how_ different parts will be implemented. Once this feature is set to specified, UX and Front-end will co-create the UI/UX of the feature using existing Primer ViewComponents as much as possible.
### Acceptance criteria
A new Meetings module (based on Primer) will replace the existing one:
* **A meeting consists of meeting details, agenda items and invitees.**
* **Meeting details are:**
* Title of the meeting (required)
* Date (required)
* Time (required)
* Duration
* Duration is marked in red if the set duration is longer than the sum of the duration of agenda items
* We indicate the "exceeded time" with a "+ {minutes}"
* Duration is used to derive meeting finish time
* Location
* **\[open\] Invitees** can have one of three roles (note: link with Klaus' work on roles/permissions)
* **moderator** (no limitation on #)
* author is by default a moderator or
* any participant designated as such by a moderator
* **participant**
* invitees
* **viewer**
* everyone else in the project who is not a moderator or participant
* **Meeting participants can have one of three roles:** administrator, participant, viewer:
* Details:
###49334
* A meeting can of one of two statuses:
* **Open** (default state, name potentially unrequired)
* All actions possible (based on available permissions)
* **Closed**
* Meeting becomes read-only except for users with "Close/re-open agenda items" permission
* The "Edit meeting title", "Edit meeting details" and "Add participants" actions are no longer available
* ~~**Sections (optional)**~~
* ~~Group of agenda items~~
### Meetings index page
The current meetings index page in a project will be updated to accommodate the new Meetings module alongside the existing one.
* The newer Primer-based meetings will be referred to as "Dynamic" meetings. Meetings created in the old style will be referred to as "Classic" meetings
* A new "Type" column will be added to the index to indicate if a meeting is:
* Dynamic or
* Classic
* The "+ Meeting" (create meeting) action will offer the user a choice between a dynamic (default) or classic meeting.
* \[open\] Do we still allow users to create classic meetings, or just access existing ones?
### Agenda items
* Meetings consist of agenda items, which consist of:
* Title (required)
* An indication of the user who added the agenda item (non-editable)
* Duration (optional field)
* Integer field, in minutes
* _Risk: if some agenda items have duration and others don't; the total duration will be misleading since some items will have a duration of zero_
* The information is hidden if no duration is input
* This is in red if the duration of _this_ item goes beyond the set meeting duration
* Description:
* Text area: CKEditor
* _~~restrictive? with basic bold, italic, maybe links... maybe no tables or images?~~_
* The meeting title can also be replaced with a work package:
* The "Add" action gives users a choice between:
* Agenda item
* Work package
* If a work package is selected:
* The title input field becomes an autocomplete keyword search field, and typing keywords displays results in an overlay
* The user can select the corresponding work package.
* _\[open\] Power user: Typing "#" in the title field selects work package._
* _\[open\] OG: Work package search thing we have is Angular, we have to see how to make it work with Primer._
* _\[open\] If the selected work package already has unresolved open points:_
* _Ask the user to select which ones (if any) they would like to add to the meeting_
* _The selected ones will be added to that agenda item (references those items)_
* _In the "Open Points" tab of the work package, those points that have been added to the meeting, will show this relation_
* _An open point added to this agenda item (refering a work package), will then also be added to the "Open Points" tab of that work package_
* The title is now replaced with the work package details (id, subject, type, status)
* Clicking on the work package title opens it in a new tab.
* ~~Users should be able to "remove" the work package by selecting a basic title field instead in Edit mode.~~
* ~~The title is empty (to make it absolutely clear that there's no connection to the WP).~~
* Functionally, other agenda elements (duration, ~~responsible,~~ description) are unrelated to the work package and do not affect it.
* Open points are the only exception, see ###49578
**Agenda items have two states, display and edit:**
* _In display state_, agenda details cannot be edited but moderators can drag them up and down to change the order (mode allowing).
* _In edit state_, these fields are visible:
* Title (text field, typing # turns it into a search field)
* Duration in minutes (integer)
* "+ Notes"
* Clicking this makes a CKEditor text area visible with label "Notes"
* Cancel button (secondary)
* Save button (primary)
* ~~Responsible (user search)~~
* ~~Buttons to add an open point, and a remove button once each is added:~~
* ~~This can be an "Open point" or a "Resolved open point" when resolved~~
* ~~(Define what an open point in an agenda item looks like)~~
### **Mobile**
* The module has to be responsive. Viewing meetings is a priority on mobile.
* In mobile mode, the module is single column.
* \[open\] Meeting details and status go above the agenda items, but list of invitees go below.
### **Export/integrations**
* iCal download (not sync, download .ics file)
* Print (browser)
* \[open\] How does Primer deal with this?
### **Journalising:**
* Modifications to a meeting are journalised (can be in the background, not visible to the user)
* ~~There is a link to view meeting journal history~~
### **Email notifications:**
* Send email notifications
* When someone is invited (send iCal immediately)
* When meeting dates change (send .ics again)
* When meeting status changes
* When meeting is sent to invitees manually
* Offer an "Email all participants" action
* Sends meeting agenda to all invitees via email
### Open
* How should we handle migration and old meetings?
* \[Decision:\] Old meetings will be preserved as is and will live alongside the newer Primer meetings.
### Out of scope
This first version of the new Meetings module for version 13.1 will not include:
* Duration derived from the duration of agenda items
* Open points The ability to add clarification needs and decisions are specified in a separate feature:
* ###49578
* Extensions to the agenda items:
* Notes
* Required participants for this agenda item
* Meeting invitees:
* Add items to the backlog for the editors to add/remove
* Commenting and emoji reactions and comment
* Comment threads
* Sections
* Designate a person responsible?
* Add duration
* Create Follow-up item: within a meeting, when someone identifies to-dos and tasks, be able to create a work packages package (or to-do) directly from an agenda item
* Agenda backlog (a set of agenda items that are "parked" and do not show up in the actual meeting, simliar to drafts)
* Send existing agenda item to backlog
* Send backlog item to agenda
* Open linked _\[open\] Clicking on the work package opens the work package in a split scree_n._ screen._
* _In the short term, would require having Angular code._
* _In the long term, Primer offers overlays that slide in from the right side that we could potentially use for this._
* Move existing agenda item to another meeting
* Meeting series (recurring)
* Web conference tool
* In-app notifications:
* Out of scope:
* Invited to a meeting
* Meeting modified
* Meeting status changed
* Meeting rescheduled
* _Note: right now Notifs limited to work packages (so possible to show meetings objects linked to WPs)_
* iCal sync integration
* Decision and issues log log?
* Ways to be able to show relevant meetings from work packages.
* Later, possible to show and filter through decisions/clarification needs?
* Meeting modes ~~Four statuses:~~
* ~~**Draft agenda** (default for new meetings):~~
* ~~Moderators can edit and statuses modify meetings details, add invitees and construct the meeting agenda by adding agenda items. They can also rearrange agenda items by dragging them up or down.~~
* ~~Participants can only add or modify their own agenda items.~~
* ~~Viewers (non invitees) cannot see the meeting yet (?)~~
* ###49334
Some of these will be addressed ~~**Finalised agenda**: a moderator sets the mode to finalised to lock the agenda before a meeting.~~
* ~~Moderators can change state to draft to change the actual agenda; participants cannot do this.~~
* ~~Moderators can change meeting details (name, time, date...) and add/remove invitees.~~
* ~~Participants can add (but not remove?) invitees.~~
* ~~Viewers can now view the meeting in read-only mode.~~
* ~~**Meeting in Progress**: a later iteration moderator sets the mode to In Progress when the meeting actually takes place.~~
* ~~Moderators can once again modify agenda items own items and will be described in this epic:
###50689 add/remove additional items to agenda items (clarificatoin need or decision).~~
* ~~Participants can only modify or add/remove additional items to their~~ _~~own~~_ ~~items.~~
* ~~Viewers can view only.~~
* ~~**Meeting closed**~~
* ~~Read-only for everyone but~~
* ~~Moderators can change status to any of the above~~
### Mockup
**Figma link:**
https://www.figma.com/file/cJDhzOmYMstUNRS3EmgqZ0/Meeting-Module-co-creation?type=design&node-id=0-1&mode=design
# User Problem
## User
* Project manager
* Project member
* Meeting moderator
* Meeting member
## Problem
* Tasks and issues are tracking in the work packages module.
* Meeting agendas and meeting minutes are tracked in the meetings module.
* In project meetings very often open issues are discussed.
## Pain
* The information needs to be tracked in two modules. This leads to extra work and outdated information.
# Business Case
## Solution
* It is possible to create relations between meeting agendas/meeting minutes and work packages/work package comments.
* This link is visible and and editable in both modules.
* It is possible to change work package comments. Changes in comments are journalized.
* Meeting agenda preparation
* It is possible to order topics in the meeting agendas/minutes by drag and drop.
* Topics have an allocated time.
* Based on the start date of the meeting, the allocated time and the order of the meeting items the expected start is derived.
* Meeting agendas and meeting minutes that include work package content are "freezed". This means that changes in work packages do not change the meeting minutes.
## Out of Scope for the MVC
* Printing (usual browser print)
* Calendar integration (iCalendar).
* Showing meetings in the Gantt chart/calendar.
* Recurring meetings.
## Differentiation
* There is no other tool that connects operations issue tracking with tool based meeting management.
## Next iteration
* "Auf Wiedervorlage".
* Integrationen mit Kalender-Applikationen
# Launch and Growth
## Measures
* Created meetings per user and projects.
## Messaging
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p">Create meeting agendas and meeting minutes based on work package comments.</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">You can now add a work package to a meeting agenda by adding a comment to the work package. So all information to make a decision is accessible in one place. So there is no need to add information in two different places. </p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p">In the past I had to manually create a meeting agenda. So I had to ask the project team to put their open issues on the agenda. After a meeting I had to also add the decision to those issues. With the integration I save a lot of time. And more importantly: It adds a lot of transpareny and control.</p></td></tr></tbody></table></figure>
## Go to market
_How are you planning on getting this into users' hands?_
**I want to** build meeting agendas, add invitees and document important information and decisions
**so that** our meetings are more efficient and key information is documented and easy to find.
### Note
These define the functional scope (the what) of the feature and do not yet go into the specifics of _how_ different parts will be implemented. Once this feature is set to specified, UX and Front-end will co-create the UI/UX of the feature using existing Primer ViewComponents as much as possible.
### Acceptance criteria
A new Meetings module (based on Primer) will replace the existing one:
* **A meeting consists of meeting details, agenda items and invitees.**
* **Meeting details are:**
* Title of the meeting (required)
* Date (required)
* Time (required)
* Duration
* Duration is marked in red if the set duration is longer than the sum of the duration of agenda items
* We indicate the "exceeded time" with a "+ {minutes}"
* Duration is used to derive meeting finish time
* Location
* **\[open\] Invitees** can have one of three roles (note: link with Klaus' work on roles/permissions)
* **moderator** (no limitation on #)
* author is by default a moderator or
* any participant designated as such by a moderator
* **participant**
* invitees
* **viewer**
* everyone else in the project who is not a moderator or participant
* **Meeting participants can have one of three roles:** administrator, participant, viewer:
* Details:
###49334
* A meeting can of one of two statuses:
* **Open** (default state, name potentially unrequired)
* All actions possible (based on available permissions)
* **Closed**
* Meeting becomes read-only except for users with "Close/re-open agenda items" permission
* The "Edit meeting title", "Edit meeting details" and "Add participants" actions are no longer available
* ~~**Sections (optional)**~~
* ~~Group of agenda items~~
### Meetings index page
The current meetings index page in a project will be updated to accommodate the new Meetings module alongside the existing one.
* The newer Primer-based meetings will be referred to as "Dynamic" meetings. Meetings created in the old style will be referred to as "Classic" meetings
* A new "Type" column will be added to the index to indicate if a meeting is:
* Dynamic or
* Classic
* The "+ Meeting" (create meeting) action will offer the user a choice between a dynamic (default) or classic meeting.
* \[open\] Do we still allow users to create classic meetings, or just access existing ones?
### Agenda items
* Meetings consist of agenda items, which consist of:
* Title (required)
* An indication of the user who added the agenda item (non-editable)
* Duration (optional field)
* Integer field, in minutes
* _Risk: if some agenda items have duration and others don't; the total duration will be misleading since some items will have a duration of zero_
* The information is hidden if no duration is input
* This is in red if the duration of _this_ item goes beyond the set meeting duration
* Description:
* Text area: CKEditor
* _~~restrictive? with basic bold, italic, maybe links... maybe no tables or images?~~_
* The meeting title can also be replaced with a work package:
* The "Add" action gives users a choice between:
* Agenda item
* Work package
* If a work package is selected:
* The title input field becomes an autocomplete keyword search field, and typing keywords displays results in an overlay
* The user can select the corresponding work package.
* _\[open\] Power user: Typing "#" in the title field selects work package._
* _\[open\] OG: Work package search thing we have is Angular, we have to see how to make it work with Primer._
* _\[open\] If the selected work package already has unresolved open points:_
* _Ask the user to select which ones (if any) they would like to add to the meeting_
* _The selected ones will be added to that agenda item (references those items)_
* _In the "Open Points" tab of the work package, those points that have been added to the meeting, will show this relation_
* _An open point added to this agenda item (refering a work package), will then also be added to the "Open Points" tab of that work package_
* The title is now replaced with the work package details (id, subject, type, status)
* Clicking on the work package title opens it in a new tab.
* ~~Users should be able to "remove" the work package by selecting a basic title field instead in Edit mode.~~
* ~~The title is empty (to make it absolutely clear that there's no connection to the WP).~~
* Functionally, other agenda elements (duration, ~~responsible,~~ description) are unrelated to the work package and do not affect it.
* Open points are the only exception, see ###49578
**Agenda items have two states, display and edit:**
* _In display state_, agenda details cannot be edited but moderators can drag them up and down to change the order (mode allowing).
* _In edit state_, these fields are visible:
* Title (text field, typing # turns it into a search field)
* Duration in minutes (integer)
* "+ Notes"
* Clicking this makes a CKEditor text area visible with label "Notes"
* Cancel button (secondary)
* Save button (primary)
* ~~Responsible (user search)~~
* ~~Buttons to add an open point, and a remove button once each is added:~~
* ~~This can be an "Open point" or a "Resolved open point" when resolved~~
* ~~(Define what an open point in an agenda item looks like)~~
### **Mobile**
* The module has to be responsive. Viewing meetings is a priority on mobile.
* In mobile mode, the module is single column.
* \[open\] Meeting details and status go above the agenda items, but list of invitees go below.
### **Export/integrations**
* iCal download (not sync, download .ics file)
* Print (browser)
* \[open\] How does Primer deal with this?
### **Journalising:**
* Modifications to a meeting are journalised (can be in the background, not visible to the user)
* ~~There is a link to view meeting journal history~~
### **Email notifications:**
* Send email notifications
* When someone is invited (send iCal immediately)
* When meeting dates change (send .ics again)
* When meeting status changes
* When meeting is sent to invitees manually
* Offer an "Email all participants" action
* Sends meeting agenda to all invitees via email
### Open
* How should we handle migration and old meetings?
* \[Decision:\] Old meetings will be preserved as is and will live alongside the newer Primer meetings.
### Out of scope
This first version of the new Meetings module for version 13.1 will not include:
* Duration derived from the duration of agenda items
* Open pointsÂ
* ###49578
*
* Notes
* Required participants for this agenda item
* Meeting invitees:
* Add items to the backlog for the editors to add/remove
*
* Comment
* Sections
* Designate a person responsible?
* Add duration
* Create
* Agenda backlog (a set of agenda items that are "parked" and do not show up in the actual meeting, simliar to drafts)
* Send existing agenda item to backlog
* Send backlog item to agenda
* Open linked
* _In the short term, would require having Angular code._
* _In the long term, Primer offers overlays that slide in from the right side that we could potentially use for this._
* Move existing agenda item to another meeting
* Meeting series (recurring)
*
*
* Out of scope:
* Invited to a meeting
* Meeting modified
* Meeting status changed
* Meeting rescheduled
* _Note: right now Notifs limited to work packages (so possible to show meetings objects linked to WPs)_
* iCal sync
* Decision and issues log
* Ways to be able to show relevant meetings from work packages.
* Later, possible to show and filter through decisions/clarification needs?
* Meeting modes
* ~~**Draft agenda** (default for new meetings):~~
* ~~Moderators can edit
* ~~Participants can only add or modify their own agenda items.~~
* ~~Viewers (non invitees) cannot see the meeting yet (?)~~
* ###49334
Some of these will be addressed
* ~~Moderators can change state to draft to change the actual agenda; participants cannot do this.~~
* ~~Moderators can change meeting details (name, time, date...) and add/remove invitees.~~
* ~~Participants can add (but not remove?) invitees.~~
* ~~Viewers can now view the meeting
* ~~**Meeting in Progress**:
* ~~Moderators can once again modify agenda items own items
###50689
* ~~Participants can only modify or add/remove additional items to their~~ _~~own~~_ ~~items.~~
* ~~Viewers can view only.~~
* ~~**Meeting closed**~~
* ~~Read-only for everyone but~~
* ~~Moderators can change status to any of the above~~
### Mockup
**Figma link:**
https://www.figma.com/file/cJDhzOmYMstUNRS3EmgqZ0/Meeting-Module-co-creation?type=design&node-id=0-1&mode=design
# User Problem
## User
* Project manager
* Project member
* Meeting moderator
* Meeting member
## Problem
* Tasks and issues are tracking in the work packages module.
* Meeting agendas and meeting minutes are tracked in the meetings module.
* In project meetings very often open issues are discussed.
## Pain
* The information needs to be tracked in two modules. This leads to extra work and outdated information.
# Business Case
## Solution
* It is possible to create relations between meeting agendas/meeting minutes and work packages/work package comments.
* This link is visible and and editable in both modules.
* It is possible to change work package comments. Changes in comments are journalized.
* Meeting agenda preparation
* It is possible to order topics in the meeting agendas/minutes by drag and drop.
* Topics have an allocated time.
* Based on the start date of the meeting, the allocated time and the order of the meeting items the expected start is derived.
* Meeting agendas and meeting minutes that include work package content are "freezed". This means that changes in work packages do not change the meeting minutes.
## Out of Scope for the MVC
* Printing (usual browser print)
* Calendar integration (iCalendar).
* Showing meetings in the Gantt chart/calendar.
* Recurring meetings.
## Differentiation
* There is no other tool that connects operations issue tracking with tool based meeting management.
## Next iteration
* "Auf Wiedervorlage".
* Integrationen mit Kalender-Applikationen
# Launch and Growth
## Measures
* Created meetings per user and projects.
## Messaging
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p">Create meeting agendas and meeting minutes based on work package comments.</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">You can now add a work package to a meeting agenda by adding a comment to the work package. So all information to make a decision is accessible in one place. So there is no need to add information in two different places. </p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p">In the past I had to manually create a meeting agenda. So I had to ask the project team to put their open issues on the agenda. After a meeting I had to also add the decision to those issues. With the integration I save a lot of time. And more importantly: It adds a lot of transpareny and control.</p></td></tr></tbody></table></figure>
## Go to market
_How are you planning on getting this into users' hands?_