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 3a2e8e42b8
Removed some unused dependencies
2021-12-27 13:50:50 +01:00
migrations Added post versions; updated db boilerplate 2021-12-26 17:46:17 +01:00
src Made rustfmt ignore db schema 2021-12-26 19:50:59 +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 Removed some unused dependencies 2021-12-27 13:50:50 +01:00
Cargo.toml Removed some unused dependencies 2021-12-27 13:50:50 +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 Some rustfmt stuff 2021-12-23 21:11:57 +01:00
diesel.toml Added most relevant code for blog 2021-11-23 09:32:08 +01:00
docker-compose.yml Added index 2021-12-25 10:42:36 +01:00
renovate.json Add renovate.json 2021-12-24 09:00:41 +00:00
rustfmt.toml Some rustfmt stuff 2021-12-23 21:11:57 +01:00
test.py Fixed test.py script 2021-12-26 17:56:19 +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.