project-owlly / website

🦉 owlly enables the secure and easy electronic signing, validation and counting of popular initiatives and referendums for campaign platforms and offers a holistic e-collecting approach for Switzerland.
https://owlly.ch
BSD 3-Clause "New" or "Revised" License
5 stars 0 forks source link

feat: Backend #20

Open sansan88 opened 3 years ago

sansan88 commented 3 years ago

Create new pages if not already exists:

login (with email + password OR eID+) Login with eID+ is done, but does not work yet. Confirm e-Mail address!
signup (with email + password OR eID+)
forgot password (email)
logout

Create Guard

to check for login
to check for customClaim & postal code if administration

Create new roles for user (controlled via backend?) custom claim in user Auth for:

Gemeinde ( set administration = true) & add for each responsible Postal code a value. ( eg. 8200 = true)
Campaigner ( set campaigner = true)

New Page for administration:

certifyList: List of open certify-requests from campaigners to certify signaturelists.
certifyDetail: certify request with lines of signatures to certify. name, firstname, dob, address, checkbox-Approved, dropdown-reason to reject. functions: download this list to import as Excel File into Einwohnerkontrolle-Software. new function to do a "gesamtbescheinigung". that means: a summary with all rejected, approved and total signatures certified. name and date of the person from the administration. confirmation via e-mail to administration and campaigner.

New page for campaigner:

overview: overview of volksbegehren
detail: detail view on a specific volksbegehren. contains all "technical" information of a volksbegehren(text, titel, etc). list of all municipalities with a sum of open (to handover to administration) and certified signatures (accepted & rejected). campaigner can select a specific municipality and create a "certify request". this will generate a new certifyList with the open signatures of this municipality. as a result, the administration will see this list in their dashboard.

Data:

Postalcode: we need the post schweiz API for this?
reject codes are coming from bundeskanzlei (sandro has this information)
sansan88 commented 3 years ago

create pages ng g m pages/admin/login --routing ng g c pages/admin/login --skipTests