WMS Notes is a hierarchical (tree-based) note-taking application.
Features:
- A hierarchy of notes and folders
- Synchronization across desktop and Android phone, enabling offline note editing
- Note-taking in Markdown format
- Image attachments
The application consists of three parts:
- A desktop application for Linux, Windows and macOS
- An Android app
- A server application for Linux, Windows and macOS
WMS Notes has been used to try out several approaches and technologies, including:
- Event sourcing and CQRS
- Reactive extensions (specifically RxJava, RxKotlin and RxAndroid)
- JavaFX (and the TornadoFX framework for Kotlin)
- Protobuf + gRPC
- Android development
- Kotlin
Besides the technologies mentioned above, the project also uses:
The Markdown editing and previewing panes have been gratefully taken from Markdown Writer FX.
Here are some good articles on event sourcing:
- Design of an CQRS/ES system: https://hackernoon.com/1-year-of-event-sourcing-and-cqrs-fb9033ccd1c6 (contains links to other good resources as well)
- On dealing with concurrent updates: https://medium.com/@teivah/event-sourcing-and-concurrent-updates-32354ec26a4c