|
1 | | -# fingerweb |
| 1 | +# Fingerweb |
2 | 2 |
|
3 | | -A web app that might replace finger.{txt,json}. |
4 | | -The first usefull thing it might do is handle service-specific passwords |
5 | | -for some other web apps. |
| 3 | +This is the sources for Stackens member system called Fingerweb. Fingerweb is a Django application that manages member data, accounts and various member related tasks. |
6 | 4 |
|
7 | | -## How to run it with Docker |
| 5 | +## Features |
8 | 6 |
|
9 | | -There is an included `docker-compose.yml` that should get you started. |
10 | | -This setup is somewhat similar to the production build. |
| 7 | +### Member database |
11 | 8 |
|
12 | | -Type `docker-compose up --build` to start the containers. |
| 9 | +The master copy of our member data is still managed inside `finger.json`, this system expect the database to be refreshed with `./manage.py readjson --file finger.json`. Once a day or so, the system expects `./manage.py updatedb` to be executed, this runs batch operations against the database. |
| 10 | + |
| 11 | +### Member login |
| 12 | + |
| 13 | +Active members can use the system to login and inspect some of their member data, request service accounts and do some other minor tasks. |
| 14 | + |
| 15 | +### Service management |
| 16 | + |
| 17 | +Fingerweb manages account creation to some of Stackens systems. The tool is build around the idea of self service for members. Administrators can create services inside Django Admin, users can then request access to the systems in question. The actual systems will then use a REST API to integrate and sync state with fingerweb. |
| 18 | + |
| 19 | +### Administrative system for the Board |
| 20 | + |
| 21 | +The member database can be browsed and filtered inside Django Admin where a Board member can: |
| 22 | + |
| 23 | +* Search and filter to find and inspect members |
| 24 | +* Modify membership data |
| 25 | +* Generate reports like membership lists |
| 26 | +* Send e-mail to members based on templates or just plain text |
| 27 | + |
| 28 | +## Development |
| 29 | + |
| 30 | +### How to run it with Docker |
| 31 | + |
| 32 | +There is an included `docker-compose.yml` that should get you started. This include a Postgres database and a dummy e-mail server to debug the email function. This is a easy way to get started, with a production like environment: |
| 33 | + |
| 34 | +``` |
| 35 | +docker-compose up --build |
| 36 | +``` |
13 | 37 |
|
14 | 38 | ### Run manage.py inside the containers |
15 | 39 |
|
@@ -55,10 +79,4 @@ pytest |
55 | 79 |
|
56 | 80 | ## Production build |
57 | 81 |
|
58 | | -A image is built and published to Docker Hub at `stacken/fingerweb:tag` where |
59 | | -tag is `latest` for the master branch, and otherwise the branch name. |
60 | | - |
61 | | -https://hub.docker.com/r/stacken/fingerweb/ |
62 | | - |
63 | | -After a merge to master, `stacken/fingerweb:latest` will be built and a webhook |
64 | | -will restart the production image. |
| 82 | +After a merge to master, a webhook will fire and the Dockerfile will be built, deployed and started on the production server. |
0 commit comments