# 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.