Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Below here a table is shown with the identified changes between ECP and Valghalla, based on tasks and user stories

...

Data model is shown here: Data model
ECP vs Valghalla UI structure view: https://aarhuskommune-my.sharepoint.com/:x:/g/personal/movk_aarhus_dk/EUm4O-eqCuhNth1XIRnhEhwBGRDTjCBi5Cqe2kflA8m89g?rtime=E223oKNL20g

Another way to view the data is this page Reusable ECP components it also takes its point in the user interface.

Most Jira user stories referenced has subtasks, references to other user stories and links to Figma where mockups of the desired user interface is
Go-to the Jira user story to see them.

...

  • Connection string is different

  • Where model configuration is set to be required and HasDefaultValueSql, the “((1))” value has to be changed to “TRUE”

  • Where model configuration has HasColumnType(datetime) it needs to either be changed to HasColumnType(timestamp) or it needs to be removed, resulting in Postgres type timestamp with time zone

  • Previous migrations has to be deleted and a new will have to be created.
    dotnet ef migrations add InitialCreate --output-dir "C:\dev\Valghalla\Internal application\Kaskelot.Internal.Infrastructure\Migrations\

  • Stopping the PostgresSql engine
    sc stop postgresql-x64-15

  • Starting the PostgresSql engine (is not started)
    sc start postgresql-x64-15

...

Action

Name

Link

Data notes

Functionality notes

Remove

Materials
Not needed

/administration/material
/building/details/

Remove / Repurpose

Courses → Repurpose for Communication templates and the mapping between templates and task types

Repurpose CourseEntity
Repurpose CourseOccasionEntity

/course → /Communication

Remove

Rooms
Not needed

Remove RoomEntity

/building/details/

Remove

Constituency
Not needed

Remove ConstituencyEntity

/administration/structure

Remove

Parish
Not needed

Remove ParishEntity

/administration/structure

Remove

Sign

Not needed

Remove SignEntity

/building/details/

Remove

Applications
Not needed

FieldAlternativeEntity
FieldDataEntity
FieldEntity
FixedFieldEntity
FixedFieldValueEntity
FormEntity
FormFieldEntity
FormPostEntity

Some of this functionality / components might be useful in the communication portion)
Like the RTF component.

Remove

Forms
Not needed

Change

Templates

Not needed

/administration/templates

  • Remove Repurpose Blob storage reference Replace with configuration and functionality for file repository mapped to a local file storage

Remove

Electorial district
Not needed, will only use District->Area

Remove ElectoralDistrictEntity

/administration/structure

Investigate

Tag

PersonTagEntity
TagEntity

/administration/category

Decide

Group Type → Team type

GroupTypeEntity
has connection to early voting we don’t need.

/administration/category

New

Validation rules

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-131

New entity and table in the data model or as a fixed model (enum or json object) in the code ?
No user should be able to change them.

Reference to a localized string per. entry

  • Show in Election type configuration

  • Use when assigning a task to a user or when a user assigns a task to him/her self

  • Also use when automatically updating the users base data (timer job)

  • No interface for configuration, types are fixed.

New

Election types

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-238

New entity and table in the data model.
ElectionTypeEntity

Reference to the selected validation rules

Show in administration area on same level as election.

New / Change

Special diet (reuse Category if it makes sense)

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-283

New entity and table in the data model
SpecialDietEntity

Perhaps reuse category dialog setup and category card from administration if it makes sense.

New

Election committee contact information

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-111

New entity and table in the data model, see fields in figma link on the individual task.
ElectionContactInformationEntity

Show in administration area on same level as election.

Change

Disctrict → Area

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-107

Add in DistrictEntity data model

  • Description (string)

Rename DistrictEntity to AreaEntity in source code

Move from structure to administration area on same level as election.

Add field for

  • Description (multi line)

Change

Election

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-101

Add in ElectionEntity data model

  • Description (string)

  • Election type reference (guid)

  • Task lock days (int)

  • Election period start date (date no time)

  • Election period end date (date no time)

Change in the entity data model

  • Active / published → change to status model and supply more values, maybe we need to create an enum for this.

Remove in entity data model

  • Constituency dependency

  • Create a wizard for new elections creation

  • Create copy election option

Add fields for

  • Selecting election type (dropdown)

  • Selecting start and end date (calendar for each)

  • Task Lock (default 4 days)
    Supply the default value in the municipal configuration database

New

Election

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-321

Automated tasks

  • De-activate election

Bound to communications settings

New

Election

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-110

N/A

All election data except participants is copied to a new election call the same and suffixed with (copy)
Or we could try and reuse the “based on election” functionality.
We need to be able to handle tasks and their date if the election date period is smaller than the one they copy from.
The easiest way of of that is to not touch the date period and then let it be up to the employees to adjust afterwards.

maybe we could write a stored procedure for that ?

New

Automated tasks / job

N/A

Known about the daily scheduled task / job

  • Run every 1 day

  • Check election end date

    • if today, deactivate the election.

  • Check person data needs updating

    • Query CPRUpdated - 7 days

    • Queue all found results into the CPR Queue database

    • Another job will pick up the changes.

New

CPR (social security job) Automated tasks / job

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-130

Create CPRQueueEntity

  • Id (int)

  • Date (datetime)
    when it was added to the database

  • Social security number (string)

  • Status (string)

    • New

    • Processing

    • Failed

    • Completed

  • RetryCounter (int)

  • Completed date (date)

Create Table CPRQueue

This is not set in stone, it is a suggestion

Known about this scheduled task / job

  • Run every 5 minutes ?

  • Pick up data from CPRQueue,

  • Ask CPR service for data

    • Before asking, mark the CPRQueueEntity status processing

    • If service response is bad, mark the CPRQueueEntity status failed and increment the RetryCounter

    • If the service response is good, update PersonEntity and mark the CPRQueueEntity status completed and set completed date

This is not set in stone, it is a suggestion

New

Web (Declaration of consent)

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-108

Maybe reuse the WebConfigurationEntity if it makes sense

  • Should be placed under administration

  • Will require Rich text editor implementation, reuse from Web area.

Change

Building->Work location

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-102

Remove binding to Election (this is global)

Add in the BuildingEntity data model

  • List of necessary TaskTypes (reference table)

  • List of necessary Teams (reference table)

  • Work location responsible (user id) (reference table)

Remove in the BuildingEntity data model

  • ElectionId

  • Category

  • Deliveryaddress

  • DeliveryPostal code

  • DeliveryPostal place

  • Freetext

  • Inactive

  • CanExpand

  • InformerNeeded

  • InformationToContactPerson

  • ExternalComment

  • Rooms

  • Signs

  • Materials

  • BuildingEventLog

Rename to BuildingEntity to WorkLocation in source code

Remove BuildingEventLogEntity data model

  • Rename to Work Location

  • Move into to Administration area.

Add fields for

  • Task Types (multi select from all available task types)

  • Teams (multi select from all available teams)

  • Worklocation responsible (list (showing name (link to user) and remove option
    Button to add a new/additional worklocation responsibles

Remove / repurpose fields

  • New worklocation

    • Category

    • Delivery address

    • Delivery Postal code

    • Delivery Postal place

    • Inactive

    • Can expand

    • Informant needed

  • Worklocation details

    • Information to contact person

    • Comment

    • Comments shown on external web

    • Event log

    • Rooms

    • Signs

    • Materials

Change

Function → Task type

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-103

Remove binding to Election (this is a global configuration)

Add in FunctionEntity data model

  • Short name / Abbreviation (string)

  • Start time (only time not date)

  • End time (only time not date)

  • Use validation demands (bool)

  • Send reminder notification 5 days before due date (bool)

  • Is trusted required (bool)

  • Guide link (string)

Change in entity data model

  • FixedCompensation (is always true) perhaps can be omitted

  • StaffingElectoralDistricts should be UsedInDistricts and tie to district instead

Remove from entity data model

  • ElectionId

  • Public Description

  • LisaIntegration

  • ArchiveIntegration

  • CanViewPersonData

  • CanViewBuildingData

  • SetAsDefault

Rename FunctionEntity to TaskTypeEntity in source code

  • No binding to electoral district

  • Rename to Task types

  • Move from staffing to administration area on same level as election.

  • Use upload functionality from templates page or building details page.

Add field for

  • Short name / Abbreviation (single line)

  • Start time (only time not date) ex. use the time component from the add course occasion dialog.

  • End time (only time not date) ex. use the time component from the add course occasion dialog.

  • Use validation demands (yes/no)

  • Send reminder notification 5 days (fixed interval) before due date (yes/no)

  • Is trusted required (yes/no)

  • Guide link (single line)

Remove / repurpose fields

  • Public Description

  • Fee type (always fixed)

  • Can view person data

  • Can view building data

Change

Group → Team

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-104

Remove binding to Election (this is a global configuration)

Add in GroupEntity data model

  • Short name / Abbreviation

  • Team responsible reference(s) (TeamResponsibles)

  • Work location reference(s) (WorkLocationTeamEntity)

Change in entity data model

  • Freetext → Description

Remove from entity data model

  • ElectionId

  • ShowExternally

  • ShowPersonList

  • Rooms reference

Undetermined
  • Group Type

Rename from GroupEntity to TeamEntity in source code

  • Rename to Teams

  • Move from staffing to administration area on same level as election.

  • Show Short name / Abbreviation in overview table

Add fields for

  • Short name / Abbreviation

  • Functionality to add one or more team responsible(s) like a dialog where you can search for person

Remove / repurpose fields

  • Category

  • Show person on external web

  • Show person list on external web

  • Function

  • Amount

Change

User interface

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-284

N/A

Show election selection as a drop down in top right hand corner.
Note: If it is a lot of work, we can move it and keep the current feel with opening the dialog, then look at it as we near the end.

New

User interface

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-281

N/A

Show a breadcrumb in the solution
If we don’t already have some kind of breadcrumb we could use:
https://www.npmjs.com/package/angular-crumbs
Implementation video https://morioh.com/p/ca769096d74d

New

User interface

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-80

N/A

Use either

  • Small question mark icon and hover over text

  • Hover over text on the UI control it self

Help text should be localized

New

User Interface

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-79

Store data in WebConfiguration table
Use the WebConfigurationEntity

Help icon in top righthand corner

Change

Person → Participant

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-54

Add to the PersonEntity data model

  • Special diet reference (Guid)

  • Team reference (list)

  • Exempt from Digital post (true/false, default false)

  • Role (string)

    • Worklocation responsible

    • Team responsible

    • Reader

  • Deceased or Missing (true/false, default false)

  • Citizenship (true/false, default true)

  • CPRUpdated (Datetime)

Remove from PersonEntity data model

  • Inactive     

  • ExpressionOfInterestApproved

  • ApplicationApproved

  • FreeText

  • Car

  • HiddenIdentity

  • CourseOccasions

  • PersonCourseOccasions

  • PersonTags

  • FormPosts

  • StaffingElectoralDistricts

Rename from PersonEntity to ParticipantEntity

Change in the PersonEventLogEntity data model

  • Rename FollowUpNeeded → ShowInNotificationPanel

  • Remove Date

  • Remove CategoryId

  • Remove Category

/person → Add person

Add field for

  • Special diet (dropdown)

  • Team (dropdown)

  • Exempt from Digital post (boolean)

Add button (Lookup participant) next to the Social security number, should use a service to lookup the core participant data.

Reuse eventlog interface but make it more automated, no manual entries can be put in the eventlog

Remove fields

  • Category

  • Tag

  • Car

  • Comment

  • Inactive

  • Hidden identity


All fields should be “read-only” except:

  • Special diet

  • Phonenumber

  • Mobile Phonenumber

  • E-mail

  • Team selection

Change

Person overview → Participant overview

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-56

We might need to change/adjust the view supplying this functionality

/person

Show fields

  • Full name

  • Team

  • Birthday (repurpose social security number excluding the last 4 digits)

  • Assigned to at least one task (yes/no)

  • Comma separated list - Task types assigned (maybe repurpose assignments)

Remove fields

  • Phone number

  • E-mail

  • Postal code

  • Tags

  • Status

Filter changes

  • Add

    • Team

    • Digital post

  • Keep

    • Name

    • Assignments (TaskType)

    • Status ?

  • Remove

    • Social security number

    • Postal code

    • Comment

    • Category

    • Placement

    • Course

    • Education

    • Tags

Change

Person details → Participant details

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-55

/person/details/<ID>

Add communication log (reuse event log or repurpose course functionality ?)

Reuse button (Lookup participant) next to the Social security number, should use a service to lookup the core participant data.

Remove:

  • Comment

  • Eventlog (maybe reuse for communication log)

  • Courses (maybe reuse for communication log)

New

Import participants

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-58

N/A

Should be a background task, because it could take some time ?

New

Export participants

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-59

Might need some minor changes

Ensure report generator / analyze functionality can be used for this.

New

Participants functionality

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-64

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-60

Jira Legacy
serverSystem JIRA
serverId277b2c09-df07-3469-bccc-a66f399c29a7
keyVALGHAL-63

N/A

Logic for the different tasks are described in the tasks.

Automated tasks

  • Deletion of deceased participants

  • Deletion of all participants

Manually initiated

  • Bulk delete participants

New

Link generator

Add entity “LinkEntity” for link storage

  • Id (Guid)

  • Type (string)

  • Direct link (to a single task or a single Team and all the task associated with that Team)

  • Complex link (to a filtered view of tasks

    Add a separate table for each link type to handle

    • Team

    • Task

    • Multiple tasks

    Use the following columns

    • Id (Guid)

    • Data (string/json)
      The link data to handle

    • HashValue (string)

    • Value (the necessary information for the external web to show the data) (string)

    • Changed (datetime)

    • ChangedBy (user id)

    • Created (datetime)

    • CreatedBy (user id)

    The link will be created in the internal application.

    Where the functionality is available we should add a icon / button control to show the link
    show eg. https://<url to external web>/link?id=<id (Guid) <HashValue from DB>
    Functionality should be used to build the link where needed and to store the link.
    for complex links we could require that the filter / query is saved and that way we will have a reference to point at.

    To ensure that we don’t create multiple links for the same item/entity/query we will generate a HashValue and use that as a key.

    It will be parsed in the external web and should always show a minimum amount of information on a unprotected route in the external web.
    Three routes will be avaliable

    • for a team

    • for a single task

    • for a task query

    A details page for each should also be in an unprotected route in the external web.

    Require login/protected route when “Register” button on task is clicked in the external web.
    or when joining a team

    This functionality is referenced a number of places in the specifications.

    • A single task

    • A single Team (show multiple tasks)

    • Complex / filtered task view (show multiple tasks)

    New

    External web - Task overview

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-65

    N/A

    • Show tasks from a generated link

    • Additional filtering options

    New

    External web - Task registration

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-66

    N/A

    • Register the task to the participant.

    • Require login upon registration.

    • Start “new user flow” if participant dies not have a user in the system.

    Keep

    Lists

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-113

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-115

    N/A

    Use report generator to create datasets to export to csv

    New

    Validation upon participant creation

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-133

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-138

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-134

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-136

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-139

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-137

    New entity and table in the data model or as a fixed model (enum or json object) in the code ?
    No user should be able to change them.

    Reference to a localized string per. entry

    • All values are set in the election type configuration.

    • Any time a manual refresh is done it will ask the Danish service platform directly and update PersonEntity

      • On failure evaluate response

        • If timeout put in CPRQueue

        • If anything else, show friendly error message to the front-end.

    New

    Automated validation

    Use CPRQueueEntity

    Use Table CPRQueue

    This is not set in stone, it is a suggestion

    See previous entry about CPRQueue

    The service should be expanded to also check assigned tasks and see that the participant is still valid, can be silent unless participant is no longer valid, then is should go in the participant eventlog.

    This is not set in stone, it is a suggestion

    New

    Communication templates

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-90

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-91

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-92

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-86

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-87

    Create new enum with communication types

    • DigitalPost

    • Email

    • SMS

    Create a new entity and table to store the templates or repurpose the Course tables and entities

    • Id (GUID)

    • Name (Unique)

    • Subject (single line)

    • Body (multi line)

    • Type (string)

    • Changed (datetime)

    • ChangedBy (user id)

    • Created (datetime)

    • CreatedBy (user id)

    Create a new entity and table to store the template to task type mapping or CourseOccasion tables and entities.

    • Id (GUID)

    • CommunicationTemplateId (guid)

    • TaskTypeId (Guid)

    • Changed (datetime)

    • ChangedBy (user id)

    • Created (datetime)

    • CreatedBy (user id)

    Create an interface with:

    • Limited Rich text editor for editing the templates

      • Digital Post and Email can use the same settings

      • SMS is plain text only.

    • Mapping between each template and each task type

      • Enable types for each task type

      • Email and Digital Post cannot be selected simultaneously on the same task type.

    • See other task for when the different messages are to be sent.

    Change / New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-68

    Use Person entity → Participant entity

    Participants can see their own details on a page or in a dialog in the external web application

    Only phone number and Email can be changed by the user on their profile

    See task for rules on when its possible to delete a profile.

    Change / New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-70

    Staffing Group entityStaffing entity

    • Person->Participant

    • Function -> Task type

    • Group -> Team

    Possibility for a participant to cancel a task registration.

    See Jira tasks for rules on when it is possible for a participant to cancel a task registration.

    Change / New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-73

    Use Staffing entity

    See invitation and accept or decline assigned task.

    Task is assigned in internal application, upon task assignment see

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-100
    for more communication details.

    New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-74

    Use ElectionContactInformationEntity

    Show either in the footer in the center or show in a dialog when clicking a link.

    New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-75

    Use Staffing entity

    • Show only task available to a specific team

    • Show both the occupied and available tasks.

    • Show participant name on occupied tasks.

    New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-76

    Use Staffing entity

    Use LinkEntity

    See Jira task description for the different ways a team task can be shared.

    Show should only be possible if the user has the Team Responsible role.

    New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-186

    Use LinkEntity

    Mostly UI and link functionality.

    New

    External web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-237

    Use TeamEntity

    Use Staffing entity

    • Show a specific team to the team responsible

    • Show tasks to be staffed in different work locations

    • Show available participants.

    • Search in this view can be on anything.

      • Except it should never search in the last 4 digit of the social security number.

    • Never show the last 4 digit of the social security number

    New

    Exterla web

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-236

    Use ElectionContactInformationEntity

    Use ConfigurationEntity

    • Show required information in the footer.

    • The footer does not need to be sticky, just show it in the bottom of the page.

    • Simple information is stored in ConfigurationEntity

    New

    Communication

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-85

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-97

    Create CommunicationLogEntity and CommunicationLog table

    • Id (Guid)

    • CommunicationType (string)

    • Participant (user id)

    • Status (string)

      • Sent

      • Queued/Pending

      • Failed

      • Retrying

    • Created (Date)

    • Show communication log in internal application

    • Show individual participant communication log on their profile both in the internal and external application.

    • Show a max of 50 rows at a time.

    New

    Communication notifications (Automated)

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-100

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-81

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-602

    Use CommunicationQueueEntity

    Use Table CommunicationQueue

    This is not set in stone, it is a suggestion

    Use the task types and communication template settings to determine if notification to participant should be sent.

    Use an automated queued approach

    See individual Jira stories and subtasks for more detail.

    A service should be created to ensure notifications are sent and their status recorded in a communication log.

    This is not set in stone, it is a suggestion

    New

    Notification hub

    Jira Legacy
    serverSystem JIRA
    serverId277b2c09-df07-3469-bccc-a66f399c29a7
    keyVALGHAL-98

    Based on the subtasks in the Jira story we will need a new NotificationEntity and Notification table

    • Id (Guid)

    • Created (datetime)

    • Read (bool)

    • Message (string)

    • LinkToSubject (string)

    ...