1.4 KiB
Simple Note
This project is a structured note-taking software-server.
Client
Client it self can also do note-taking locally without setup server.
The client is written in C# using avalonia to achieve cross-platform.
Target platforms:
- Windows
- Linux
- macOS
- Android
- Web (WASM)
Server
Server is also written in C# using ASP.Net Core Web API.
Server is a distributed server structure. A server can set a destination server to sync content from and to target server. And server can broadcast data changes to other servers connected to it.
The server utilizes RESTful API style: Only serve API services via HTTP requests.
The server provides a multi-user service, every user has its own notebook. A user can share their notes/folders to anyone.
For database, it can be configured as the server is a ASP.Net Core Web API application, and by default, it uses SQLite.
Underlying
Each node (folder/note) have its own UUID and all its children are assigned via UUID, which allows symbollic linking a folder to another folder.
Each node also have ACLs, controlls who can assess those nodes, (their owner always have full control).
Permissions are:
- View
- Edit
- Delete
- Rename
To setup a server network, every server should share a private-public certificate, if a server want to join (or connect to) another server, it must have the same private-public certificate.