Kalender Manger (Datum -> Themen -> Notizen)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
0xPYTHONIC
User
Beiträge: 3
Registriert: Montag 3. Juli 2017, 20:51

Hallo,
ich bin neu in dem Forum und traue mich das erste mal auch etwas in einem Forum zu fragen :D
(Falls ich diesen Thread in die falsche Kategorie poste, verzeiht mir bitte)
Ich habe bis jetzt eigentlich nur Posts gelesen und die haben mir bis jetzt immer weitergeholfen.
Doch jetzt brauche ich eure Ideen und Erfahrungen um eine Art "PyPlaner" zu basteln.

Ich möchte sowas wie einen digitalen Kalender mit einer Notizfunktion programmieren.

Meine Vorstellungen sehen in etwa so aus:
- Mehrere User anlegen können
- Kalender anzeigen lassen, mit der Möglichkeit einen Tag auszuwählen.
- Ein Tag hat mehrere Themen
- Ein Thema hat mehrere Notizen
- Notizen lassen sich Themen (die man zuvor erstellt hat) zuordnen
- Notizen & Themen lassen sich beliebig bearbeiten
- Suchfunktionen:
----- Nach Wörtern die in den Notizen vorkommen (Es soll ein Datum angezeigt werden, damit ich weis wann ich welches Wort verwendet habe)
----- Nach Themen (Wieder soll ein/mehrere Datum/Daten angezeigt werden, um zu wissen wann ich das Thema behandelt habe
----- Nach Datum (Es soll mir die Notizen eines Datums angezeigt werden.)
- Es soll ein PDF Report erstellt werden. (Für einen Bestimmten Zeitraum, für Keywords & Themen)

Habt ihr noch Ideen & nützliche Module für das Projekt?
Welche Art von Datenbank soll ich da verwenden, oder wie sollen die Daten abgespeichert werden, damit ich sie auch so suchen kann?
Ich möchte lange Ladezeiten verhindern, welche Methoden sind am Effizientesten für mein Vorhaben?
Ich möchte wenn möglich eine GUI bauen. (Schaut nicht schön aus mit einem Kommandozeilenprogramm, glaube ich halt :lol: )

Danke euch jetzt schon :)

0xPYTHONIC
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

@0xPYTHONIC: der erste Schritt ist ein schönes Datenbank-Design. Du hast ja schon relativ genaue Vorstellungen, welche Daten gespeichert werden sollen und wie sie zusammenhängen. Sieht alles relational aus, so dass Du mit einer klassischen Datenbank anfangen kannst. Das Datenbankmodell testest Du dann gegen die gewünschten Abfragen, also lassen sich alle Fragen auf einfache Art und Weise beantworten. Dann erst geht es daran, das Modell in Objekten abzubilden (Stichwort ORM), empfehlenswert ist es dafür SQLAlchemy zu benutzen. Und keine Sorge, das erste Datenbankmodell ist immer ungeeignet, und das wirst Du merken, wenn Du zu 90% mit Deinem Programm fertig bist. Dabei lernst Du aber so viel, dass für Dein nächstes Projekt 95% fertig werden.

Statt GUI setzt man sowas heutzutage üblicherweise als Web-App um.
0xPYTHONIC
User
Beiträge: 3
Registriert: Montag 3. Juli 2017, 20:51

Danke für deine Antwort :D
Hast du Ideen wie ich das mit der Webapp gestalten sollte, und wie soll ich da Python sinnvoll benutzen?
Ich bräuchte wenn es eine Webapp sein soll, ja eigentlich nur SQL, PHP, HTML, CSS, JAVASCRIPT und einen Server oder sehe ich das falsch?
Ich weiss nicht wie ich da am besten vorgehen soll um dieses Projekt durchzuführen :P

Danke

0xPYTHONIC
BlackJack

@0xPYTHONIC: Ersetze PHP in Deiner Aufzählung durch Python. :-) Und schau Dir mal das Webrahmenwerk Django an.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

0xPYTHONIC hat geschrieben:und einen Server oder sehe ich das falsch?
Ein Webpaket bei einem Hoster sollte bis auf Weiteres genügen, doch schaue Dir bei einem Vergleich an, wer was anbietet und was in den Paketen enthalten ist, denn Python und eine Datenbank sollte dabei sein, wenn Du mit Python so eine Webapp programmieren möchtest. Und was Du noch benötigst, ist eine Testumgebung auf Deinem Rechner.
0xPYTHONIC
User
Beiträge: 3
Registriert: Montag 3. Juli 2017, 20:51

Danke euch :)
Okay, also ersetzt Python PHP? Das sind mal super Nachrichten :D

Wie könnte ich Python sonst noch nutzen?

Habt ihr noch Tipps für die Datenbank?

Der Server ist kein Problem, habe einen Raspi mit Apachie2 und MySQL Server mit Port Forwarding ins internet und DYNDNS :)

0xPYTHONIC
BlackJack

@0xPYTHONIC: Python alleine ersetzt PHP nicht, da braucht's dann noch ein Webrahmenwerk, denn im Gegensatz zu PHP ist Python eine allgemeine Programmiersprache und nicht nur für Webseiten. Dafür hat man dann auch von Haus eine bessere Trennung zwischen HTML und Programmlogik.

Tipp für die Datenbank wäre MySQL/MariaDB oder PostgreSQL. Und dann bei Django dessen ORM oder wie schon erwähnt wurde das ORM von SQLAlchemy.
Antworten