Code Monkey home page Code Monkey logo

kimb-notes's People

Contributors

kimbtech avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

kimb-notes's Issues

Veröffentlichung

Veröffentlichung unter der GPLv3

  • Einfügen von Lizenzhinweisen
  • Entfernung aller privater Daten
  • Erstellung eines Installers und LibraryHosters
    • Aktuell muss bei der Einrichtung noch manuell in den JSON-Dateien editiert werden,
      hierzu soll ein automatischer Installer entstehen
    • Das Tool bezieht ein paar JS-Bibilotheken von dem Server data.***REMOVED***.eu, dies
      soll für die Veröffentlichung geändert werden.

MathJax

Auch die Eingabe von LaTex erlauben und dann mittels MathJax rendern.

JavaScript Hinweis

Wenn JavaScript deaktiviert ist oder ES6 nicht unterstützt wird, dann bekommt der User keine Meldung, das sollte sich ändern!

Archiv

Notizen können ja auch jetzt schon nicht gelöscht werden, aber trotzdem verschwinden sie für den User komplett, wenn er sie archiviert.

Den Button für den Archivmanager mit Leben füllen.

AppCache

Bessere Offline-Funktionalität durch CacheManifest-Datei.

Ohne Internet dann einfach aus dem localStorage laden (Login überspringen, Änderungen beim nächsten Mal mit Internet sichern)

Auch auf Desktop-App offline gut nutzbar machen.

Translation

Das System (UI) sollte übersetzt werden, es sind eigentlich nicht viele Stellen.

AuthCodeLinks und Passwort

Das Männchen oben rechts mit Leben füllen:

  • AuthCodeLinks
    • User kann erstellen und löschen (aber nur einmal nach Erstellung sehen)
    • Zeitpunkt des letzten Aufrufs
  • Passwort
    • Passwort ändern

Freigabe

Aktuell werden Freigaben nicht automatisch aktualisiert, hier müsste regelmäßig der Server nach Änderungen befragt werden.

Dies kann auch bei "normalen" Notizen sinnvoll sein (ein User auf zwei Geräten).

Weiterhin ist die Abfrage, ob eine Freigabe bearbeitbar sein soll, nicht beschriftet.

Markdown Optimierung

  • FontAwesome MD-Parser (mit :<name>: ?, Autocomplete?)
  • Emojis mittels Twitter Emoji ermöglichen (Eingabe wie?, JS Tastatur?)
  • Weitere Notiz per @<noteid> referenzieren
    • Autocomplete Funktion
    • Markdown nutzt noteid und Anzeige dann mit Namen (und anklickbar)
  • Tasklist
  • Anschließend Markdown Info-Seite anpassen!

Liste in Bereiche gruppieren

In der Notizliste soll es die Möglichkeit geben Gruppen zu erstellen, welche mehrere Notizen zusammenfassen.
So kann man zB ToDos von Planungen trennen.

Technisch der Liste eine untergeordnete Liste als Element ermöglichen, welche mittels Klick ausgeklappt werden kann. API benötigt ein Group Attribute bei Abfrage der Notizliste. Außerdem Möglichkeit der Vergabe von Attributen.

Notizverlauf

Den schon jetzt erstellten Verlauf der Notiz auch für User sichtbar machen und auch darauf zurückspringbar machen.

Den Button mit Leben füllen.

Verhalten wenn Server keine Rückmeldung

Festes Verhalten wenn Server keine Rückmeldung zu Notizabfrage gibt

  • Wird aus localStorage genommen und Server überschrieben?
  • Wird User befragt?
  • Wird Alter, Ähnlichkeit etc. verglichen??

Code-Dopplungen

Im Tool sind an einigen Stellen im PHP-Code sehr viele Dopplungen vorhanden, besonders bei Prüfungen der Eingaben und Auflösen von IDs zu Dateien/ Objekten.

Hier den Code in Klassen und Funktionen kapseln, bzw. durch optionale Parameter bei der Eingabepüfung besser verschachteln.

Notizarchiv stabiler

Eine defekte Datei (Notiz) kann das ganze Notizarchiv zerschießen, hier sollte ein sinnvolles Error Handling stattfinden und fehlerhafte Dateien einfach übersprungen oder als "nicht wiederherstellbar" markiert werden.

Dateianhänge

Manchmal benötigt man bei einer Notiz nicht nur Texte und Code, sondern auch Dateien.

Hierzu soll ein Dateiupload für jede Notiz möglich werden.

  • Dateien werden beim Archivieren gelöscht
  • Bilder aus Anhang mittels Markdown referenzierbar

Dateigröße auf 2 MB oder so beschränken, Bilder skalieren.

Offline Modus manuell deaktivieren

Das System erkennt automatisch, wenn es offline ist. Manchmal liegt es aber falsch, bisher muss man dann neu starten, um erneut nach einer Internetverbindung zu gucken.

Hier sollte es eine Button geben (Click auf Offlinemodus Meldung)

Freigabe

Notizfreigabe

  • Freigabe per Link
    • URL z.B.: https://notes.example.com/#<authcode>
    • Rechte einstellbar (Änderungen erlauben/ verbieten)
    • Links erstellen und löschen
    • Mehrere pro Notiz

Notizliste UI

Die Liste der Notizen soll bei schmalen Bildschirmen die volle Breite ausnutzen.

Multiuser-Notizen

Es soll möglich sein eine Notiz auch anderen Usern freizugeben und bei denen anzuzeigen.

Bibilotheken Update

Es werden noch alte Versionen von jQuery und jQuery UI (vielleicht Theme an Rest anpassen) genutzt, hier sollte man mal die aktuellen nutzen.
Auch sollten andere Bibilotheken überprüft werden.

Ein automatischer Prozess im Build-Skript wäre schön um veraltete Bibilotheken zu erkennen und automatisch anzupassen.

Administrationsdialog

Der Administrationsdialog nimmt teilweise eine unzureichende Prüfung der Eingaben vor.

  • doppelter Username
  • Username mit GROSSbuchstaben
  • ...

Demo

Einene Demo über GitHub pages ermöglichen.

Keine Server-Backend, nur feste Werte über eine veränderte ajax_request() Funktion auslesen.
Somit ein Gefühl geben, aber kein ganzes Tool.

Paralleles schreiben

In seltenen Fällen kann es passieren, dass eine Prozess nacheinander in eine JSON Datei schreibt und damit Daten überschreibt.

Die JSON-Klasse sollte ihre Dateien locken und die JavaScript App sollte immer nur einen Schreibbefehl senden, bevor dieser erneut kommt. (Autosave in Maker)

Die JSON-Klasse könnte auch nach dem Schreiben das Ergebnis prüfen.

REST API

Neben der AJAX-Web-API auch eine REST-API bauen, gleicher Aufbau bis auf Login, hier nur Username und Passwort bzw. Username und Authcode zu UserID (und Authcode) funktion.

JSON Klasse

Die Methode getValue() der JSON Klasse gibt ja einfach den Inhalt zurück, sobald der Inhalt unter einem nächsten Index empty() ist. Diese Verhalten führt zu einigen Fehlern bzw. unerwartetem Verhalten, hier muss etwas optimiert werden!

Bessere App-Integration

Die WebApp sieht in der Desktop-Application noch sehr nach Homepage an, hier wäre ein Design näher an einer nativen App schön.

(automatisch erkennen auf Mobil und per Befehl in der Desktop-Application)

iOS Feststelltaste Bug

Unter iOS wird die Feststelltaste in CodeMirror teilweise nicht korrekt erkannt. (Bleibt nach einmal groß im Caps-Log)

Fix

Verschlüsselung

Schon jetzt wird die SJCL Bibilothek benutzt, mit dieser soll es dann auch möglich sein verschlüsselte Notzien anzulegen.

Der User kann bei der Erstellung verschlüsselt wählen und muss dann ein Passwort angeben, mit dem die Notiz verschlüsselt und auch wieder entschlüsselt werden kann. (So kann dann selbst der Serverbetreiber nichts lesen.)

Der Verlauf kann dann kein Diff. anzeigen.

Passwort Plugin

Mittels Verschlüsselter Notizen ein komfortable Listung von Passwörtern ermöglichen.
Quasi als Passwortmanager fungieren können.

(Funktion aktivieren beim Erstellen, dann keine direkte Eingabe mehr sondern PW Frontend)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.