Handles the contents of the blogging section.
This repository has been archived on 2023-07-04. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
Go to file
Jef Roosens fb38a1c1bf
Added first draft of versions to schema
2021-12-23 16:28:43 +01:00
migrations Added first draft of versions to schema 2021-12-23 16:28:43 +01:00
src Added first draft of versions to schema 2021-12-23 16:28:43 +01:00
.env Added most relevant code for blog 2021-11-23 09:32:08 +01:00
.gitignore Added most relevant code for blog 2021-11-23 09:32:08 +01:00
Cargo.lock Project compiles now 2021-11-23 17:49:31 +01:00
Cargo.toml Tests now use same build parameters as dev 2021-11-25 00:46:53 +01:00
LICENSE Initial commit 2021-11-23 09:07:56 +01:00
README.md Added first draft of versions to schema 2021-12-23 16:28:43 +01:00
Rb.yaml Added some much-needed comments 2021-11-28 21:45:29 +01:00
diesel.toml Added most relevant code for blog 2021-11-23 09:32:08 +01:00
docker-compose.yml Tests now use same build parameters as dev 2021-11-25 00:46:53 +01:00
rustfmt.toml Added most relevant code for blog 2021-11-23 09:32:08 +01:00
test.py Added some much-needed comments 2021-11-28 21:45:29 +01:00

README.md

blog

Handles the contents of the blogging section.

Schema & Data Objects

All objects have a personal UUID ID, generated automatically by PostgreSQL.

Sections

Sections group posts according to a common subject or some other metric by which they could be grouped. They can be seen as sub-blogs within the larger system. Each post can be part of only one section, & posts not part of a section will not be shown in the public UI.

A section has a title & optional description, along with a shortname. The shortname is what will be used inside URLs for routing.

A section can be part of the default posts list, meaning all posts created in this section will be shown on the homepage. The default list is an aggregated list containing all default sections.

A section can be private, meaning all posts created in this section will not be shown on the any public page without authentification. Furthermore, it can specify wether posts should have titles, or are not allowed to. This is to allow for creating microblogs, which do not require titles.

Posts & Versions

A post represents a publication in a specific section. The posts table itself only specifies which section a post belongs to & wether or not the post is private. Any content of the actual post is stored a a version. A private post can only be seen by logged-in users with the right authorization.

Each version has its own publication date, with the last publication being shown when visiting the post. The UI however should also expose a way to show previous versions of the post. Each version has its own title (if allowed) & content. A version can be a draft. This means that the version will not be shown in the public UI, allowing the user to finish it at a later time.