summaryrefslogtreecommitdiff
path: root/README
blob: 2a9155b6c34f22ea5bafb35d721200dcafd49d73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Effireg - the Effi membership register
=============================================================================

This will become a web-based membership register for the Effi -
Electronic Frontier Finland association (<https://effi.org/>). It may
some day be useful for others as well.

Architecture and documentation
-----------------------------------------------------------------------------

See the <https://effireg.liw.fi/> website for architecture and other
documentation.

Facade API
-----------------------------------------------------------------------------

The facade will have an API like this:

* `POST /memb` &mdash; add a member
* `GET /memb` &mdash; get specific member
* `PUT /memb` &mdash; update a member
* `DELETE /memb` &mdash; remove a member
* `GET /search` &mdash; search for members

All operations require an access token from Qvisqve. The Muck header
conventions are used for metadata.

A member's information looks like:

    {
        "fullname": "James Bond",
        "email": "007@example.com",
        "member-number": "7",
        "hometown": "London"
    }

Actually, currently any JSON object will work, but this will change
eventually.

Resource types in Muck
=============================================================================

* `member` contains all non-authentication information about an Effi
  member
   * references `subject` resource id
   * contains full name, membership number, home town, email address

There may later be authentication related resources in Muck, but for
now, Qvisqve stores them a different way.

Authentication
-----------------------------------------------------------------------------

For the demo I will create subjects in Qvisqve manually. Later on,
Effireg will create subjects itself, and provide a way to generate a
per-subject unique URL which authenticates the subject without a
password. Effectively a password reset link.


Legalese
=============================================================================

While effi-reg itself is under the AGPL3+ license, a copy of which is
included as `COPYING` in the source code of this program, this license
does NOT apply to clients of the HTTP API it provides.

Copyright 2018-2019  Lars Wirzenius

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.