Compare commits

..

No commits in common. "20c9b84e6e0aed9e610605083a783f982d1cc86e" and "554e1af245fdcb59605b6546d196ebc4d4bc70d5" have entirely different histories.

5 changed files with 59 additions and 88 deletions

125
README.md
View File

@ -1,6 +1,6 @@
# Adrema
**Schön, dass du den Weg hierhin gefunden hast!**
__Schön, dass du den Weg hierhin gefunden hast!__
Da du diese Seite besuchst, gehörst du sicherlich zu den Leuten, die möglichst einfach die Daten ihrer Mitglieder pfelgen wollen. Das ist offiziell in der DPSG nur mit NaMi möglich.
@ -12,109 +12,78 @@ AdReMa kann von jedem und jeder genutzt werden, die einen NaMi-Account besitzt u
## Was kann ich mit AdReMa machen?
- Basisdaten von Mitgliedern anzeigen und bearbeiten
- Einfacher Filter nach Gruppierung, Tätigkeit, etc
- Detailansichten mit allen zugehörigen Daten
- Führungszeugnisse und Präventionssulungen nachhalten
- Beitragszahlungen eintragen
- Automatische Rechunungserstellung
- Eigenen Beitragssatz hinterlegen (z.B. interner Stammes-Jahresbeitrag)
- Generieren von Zuschusslisten (aktuell RdP NRW)
- Einpflegen von internen Tätigkeiten, die nicht in NaMi vorhanden sind (um z.B. stammes-interne AGs / AKs zu verwalten)
- Automatisches Erstellen und Managen von E-Mail-Verteilern mittels Mailman 3.0
- eFz-Bescheinigung abrufen für alle Leitenden (das kann in NaMi nur jede\*r für sich selbst)
- Ausbildungen eintragen (WBK-Bausteine)
- Abrufen von Kontakten ins eigene Telefonbuch (mittels CardDAV)
* Basisdaten von Mitgliedern anzeigen und bearbeiten
* Einfacher Filter nach Gruppierung, Tätigkeit, etc
* Detailansichten mit allen zugehörigen Daten
* Führungszeugnisse und Präventionssulungen nachhalten
* Beitragszahlungen eintragen
* Automatisches Rechunungssystem
* Eigene Beiträge hinterlegen (z.B. interner Stammes-Jahresbeitrag)
* Generieren von Zuschusslisten (aktuell RdP NRW)
* Einpflegen von internen Tätigkeiten, die nicht in NaMi vorhanden sind (um z.B. stammes-interne AGs / AKs zu verwalten)
* Automatisches Erstellen und managen von E-Mail-Verteilern mittels Mailman 3.0
* eFz-Bescheinigung abrufen für alle Leitenden (das kann normalerweise nur jede*r einzelne für sich selbst)
* Ausbildungen eintragen (WBK-Bausteine)
* Abrufen von Kontakten ins eigene Telefonbuch (mittels CardDAV)
Ziel dieses Projektes ist es, viele Dinge, die man normalerweise manuell zu tun hat so gut es geht zu automatisieren oder zumindest zu vereinfachen. So kann man sich als Leitende\*r / Vorstand auf die wichtigeren Dinge konzentrieren wie Gruppenstunden, Lager, Leiterrunden, etc.
Ziel dieses Projektes ist es, viele Dinge, die man normalerweise manuell zu tun hat so gut es geht zu automatisieren oder zumindest zu vereinfachen. So kann man sich als Leitende*r / Vorstand auf die wichtigeren Dinge konzentrieren wie Gruppenstunden, Lager, Leiterrunden, etc.
Außerdem ist AdReMa auch problemlos auf Handys und Tablets bedienbar ("mobiles Design")
## Installation des Produktivsystems
# Installation
1. Herunterladen der Beispiel Docker-Compose
## App Key generieren
```cmd
curl https://git.zoomyboy.de/silva/adrema/raw/branch/master/docker-compose.prod.yml -o docker-compose.yml
```
Kopiere .app.env.example nach .app.env
2. Herunterladen der Beispiel Environmentvariablen-Datei
```
cp .app.env.example .app.env
```
```cmd
curl https://git.zoomyboy.de/silva/adrema/raw/branch/master/.app.env.example -o .app.env
```
Services starten:
3. In der `.app.env` notwendige Einstellungen vornehmen:
```
docker compose up
```
- `APP_URL`: Hier sollte die URL (mit HTTPS) stehen, unter der Adrema erreichbar sein soll (z.B. `https://adrema.stamm-bipi.de`)
- Mail-Server Einstellungen `MAIL_PORT`, `MAIL_HOST`, `MAIL_USERNAME`, `MAIL_PASSWORD` und `MAIL_ENCRYPTION` anpassen
- `MAIL_FROM_NAME`: Der Name, der als Absender von E-Mails gesetzt wird (z.B. `Stamm Bipi Service`)
- `MAIL_FROM_ADDRESS`: Die dazu gehörige E-Mail-Adresse, die natürlich für antworten erreichbar sein sollte (z.B. `vorstand@stamm-bipi.de`)
- `DB_PASSWORD` und `MYSQL_PASSWORD`: Mit dem selben sicheren Passwort für die Datenbank versehen
- `USER_EMAIL` und `USER_PASSWORD`: Einstellen des standard Adrema Logins
Es wird die ein App Key generiert: ``Keinen APP KEY gefunden. Key wird generiert: base64:..........``
4. Container zur Gennerierung des App-Key starten
Kopiere diesen App key und setze in in .app.env als APP_KEY ein (APP_KEY=base64:........).
```cmd
docker compose up php
```
## Einstellungen
Nach einiger zeit wird ein App-Key generiert:
Passe in der .app.env dann folgende Einstellungen an:
```cmd
Keinen APP KEY gefunden. Key wird generiert: base64:xxx
```
### APP_URL
Container herunterfahren und entfernen
Hier sollte die URL (mit HTTPS) stehen, unter der Adrema erreichbar sein soll (z.B. https://adrema.stamm-bipi.de)
```cmd
docker compose down
```
### Mail
5. Der generierte App-Key muss als Environmentvariable (`APP_KEY`) mit in den Docker-Container gegeben werden. Kopiere den App-Key in die Datei `.app.env`
Setze nun die Einstellungen für den Mail-Versand ein. Du solltest mindestens MAIL_PORT, MAIL_HOST, MAIL_USERNAME, MAIL_PASSWORD und MAIL_ENCRYPTION setzen.
```env
APP_KEY=base64:xxx
```
MAIL_FROM_NAME ist der Name, der als Absender von E-Mails gesetzt wird. z.B. "Stamm Bipi Service".
6. Alle Container starten
MAIL_FROM_ADDRESS die dazu gehörige E-Mail-Adresse, die natürlich erreichbar sein sollte (z.B. "vorstand@stamm-bipi.de").
```cmd
docker compose up -d
```
### DB Passwort
7. Nach kurzer Zeit ist AdReMa über <http://localhost:8000> erreichbar und es kann sich mit dem zuvor festgelegten Login eingeloggt werden
Setze die beiden letzten Variablen (da wo "secret_db_password" steht) auf ein generiertes sicheres Passwort. Bei beiden Variablen muss der gleiche Wert eingestellt werden (also so wie vorher, nur sicherer :D )
## Nutzen des Entwicklungssystmes
## Starten
1. Klonen des Reposetories
Führe nun den DB Container aus, um eine erste Version der Datenbank zu erstellen.
```cmd
git clone https://git.zoomyboy.de/silva/adrema.git
```
```
docker-compose up db -d
```
2. Kopieren der Beispiel Docker-Compose für das Entwickeln und nach Wünschen anpassen
Nun kannst du auf localhost:8000 die App öffnen, einen LB verwenden, den Port mit CLI Optionen ändern, etc.
```cmd
cp docker-compose.dev.yml docker-compose.yml
```
## Standard Login
3. Kopieren der Beispiel Environmentvariablen-Datei
Beim ersten Starten wird ein Benutzer mit folgenden Zugangsdaten erstellt:
```cmd
cp .app.env.example .app.env
```
* E-Mail-Adresse: admin@example.com
* Passwort: admin
4. Submodule aktuallisieren
```cmd
git submodule update --init
```
5. Container erstellen
```cmd
docker compose build
```
6. Mit Schritt 3 und den folgenden der [Installation des Produktivsystems](#installation-des-produktivsystems) fortfahren

View File

@ -110,6 +110,11 @@ class BdkjHesse extends ContributionDocument
return $member->birthYear();
}
public function memberDays(MemberData $member): string
{
return $this->durationDays();
}
public function basename(): string
{
return 'zuschuesse-bdkj-hessen';

View File

@ -15,8 +15,6 @@ services:
restart: always
depends_on:
- db
- redis
- socketi
command: /bin/entrypoint app
env_file:
- .app.env
@ -36,6 +34,7 @@ services:
image: zoomyboy/adrema-app:latest
restart: always
depends_on:
- db
- php
command: /bin/entrypoint horizon
env_file:
@ -50,12 +49,13 @@ services:
REDIS_HOST: redis
volumes:
- ./data/storage:/app/storage/app
- ./data/cookies:/app/packages/laravel-nami/.cookies
- ./cookies:/app/packages/laravel-nami/.cookies
schedule:
image: zoomyboy/adrema-app:latest
restart: always
depends_on:
- db
- php
command: /bin/entrypoint schedule
env_file:
@ -95,5 +95,3 @@ services:
redis:
image: redis:alpine3.18
restart: always
volumes:
- ./data/redis:/data

View File

@ -17,8 +17,6 @@ services:
dockerfile: ./.docker/php.Dockerfile
depends_on:
- db
- redis
- socketi
command: /bin/entrypoint app
env_file:
- .app.env
@ -39,6 +37,7 @@ services:
context: .
dockerfile: ./.docker/php.Dockerfile
depends_on:
- db
- php
command: /bin/entrypoint horizon
env_file:
@ -60,6 +59,7 @@ services:
context: .
dockerfile: ./.docker/php.Dockerfile
depends_on:
- db
- php
command: /bin/entrypoint schedule
env_file:
@ -96,5 +96,4 @@ services:
redis:
image: redis:alpine3.18
volumes:
- ./data/redis:/data
container_name: redis

View File

@ -26,7 +26,7 @@
\node[anchor=base, text width=18.5mm, align=center] at ($(96.85mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$memberGender($member)>>>};
\node[anchor=base, text width=67.2mm, align=center] at ($(140.0mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$memberCity($member)>>>};
\node[anchor=base, text width=17.2mm, align=center] at ($(182.5mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$memberBirthYear($member)>>>};
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$durationDays>>>};
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$memberDays($member)>>>};
@endforeach
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * 20)$) {<<<$membersDays($chunk)>>>};