From 429a38fa570873db1589dd229e9a9c9dad11705d Mon Sep 17 00:00:00 2001 From: drift Date: Tue, 24 Jan 2023 16:33:13 +0100 Subject: [PATCH] Relocate wiki from trac --- README.md | 12 ++++++++ wiki/DataBaseStructure.md | 47 ++++++++++++++++++++++++++++++++ wiki/DesignDokument.md | 19 +++++++++++++ wiki/FeatureList.md | 31 +++++++++++++++++++++ wiki/FrequentlyAskedQuestions.md | 20 ++++++++++++++ 5 files changed, 129 insertions(+) create mode 100644 README.md create mode 100644 wiki/DataBaseStructure.md create mode 100644 wiki/DesignDokument.md create mode 100644 wiki/FeatureList.md create mode 100644 wiki/FrequentlyAskedQuestions.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2745446 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Medlemsdatabase NG + +Medlemsdatabase NG (mdb-ng) er en ny medlemsdatabase for PVV, skrevet fra scratch i python. + +mdb-ng bruker en liste over keyword/value-par for å lagre informasjon om hver bruker. All informasjon ligger i RCS, så endringer av informasjon om en bruker vil ikke ødelegge historikken. + +## Startpunkter for videre lesing + +- [Liste over features, implementerte og ønskede](./wiki/FeatureList.md) +- [Frequently Asked Questions (FAQ)](./wiki/FrequentlyAskedQuestions.md) +- [Designdokument](./wiki/DesignDokument.md) +- [Databasestruktur](./wiki/DataBaseStructure.md) diff --git a/wiki/DataBaseStructure.md b/wiki/DataBaseStructure.md new file mode 100644 index 0000000..9ea3109 --- /dev/null +++ b/wiki/DataBaseStructure.md @@ -0,0 +1,47 @@ +# Databasestruktur + +Her er et forslag til databasestruktur i Mdb-NG. For en gitt databasestruktur, sjekk om den kan oppfylle kravene i FeatureList. + +## Tabeller + +### Personer + +- ID +- Fullt navn +- MTime +- Comment + +`ID` er en unik id for en person, uavhengig av hvor mange brukernavn og UIDer personen har hatt. Det tillater også at en person har flere brukernavn. Jeg tror det er et par eksempler på det i PVV for tiden. `MTime` sier når raden ble opprettet. Når et av feltene endres lages det en ny rad for personen hvor de uendrede feltene kopieres fra forrige rad. + +### Unix-detaljer + +- Personer:ID +- ID +- UID +- Brukernavn +- Hjemmekatalog +- Primær gruppe +- CTime +- MTime +- Comment + +### Gruppetilhørighet + +- ID +- UID +- GID +- CTime +- MTime +- Comment + +### Fysisk tilgang + +- ID +- Personer:ID +- Verkstednøkkel +- Maskinromnøkkel +- Kortnummer +- Korttilgang utløper +- CTime +- MTime +- Comment diff --git a/wiki/DesignDokument.md b/wiki/DesignDokument.md new file mode 100644 index 0000000..266328d --- /dev/null +++ b/wiki/DesignDokument.md @@ -0,0 +1,19 @@ + +## Dataformat + +Databasen er implementert som en katalog med tekstfiler. Hver fil inneholder informasjon om ett medlem og er underlagt revisjonskontroll med RCS. Filene har et key: value-format, hvor blanke tegn på slutten og begynnelsen av både nøkkel og verdi blir strippet bort. Hvilke felter som er gyldige og om de kan ha flere verdier fins i `.format` i databasekatalogen. + +I format-filen kan hvert felt kan være spesifisert enten som scalar eller som list. Dette avgjør om et felt kan opptre en eller flere ganger i samme fil. Hvert element i en liste må komme som en egen linje. Dette gjør at historikken i RCS holder styr på de enkelte elementene i lista. + +Midlertidig sett med felter er: + +``` +username: scalar +realname: scalar +uid: scalar +disk: list # hvert element i lista er en 2-tuple adskilt med space +bdb-uid: scalar +bdb-username: scalar +purged: scalar +membership: list # hvert element i lista er en 2-tuple adskilt med space +``` diff --git a/wiki/FeatureList.md b/wiki/FeatureList.md new file mode 100644 index 0000000..359796b --- /dev/null +++ b/wiki/FeatureList.md @@ -0,0 +1,31 @@ +# Problemene som skal løses + +- Hvem er medlemmer i PVV? +- Når løper medlemskapet til et medlem ut? +- Hvem har korttilgang til PVV? +- Når går korttilgangen til et medlem ut? +- Hvem har nøkler til verkstedet? +- Hvem har nøkler til serverrommet? + +# Informasjon om brukere + +- Brukernavn +- Fullt navn +- Medlemsperiode +- Når medlemsperioden er betalt +- Hvor langt fremover adgangskortet er aktivert + +# Uavklarte spørsmål + +## Endring av brukernavn + +Det hender at brukere endrer brukernavn, typisk i pvv etter at de har fått brukernavnet endret hos stud. Skal dette kunne trackes på noen måte? + +## Endring av UID + +Samme som med brukernavn. Dette er sannsynligvis ikke et stort problem lenger, siden hjemmekataloger ikke monteres til stud lenger. + +## Hvilke endringer skal logges? + +Holder det å ha cdate og mdate på bruker-records, eller skal alle endringer logges? + diff --git a/wiki/FrequentlyAskedQuestions.md b/wiki/FrequentlyAskedQuestions.md new file mode 100644 index 0000000..ad5153c --- /dev/null +++ b/wiki/FrequentlyAskedQuestions.md @@ -0,0 +1,20 @@ +# Frequently Asked Questions + +## Generelt + +### Navnevalg + +#### Hvorfor heter det Medlemsdatabase NG? Har vi hatt en medlemsdatabase før? + +Ja, vi har hatt en medlemsdatabase før. Faktisk har vi også hatt et prosjekt før som het Medlemsdatabase NG, men som det aldri ble noe av. Vi valgte dog NG til denne databasen uten å vite at det allerede hadde vært et forsøk på å lage en med samme navn. Ingen av oss som nå lager mdb-ng var i PVV forrige gang dette navnet ble brukt. + +### Problemdomene + +#### Hvilke problemer har vi som krever en medlemsdatabase? + +De to viktigste bruksområdene for mdb-ng er + +- å holde styr på hvem som har betalt medlemskontingent, og +- å vite hvor mye disk folk har kjøpt og hvilke diskpartisjoner en gitt bruker eier. + +Når og hvor mye en person betaler i kontingent er ikke helt trivielt i PVV. Dette skyldes flere faktorer. Blant annet har vi byttet regnskapssystem for noen år siden, men det var flere som betalte for flere år fram i tid før regnskapssystemet ble byttet ut. Disse transaksjonene ligger ikke i det nye regnskapssystemet. I tillegg glemmer folk ofte av å betale kontingent, siden ingen minner dem på det. Når de da betaler kontingent får man plutselig inn betalinger for perioder som allerede har gått, samt for ganske langt inn i fremtiden.