{"id":20820861,"url":"https://github.com/webdad/hfservice-man","last_synced_at":"2025-03-12T06:23:30.164Z","repository":{"id":152505399,"uuid":"125343069","full_name":"WebDaD/hfservice-man","owner":"WebDaD","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-01T22:14:53.000Z","size":1011,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T16:39:52.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WebDaD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-15T09:28:01.000Z","updated_at":"2020-10-09T12:01:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"8a964a0a-2ba5-49d9-a23a-bd526b1e692e","html_url":"https://github.com/WebDaD/hfservice-man","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fhfservice-man","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fhfservice-man/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fhfservice-man/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fhfservice-man/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WebDaD","download_url":"https://codeload.github.com/WebDaD/hfservice-man/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243167141,"owners_count":20247050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T22:10:32.176Z","updated_at":"2025-03-12T06:23:30.158Z","avatar_url":"https://github.com/WebDaD.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hörfunkservice - Konzept\n\nAutor: Dominik Sigmund, WebDaD \u003cdominik.sigmund@webdad.eu\u003e  \nVersion: 0.1  \nDatum: 2018-03-14  \n\n\n\u003c!-- TOC --\u003e\n\n- [Hörfunkservice - Konzept](#hörfunkservice---konzept)\n  - [TL;DR](#tldr)\n  - [Vorgaben](#vorgaben)\n  - [Details](#details)\n    - [Datenbank](#datenbank)\n    - [Display-Seiten](#display-seiten)\n    - [Einbau in bestehenden System](#einbau-in-bestehenden-system)\n    - [Admin-Tool](#admin-tool)\n    - [Optionale Features](#optionale-features)\n  - [Migration der Daten](#migration-der-daten)\n  - [Milestones](#milestones)\n\n\u003c!-- /TOC --\u003e\n\n## TL;DR\n\nFür eine bessere Verwaltung der O-Töne zu Themen in Messen wird eine Datenbank genutzt, die durch eine Webapplikation befüllt wird. Die Daten aus der Datenbank werden in Unterseiten geladen und dargestellt.\n\n## Vorgaben\n\n* Es gibt Messen mit Name, Link, Logo, Text, Themenservice.pdf\n* Zu jeder Messe gibt es Themen.\n* Es gibt Messen wo kein Themenservice notwendig ist. Hier sollte eine Möglichkeit des Weglassens sein. \n* Ein Thema besteht aus einem Titel, Text und einem PDF\n* Zu jedem Thema gibt es O-Töne\n* Diese sollen als Akkordeon dargestellt werden.\n* Ein O-Ton besteht aus einem Titel, einem Text, einer mp3 und evtl einem Bild\n* Die Lösung soll einfach in die vorhandene Struktur eingebunden werden können.\n* Die Zugriffe sollen per Google-Analytics logbar sein\n\n## Details\n\n### Datenbank\n\nEs wird eine MySQL-Datenbank mit folgenden Tabellen genutzt\n\n* messen\n\t* id (PK, Auto Increment)\n\t* titel\n\t* slug (URL-Sichere Variante des Titels)\n\t* text\n\t* bild\n\t* link\n\t* themenservice\n\t* datum\n\t* sortierung\n* themen\n\t* id (PK, Auto Increment)\n\t* titel\n\t* text\n\t* pdf\n\t* messen_id (FK)\n* o-toene\n\t* id (PK, Auto Increment)\n\t* titel\n\t* text\n\t* bild\n\t* mp3\n\t* themen_id (FK)\n* user\n\t* id (PK, Auto Increment)\n\t* login\n\t* password (salted hash)\n\n### Display-Seiten\n\nFolgende Fragmente werden für die Anzeige der Daten erzeugt und können dann eingebunden werden:\n\n* navbar.php\n\t* Stellt die Messen mit Links zu den Messeseiten dar.\n\t* Als Liste: Simple Liste mit und ohne Bild, Titel und Link\n\t* Als Kacheln: Bilder als Kacheln mit Link\n\t* Als Streifen: Nur Logos mit Links als Streifen (nächste Veranstaltungen)\n\t* parameter Sortierung: Händisch oder Datum)\n* messe_inhalt.php\n\t* Als Parameter den slug einer Messe\n\t* Enthält Messe-Informationen\n\t* Enthält die Themen als Akkordeon\n\t* In den Themen liegen die O-Töne mit Audio-Player (html5 -\u003e \u003caudio\u003e)\n\t* Wenn es ein Bild gibt, liegt dieses als Thumbnail vor (server-gen). Beim rollover wird ein grosses angezeigt.\n\t* Die mp3 ist hier als sauberer Link hinterlegt um das Loggen in Analytics zu ermöglichen.\n\n### Einbau in bestehenden System\n\nDie vorhandene Index.php wird aufgeteilt in:  \n\n* header.php (Alles vor dem Inhalt)  \n* footer.php (Alles nach dem Inhalt)  \n\nEs werden 2 neue Dateien erstellt:  \n\n* index.php\n\t* include header.php\n\t* include navbar.php?type=list|grid\n\t* include footer.php\n* messe.php?slug=SLUG_DER_MESSE\n\t* include header.php\n\t* include messe_inhalt.php?slug=SLUG_DER_MESSE\n\t* include footer.php\n\nEmpfohlen wird auch die Nutzung eines .htaccess-Mod-rewrites zur schöneren Darstellung (SEO-Friendly) der Links:\n\nAus *messe.php?slug=SLUG_DER_MESSE* wird dann **messe/SLUG_DER_MESSE**\n\n### Admin-Tool\n\nDas Admin-Tool ist eine kleine Webapplikation, geschrieben unter Verwendung der Frameworks Angular, Bootstrap und Dropzone.\nIm hintergrund gibt es eine api.php, die die Daten aus der Datenbank zur Verfügung stellt.\nDie Seite ist nur per Login erreichbar (interne Userverwaltung).\n\nAls Drag'Drop-Plugin: https://github.com/marceljuenemann/angular-drag-and-drop-lists\n\nVerwaltet werden hier:\n* User (Anlegen, Löschen, Login/Passwort ändern)\n* Messen (Anlegen, Löschen, Editieren, Sortieren)\n\nBeim Anlegen und verwalten der Messen können Bilder und PDFs hochgeladen werden.\n\nDie Messen können per Drag'n'Drop neu sortiert werden.\nIn der Anzeige kann ich auswählen, nach was ich sie hier sortiert haben will.\n\nBeim Klick auf eine Messe kann ich die Messe verwalten und die Themen als Liste sehen.\nHier können Themen angelegt, gelöscht und bearbeitet werden.\n\nKlicke ich hier auf ein Thema, kann ich das Thema verwalten und die O-Töne als Liste sehen.\nIn dieser Ansicht kann ich O-Töne anlegen, löschen und bearbeiten.\nBild und mp3-Datei lade ich hier per Drag'n'Drop hoch.\n\n#### api.php\n\n* Verb, Type, ID, Data in Variablen\n* Jeder Type als Klasse mit Funktionen\n* Switch-Case als Sender\n* Send JSON\n\n### Optionale Features\n\nAus der Nutzung einer Datenbank ergeben sich folgende Möglichkeiten:\n\n* Podcast\n\t* ein dynamischer Podcast der mp3s kann erzeugt werden\n* Suche\n\t* eine Suche über die Datenbank um zB bestimmte O-Töne zu finden.\n\n\n## Migration der Daten\n\nDie vorhandenen Daten können Skript-gesteuert oder per Hand in die Datenbank eingetragen werden.\nIch empfehle hier die händische Variante, da sie effizienter ist.\n\n## Milestones\n\n1. Datenbank und Zugriffseiten\n\t* Die Lösung kann nun eingebunden werden, die Daten werden händisch in die Datenbank eingetragen (phpmyadmin, ftp)\n2. Admin-Tool\n\t* Ab hier können die Daten per Web eingetragen werden.\n\n## Deployment\n\nper FTP Sync","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdad%2Fhfservice-man","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdad%2Fhfservice-man","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdad%2Fhfservice-man/lists"}