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 participants.** invitees.**
* **Meeting details are:**
* Title of the meeting (required)
* Date (required)
* Time (required)
* Duration (required)
* If Duration is marked in red if the set duration is longer than the sum of the duration of agenda items, items
* We indicate the excess time is indicated "exceeded time" with a "+ {minutes}"
* Duration is used to derive meeting finish time
* Location (optional)
* The actions available to meeting participants depends **\[open\] Invitees** can have one of three roles (note: link with Klaus' work on the permissions 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 relation to the Meetings module _(as set in Administration → Users and permissions → Roles and permissions)_
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** **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" and "Edit meetings" permissions permission
* The "Edit meeting title", "Edit meeting details" and "Add participants" actions are no longer available
* There is a "More" icon on the right edge of the title, with these options: ~~**Sections (optional)**~~
* **Edit meeting title**
* The title becomes an inline edit
* **Download iCalendar event**
* A static iCalendar file is available with meeting details (name, start/end time, location, organiser and a link to the meeting)
* **Send email to all participants**
* Sends an email with meeting details all participants (invitees and attendees)
* _\[open\] Perhaps we should rename this to: "Send email reminder to participants"?_
* **Delete meeting** (in red)
* A browser confirmation is required before deletion
* **Participants** are selected (as they were in the old Meetings module) in the create form
~~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 Create meeting form "+ Meeting" (create meeting) action will offer the user a choice between a dynamic (default) or classic meeting.
### Right pane
* The right pane (on desktop) consists of:
* **Meeting details**
* Title ("Meeting details")
* Date
* Time
* Duration (if it exists)
* Link (if it exists)
* **Status**
* Open (in green), with the text:
* "This meeting is open. You can add/remove agenda items and edit them as you please. After the meeting is over, close it \[open\] Do we still allow users to lock it."
* Closed (in grey), with the text:
* "This meeting is closed. You cannot add/remove agenda items anymore."
* A "Close meeting" create classic meetings, or "Re-open meeting" action depending on the state
* **Participants**
* Title ("Participants") with a counter next to it with the total amount of invitees and attendees (one person counts once)
* A list of the first 5 participants in alphabetical order
* If there are more than 5 participants, a "Show {n} more" link
* Clicking this will expand the list to show all participants
* An "Add participants" action
* This shows the just access existing participants feature (listing all project members, with two column of checkboxes for _Invited_ and _Attended_) in a Primer modal
* _Note: We are using an existing/old implementation that's not particularly in keeping with the overall modern, Hotwire-based design of the rest of the modal due to technical reasons._ ones?
### Agenda items
* Meetings consist of agenda items, which consist of:
* **Title** Title (required)
* **User** An indication of the user who added the agenda item (non-editable)
* **Duration** 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 Description:
* Text area: CKEditor). CKEditor
* _~~restrictive? with basic bold, italic, maybe links... maybe no tables or images?~~_
* **The The meeting title can also be replaced with a work package:** 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, notes) ~~responsible,~~ description) are unrelated to the work package and do not affect it.
* **Every agenda item as a "more actions" menu** (behind Open points are the three-dot _more_ button to the right of the user name) with these options:
* Edit
* Add notes
* Move to top _(unless already on top)_
* Move up _(unless already on top)_
* Move down _(unless already in the bottom)_
* Move to bottom _(unless already in the bottom)_
* Delete _(in red)_ only exception, see ###49578
**Agenda items have two states, display and edit:**
* _In display state_, agenda details cannot be edited but users with the necessarily edit permissions maybe moderators can drag them up and down to change the order. 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.
* I**n In mobile mode, the module is single column.**
column.
* The contents of the right side pane (meeting details, status, participants) \[open\] Meeting details and status go on top above the agenda items
* **Meeting status** is reduced to just one line:
* The status (Open/Closed) on the left edge
* The "Close/Re-open meeting" action on the right edge
* **The participants section** is removed and replaced with an item in the Meeting details section, with a "Show all" action
* {n} Participants [Show all](https://community.openproject.org/#)
* Clicking on the action will show the regular participants modal
* **Agenda item details** (title, user, duration) become multi-line:
* Regular items:
* Line 1: Title
* Line 2: User on the left edge, duration on the right edge
* Work package items:
* Line 1: Work package name
* Line 2: {Type} {id} {status}
* Line 2: User on the left edge, duration on the right edge 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 (include .ics as attachment)
* When meeting dates change (include .ics as attachment)
* ~~When meeting status changes~~
* When meeting is sent to invitees manually (include .ics as attachment)
* 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
* Commenting and emoji reactions and comment threads
* Sections
* Create work packages 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)
* Open linked work package in a split scree\_n.\_
* Move existing agenda item to another meeting
* Meeting series (recurring)
* In-app notifications:
* iCal sync
* Decision and issues log
* Meeting modes and statuses
* ###49334
Some of these will be addressed in a later iteration and will be described in this epic:
###50689
### 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.
###
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.
###
A new Meetings module (based on Primer) will replace the existing one:
* **A meeting consists of meeting details, agenda items and participants.**
* **Meeting details are:**
* Title of the meeting (required)
* Date (required)
* Time (required)
* Duration (required)
* If
* We indicate
* Duration is used to derive meeting finish time
* Location (optional)
* The actions available to meeting participants depends
* **moderator** (no limitation on #)
* author is by default a moderator or
* any participant designated as such by a moderator
* **participant**
* invitees
* **viewer**
* everyone else
* **Meeting participants can have one of three roles:** administrator, participant, viewer:
* Details:
* A meeting can of one of two statuses:
* **Open**
* All actions possible (based on available permissions)
* **Closed**
* Meeting becomes read-only except for users with "Close/re-open agenda items" and "Edit meetings" permissions
* The "Edit meeting title", "Edit meeting details" and "Add participants" actions are no longer available
* There is a "More" icon on the right edge of the title, with these options:
* **Edit meeting title**
* The title becomes an inline edit
* **Download iCalendar event**
* A static iCalendar file is available with meeting details (name, start/end time, location, organiser and a link to the meeting)
* **Send email to all participants**
* Sends an email with meeting details all participants (invitees and attendees)
* _\[open\] Perhaps we should rename this to: "Send email reminder to participants"?_
* **Delete meeting** (in red)
* A browser confirmation is required before deletion
* **Participants** are selected (as they were in the old Meetings module) in the create form
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 Create meeting form
### Right pane
* The right pane (on desktop) consists of:
* **Meeting details**
* Title ("Meeting details")
* Date
* Time
* Duration (if it exists)
* Link (if it exists)
* **Status**
* Open (in green), with the text:
* "This meeting is open. You can add/remove agenda items and edit them as you please. After the meeting is over, close it
* Closed (in grey), with the text:
* "This meeting is closed. You cannot add/remove agenda items anymore."
* A "Close meeting"
* **Participants**
* Title ("Participants") with a counter next to it with the total amount of invitees and attendees (one person counts once)
* A list of the first 5 participants in alphabetical order
* If there are more than 5 participants, a "Show {n} more" link
* Clicking this will expand the list to show all participants
* An "Add participants" action
* This shows the
* _Note: We are using an existing/old implementation that's not particularly in keeping with the overall modern, Hotwire-based design of the rest of the modal due to technical reasons._
### Agenda items
* Meetings consist of agenda items, which consist of:
* **Title**
* **User**
* **Duration**
* 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
* Text
* _~~restrictive? with basic bold, italic, maybe links... maybe no tables or images?~~_
* **The
* 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._
*
* _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_
*
* Clicking on the work package title opens it in a new tab.
*
* ~~The title is empty (to make it absolutely clear that there's no connection to the WP).~~
*
* Edit
* Add notes
* Move to top _(unless already on top)_
* Move up _(unless already on top)_
* Move down _(unless already in the bottom)_
* Move to bottom _(unless already in the bottom)_
* Delete _(in red)_
**Agenda items have two states, display and edit:**
* _In display state_, agenda details cannot be edited but users with the necessarily edit permissions maybe
* _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.
* I**n
* **Meeting status** is reduced to just one line:
* The status (Open/Closed) on the left edge
* The "Close/Re-open meeting" action on the right edge
* **The participants section** is removed and replaced with an item in the Meeting details section, with a "Show all" action
* {n} Participants [Show all](https://community.openproject.org/#)
* Clicking on the action will show the regular participants modal
* **Agenda item details** (title, user, duration) become multi-line:
* Regular items:
* Line 1: Title
* Line 2: User on the left edge, duration on the right edge
* Work package items:
* Line 1: Work package name
* Line 2: {Type} {id} {status}
* Line 2: User on the left edge, duration on the right edge
### **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 (include .ics as attachment)
* When meeting dates change (include .ics as attachment)
* ~~When meeting status changes~~
* When meeting is sent to invitees manually (include .ics as attachment)
* 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
* Commenting and emoji reactions and comment threads
* Sections
* Create work packages 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)
* Open linked work package in a split scree\_n.\_
* Move existing agenda item to another meeting
* Meeting series (recurring)
* In-app notifications:
* iCal sync
* Decision and issues log
* Meeting modes and statuses
* ###49334
Some of these will be addressed in a later iteration and will be described in this epic:
###50689
### 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?_