Compare commits
4 Commits
554e1af245
...
20c9b84e6e
Author | SHA1 | Date |
---|---|---|
|
20c9b84e6e | |
|
c554e506ea | |
|
80dfebf63b | |
|
6c9c27d6ab |
151
README.md
151
README.md
|
@ -1,6 +1,6 @@
|
||||||
# Adrema
|
# 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.
|
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,78 +12,109 @@ AdReMa kann von jedem und jeder genutzt werden, die einen NaMi-Account besitzt u
|
||||||
|
|
||||||
## Was kann ich mit AdReMa machen?
|
## Was kann ich mit AdReMa machen?
|
||||||
|
|
||||||
* Basisdaten von Mitgliedern anzeigen und bearbeiten
|
- Basisdaten von Mitgliedern anzeigen und bearbeiten
|
||||||
* Einfacher Filter nach Gruppierung, Tätigkeit, etc
|
- Einfacher Filter nach Gruppierung, Tätigkeit, etc
|
||||||
* Detailansichten mit allen zugehörigen Daten
|
- Detailansichten mit allen zugehörigen Daten
|
||||||
* Führungszeugnisse und Präventionssulungen nachhalten
|
- Führungszeugnisse und Präventionssulungen nachhalten
|
||||||
* Beitragszahlungen eintragen
|
- Beitragszahlungen eintragen
|
||||||
* Automatisches Rechunungssystem
|
- Automatische Rechunungserstellung
|
||||||
* Eigene Beiträge hinterlegen (z.B. interner Stammes-Jahresbeitrag)
|
- Eigenen Beitragssatz hinterlegen (z.B. interner Stammes-Jahresbeitrag)
|
||||||
* Generieren von Zuschusslisten (aktuell RdP NRW)
|
- 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)
|
- 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
|
- 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)
|
- eFz-Bescheinigung abrufen für alle Leitenden (das kann in NaMi nur jede\*r für sich selbst)
|
||||||
* Ausbildungen eintragen (WBK-Bausteine)
|
- Ausbildungen eintragen (WBK-Bausteine)
|
||||||
* Abrufen von Kontakten ins eigene Telefonbuch (mittels CardDAV)
|
- 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")
|
Außerdem ist AdReMa auch problemlos auf Handys und Tablets bedienbar ("mobiles Design")
|
||||||
|
|
||||||
# Installation
|
## Installation des Produktivsystems
|
||||||
|
|
||||||
## App Key generieren
|
1. Herunterladen der Beispiel Docker-Compose
|
||||||
|
|
||||||
Kopiere .app.env.example nach .app.env
|
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
curl https://git.zoomyboy.de/silva/adrema/raw/branch/master/docker-compose.prod.yml -o docker-compose.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
2. Herunterladen der Beispiel Environmentvariablen-Datei
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
curl https://git.zoomyboy.de/silva/adrema/raw/branch/master/.app.env.example -o .app.env
|
||||||
|
```
|
||||||
|
|
||||||
|
3. In der `.app.env` notwendige Einstellungen vornehmen:
|
||||||
|
|
||||||
|
- `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
|
||||||
|
|
||||||
|
4. Container zur Gennerierung des App-Key starten
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
docker compose up php
|
||||||
|
```
|
||||||
|
|
||||||
|
Nach einiger zeit wird ein App-Key generiert:
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
Keinen APP KEY gefunden. Key wird generiert: base64:xxx
|
||||||
|
```
|
||||||
|
|
||||||
|
Container herunterfahren und entfernen
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
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`
|
||||||
|
|
||||||
|
```env
|
||||||
|
APP_KEY=base64:xxx
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Alle Container starten
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Nach kurzer Zeit ist AdReMa über <http://localhost:8000> erreichbar und es kann sich mit dem zuvor festgelegten Login eingeloggt werden
|
||||||
|
|
||||||
|
## Nutzen des Entwicklungssystmes
|
||||||
|
|
||||||
|
1. Klonen des Reposetories
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
git clone https://git.zoomyboy.de/silva/adrema.git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Kopieren der Beispiel Docker-Compose für das Entwickeln und nach Wünschen anpassen
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
cp docker-compose.dev.yml docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Kopieren der Beispiel Environmentvariablen-Datei
|
||||||
|
|
||||||
|
```cmd
|
||||||
cp .app.env.example .app.env
|
cp .app.env.example .app.env
|
||||||
```
|
```
|
||||||
|
|
||||||
Services starten:
|
4. Submodule aktuallisieren
|
||||||
|
|
||||||
```
|
```cmd
|
||||||
docker compose up
|
git submodule update --init
|
||||||
```
|
```
|
||||||
|
|
||||||
Es wird die ein App Key generiert: ``Keinen APP KEY gefunden. Key wird generiert: base64:..........``
|
5. Container erstellen
|
||||||
|
|
||||||
Kopiere diesen App key und setze in in .app.env als APP_KEY ein (APP_KEY=base64:........).
|
```cmd
|
||||||
|
docker compose build
|
||||||
## Einstellungen
|
|
||||||
|
|
||||||
Passe in der .app.env dann folgende Einstellungen an:
|
|
||||||
|
|
||||||
### APP_URL
|
|
||||||
|
|
||||||
Hier sollte die URL (mit HTTPS) stehen, unter der Adrema erreichbar sein soll (z.B. https://adrema.stamm-bipi.de)
|
|
||||||
|
|
||||||
### Mail
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
MAIL_FROM_NAME ist 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 erreichbar sein sollte (z.B. "vorstand@stamm-bipi.de").
|
|
||||||
|
|
||||||
### DB Passwort
|
|
||||||
|
|
||||||
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 )
|
|
||||||
|
|
||||||
## Starten
|
|
||||||
|
|
||||||
Führe nun den DB Container aus, um eine erste Version der Datenbank zu erstellen.
|
|
||||||
|
|
||||||
```
|
|
||||||
docker-compose up db -d
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Nun kannst du auf localhost:8000 die App öffnen, einen LB verwenden, den Port mit CLI Optionen ändern, etc.
|
6. Mit Schritt 3 und den folgenden der [Installation des Produktivsystems](#installation-des-produktivsystems) fortfahren
|
||||||
|
|
||||||
## Standard Login
|
|
||||||
|
|
||||||
Beim ersten Starten wird ein Benutzer mit folgenden Zugangsdaten erstellt:
|
|
||||||
|
|
||||||
* E-Mail-Adresse: admin@example.com
|
|
||||||
* Passwort: admin
|
|
||||||
|
|
||||||
|
|
|
@ -110,11 +110,6 @@ class BdkjHesse extends ContributionDocument
|
||||||
return $member->birthYear();
|
return $member->birthYear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function memberDays(MemberData $member): string
|
|
||||||
{
|
|
||||||
return $this->durationDays();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function basename(): string
|
public function basename(): string
|
||||||
{
|
{
|
||||||
return 'zuschuesse-bdkj-hessen';
|
return 'zuschuesse-bdkj-hessen';
|
||||||
|
|
|
@ -15,6 +15,8 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
- redis
|
||||||
|
- socketi
|
||||||
command: /bin/entrypoint app
|
command: /bin/entrypoint app
|
||||||
env_file:
|
env_file:
|
||||||
- .app.env
|
- .app.env
|
||||||
|
@ -34,7 +36,6 @@ services:
|
||||||
image: zoomyboy/adrema-app:latest
|
image: zoomyboy/adrema-app:latest
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- php
|
- php
|
||||||
command: /bin/entrypoint horizon
|
command: /bin/entrypoint horizon
|
||||||
env_file:
|
env_file:
|
||||||
|
@ -49,13 +50,12 @@ services:
|
||||||
REDIS_HOST: redis
|
REDIS_HOST: redis
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/storage:/app/storage/app
|
- ./data/storage:/app/storage/app
|
||||||
- ./cookies:/app/packages/laravel-nami/.cookies
|
- ./data/cookies:/app/packages/laravel-nami/.cookies
|
||||||
|
|
||||||
schedule:
|
schedule:
|
||||||
image: zoomyboy/adrema-app:latest
|
image: zoomyboy/adrema-app:latest
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- php
|
- php
|
||||||
command: /bin/entrypoint schedule
|
command: /bin/entrypoint schedule
|
||||||
env_file:
|
env_file:
|
||||||
|
@ -95,3 +95,5 @@ services:
|
||||||
redis:
|
redis:
|
||||||
image: redis:alpine3.18
|
image: redis:alpine3.18
|
||||||
restart: always
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data/redis:/data
|
||||||
|
|
|
@ -17,6 +17,8 @@ services:
|
||||||
dockerfile: ./.docker/php.Dockerfile
|
dockerfile: ./.docker/php.Dockerfile
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
- redis
|
||||||
|
- socketi
|
||||||
command: /bin/entrypoint app
|
command: /bin/entrypoint app
|
||||||
env_file:
|
env_file:
|
||||||
- .app.env
|
- .app.env
|
||||||
|
@ -37,7 +39,6 @@ services:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./.docker/php.Dockerfile
|
dockerfile: ./.docker/php.Dockerfile
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- php
|
- php
|
||||||
command: /bin/entrypoint horizon
|
command: /bin/entrypoint horizon
|
||||||
env_file:
|
env_file:
|
||||||
|
@ -59,7 +60,6 @@ services:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./.docker/php.Dockerfile
|
dockerfile: ./.docker/php.Dockerfile
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- php
|
- php
|
||||||
command: /bin/entrypoint schedule
|
command: /bin/entrypoint schedule
|
||||||
env_file:
|
env_file:
|
||||||
|
@ -96,4 +96,5 @@ services:
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:alpine3.18
|
image: redis:alpine3.18
|
||||||
container_name: redis
|
volumes:
|
||||||
|
- ./data/redis:/data
|
||||||
|
|
|
@ -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=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=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 ($(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>>>)$) {<<<$memberDays($member)>>>};
|
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * <<<$j%20>>>)$) {<<<$durationDays>>>};
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * 20)$) {<<<$membersDays($chunk)>>>};
|
\node[anchor=base, text width=17.2mm, align=center] at ($(199.6mm, 50.0mm + 6.1mm * 20)$) {<<<$membersDays($chunk)>>>};
|
||||||
|
|
Loading…
Reference in New Issue