Initial Commit.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user