Comments (15)
a) verhältnismässig einfach zu implementieren
b) sehr umfangreicher Aufwand
Mailservice ggf. von leihs übernehmen
Vorgehen:
- Workshop für Refinement nach Workshops Fileservice
Grobschätzunbg Aufwand: 1 Mann-Quartal (DB, Backend und Frontend, Deploy und CI (Fullstack))
from madek.
Notifikationsziel
User => hinterlegte Adresse, i.d.R. ZHdK-Adresse (keine Änderung möglich?)
Delegation: Notifikationsadresse setzen, (mehrere E-Mails möglich) oder automatisch alle in Delegation
bitte definieren/präzisieren @phoettli "keine Änderungen möglich?"
"Notifikationsadresse setzen, (mehrere E-Mails möglich) oder automatisch alle in Delegation" wenn alle in Delegation, welche Email-Adresse vom User?
from madek.
Mail-Zusammenfassungen
alles
@phoettli was bedeutet das genau?
from madek.
Frage: angenommen die Email-Frequenz ist auf "weekly" eingestellt und es kamen in den letzten 7 Tagen keine neue Notifikationen dazu: sollte trotzdem jede Woche eine Email verschickt werden auch wenn nur mit "Es sind keine neuen Notifikationen vorhanden"?
from madek.
Frage: angenommen die Email-Frequenz ist auf "weekly" eingestellt und es kamen in den letzten 7 Tagen keine neue Notifikationen dazu: sollte trotzdem jede Woche eine Email verschickt werden auch wenn nur mit "Es sind keine neuen Notifikationen vorhanden"?
@nimaai ich würde gar keine senden.
(Für die anderen Fragen erstelle ich Mockups...)
from madek.
based on the existing specification this is my first draft of the tables:
Table "public.notifications"
Column | Type | Collation | Nullable | Default
-----------------+--------------------------+-----------+----------+-------------------
id | uuid | | not null | gen_random_uuid()
user_id | uuid | | not null |
is_acknowledged | boolean | | not null | false
content | text | | not null |
email_id | uuid | | |
created_at | timestamp with time zone | | not null | now()
updated_at | timestamp with time zone | | not null | now()
Indexes:
"notifications_pkey" PRIMARY KEY, btree (id)
Triggers:
update_updated_at_column_of_notifications BEFORE UPDATE ON notifications FOR EACH ROW WHEN (old.* IS DISTINCT FROM new.*) EXECUTE FUNCTION update_updated_at_column()
NOTE: email_id
will be a FK to emails
table
Table "public.notifications_settings"
Column | Type | Collation | Nullable | Default
------------------------------+--------------------------+-----------+----------+----------------------------------
id | uuid | | not null | gen_random_uuid()
user_id | uuid | | not null |
deliver_via_email | boolean | | not null | false
deliver_via_ui | boolean | | not null | false
deliver_via_email_regularity | character varying | | not null | 'immediately'::character varying
created_at | timestamp with time zone | | not null | now()
updated_at | timestamp with time zone | | not null | now()
Indexes:
"notifications_settings_pkey" PRIMARY KEY, btree (id)
Check constraints:
"check_email_regularity_value" CHECK (deliver_via_email_regularity::text = ANY (ARRAY['immediately'::character varying, 'daily'::character varying, 'weekly'::character varying]::text[]))
Triggers:
update_updated_at_column_of_notifications_settings BEFORE UPDATE ON notifications_settings FOR EACH ROW WHEN (old.* IS DISTINCT FROM new.*) EXECUTE FUNCTION update_updated_at_column()
@DrTom what is your first impression?
from madek.
Mail-Zusammenfassungen
alles
@nimaai ich habs oben korrigiert. Ich glaube ich meinte da: "alles einzelne Mails".
Und die Zusammenfassungen habe ich um wöchentlich ergänzt
from madek.
@DrTom what is your first impression?
Looks good.
At first glance deliver_via_email_regularity
might have been some numeric value. But maybe it is better this way. Depends when it should be send.
from madek.
@phoettli was ist die idee bei wöchentlicher zustellung: pro notifikation je eine email oder zusammengefasst in einer einzigen?
from madek.
Mail-Zusammenfassungen
- 1x täglich (default)
- 1x wöchentlich
- alles einzeln (keine Zusammenfassung)
- Verantwortlichkeit und Upload separat
- ev. später weitere?
Mein Vorschlag (wie oben) die Optionen:
- täglich und wöchentlich als Zusammenfassung
- alles einzeln, wenn das jemand mag, oder so wenig Infos bekommt, dass das passt
- ev. noch
Übertragung der Verantwortlichkeit
undabgeschlossene Uploads
separat - wohl sowieso separat würden Admin-Infos wie Personen-Kollisionen (wenn neue User angelegt werden) und allenfalls weitere
oder was denkst du @nimaai ? bzw. was wäre praktikabel?
from madek.
@nimaai to consider irt to auto-delete trigger:
what about ui notifications which have not been acknowledged within the time period?
- the notifications should be deleted regardless.
from madek.
- @nimaai @urs-van-binsbergen the notifications will always be displayed to the user; it means no option to disable ui notifications.
from madek.
- @phoettli @urs-van-binsbergen default email frequency option should be "daily summary" not "immediately" to prevent spamming.
from madek.
- @nimaai auto-delete notifications after 6 months
from madek.
- @nimaai changing of the notification settings should affect only the future notifications ??
from madek.
Related Issues (20)
- favicon.ico einbinden
- Server BasicAuth and new API don't work together HOT 1
- Remove BasicAuth in api-v2
- test-blank in Deployment integrieren HOT 1
- AGW auf Test-Server blockiert
- Fehlerseite für Soft Delete Inhalte anpassen HOT 1
- API-V2: Upgrade swagger-ui to openApi HOT 1
- audits: `user_id` is empty in `audited_requests` HOT 1
- Delegation in Notifikation lesbar identifizieren HOT 2
- API-V2: Fix OpenAPI-Validation-Error / 1-Based-Pagination HOT 3
- API-V2: Remove basicAuth from swagger-ui, token only
- cider: datalayer integrity check does not work
- Rework database backup
- Release 4.5.1
- falsche Support-Email in Config
- Zencoder-Jobs werden nicht immer zuverlässig abgeschlossen
- temp-Directory für Timeline-Medien-Upload
- Release 4.6.x
- Delegation: Verantwortlichkeit deklarieren bei Übertragung HOT 5
- API-V2: Fix OpenAPI-Response Examples HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from madek.