1
1
Fork 0

Added architecture description.

This commit is contained in:
Wael Karram 2022-03-19 16:34:56 +02:00
parent 3a8db3fbc4
commit 89c865c294
Signed by: wael
GPG Key ID: 3B356038CCB10808
4 changed files with 29 additions and 0 deletions

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "lemon_board"]
path = lemon_board
url = https://tildegit.org/wael/lemon_board.git
[submodule "C_lib"]
path = C_lib
url = https://tildegit.org/wael/C_lib.git

1
C_lib Submodule

@ -0,0 +1 @@
Subproject commit d3562af7ead5c54ae402b000479de0ad4d3f377b

21
arch Normal file
View File

@ -0,0 +1,21 @@
This file includes a high-level description of the program's structure:
Frontend and backened are to be separated, this should allow for multiple front-end implementations such as generating output in:
text/html, text/gemini, application/xhtml+xml, text/xml, gopher and even plaintext.
Backend gets post data from a database, and formulates it into a "thread":
A thread consists of an Original Post by an Oririnal Poster (OP).
With subsequent replies sequentially following the OP.
Each post has a unique (monotonically strictly increasing) ID.
And ID numbers are determined per-board.
Thus, IDs can be used to cross-reference posts.
Each board consists of a number of OPs.
With the order being of how "fresh" the replies are:
The thread with the latest reply is the top thread and the order goes in a decreasing manner according to the thread's latest reply time.
For lack of confusion, seconds from the Unix Epoch shall be used to track time.
Front-ends shall query the backend for the relevant board and thread structs and then synthesize their output.
Front-ends that support posting shall also pass the data along to the back-end:
If there is a new thread, then a thread struct gets passed.
If there is a new post in a thread, then a post struct gets passed.

1
lemon_board Submodule

@ -0,0 +1 @@
Subproject commit 3a8db3fbc4fa3d9858501e7d100a5f508f56a60e