Skip to content
/ blog Public

A simple open-source blog web application that can be almost entirely managed from the Git repository. The project takes part in 100commitow.pl competition.

Notifications You must be signed in to change notification settings

barpaw/blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

100commitow.pl

Blog

Logo

A simple open-source blog web application that can be entirely managed from the Git repository.

The blog database synchronizes with changes in the Git repository specified in the application settings. The blog automatically imports and synchronizes data in a specific format (templates) from the Git repository.

Main concepts

The git repository defined in the application settings will serve as a database of content and settings. The application will synchronize and update data from the git repository from time to time. For immediate updates, it will also be possible to use webhooks for this purpose.

Templates and repository structure used by app

Name Type Description Template
content/{series-order_series-name}/posts/ dir Posts will be imported from this folder and will be associated with the series. Example
files/{folder_name} dir Includes (frontend static blog content) and other files (assets), e.g. images, will be imported from this folder. Example
authors.yml file Authors will be imported from this file. Example
categories.yml file Categories will be imported from this file. Example
series.yml file Data related to series (collections) of posts will be imported from this file. Example
settings.yml file Blog-related settings will be imported from this file. Example

(back to top)

Mockups

(back to top)

Architecture & Infrastructure

  • Modular monolith
  • Multi-tenancy
  • Message bus (MassTransit & RabbitMQ)
  • Workers
  • Outbox pattern
  • Postgresql Database
  • MinIO - Object Storage

(back to top)

Entities

(back to top)

Features

  • CRUD Posts/Categories/Tags/Series/Files/Repos
  • Posts divided into two types: shorts and articles
  • The post has one author, but they may be different authors
  • Social media share
  • Time to read indicator
  • Slug URL / Clean URL
  • i18n (English & Polish)
  • Dark Theme
  • Series (gorup posts into series with defined name and order)

(back to top)

Designed with future features in mind

  • CRUD Comments
  • Admin dashboard (statistics, management)
  • Allow easy integration with external content providers by API
  • Integrate donations

(back to top)

TODO

Mockups & visually defined project boundaries

  • Guest: Homepage
  • Guest: Publications Grid (Posts = Shorts & Articles)
  • Guest: Post
  • Guest: Series Grid
  • Guest: Series
  • Guest: Archive
  • Guest: Privacy policy / Terms
  • Guest: Contact
  • Guest: Searchceramiczny Porothermceramiczny Porotherm

Planning

  • Repository Changes Synchronization
  • Database Schema (in progress...)
  • Big Picture

Validator script

  • Validator script should check for all embedded files have unique name & should generate a list of all file names
  • Validator script should generate file with unique list of all tags
  • Validate file names and posts/series order

Next

  • Implementation

Implementation

  • Project Core (logs, swagger, entity framework, mass transit)
  • Project structure
  • Entities and data access
  • Workers and stuff for repositories synchronization
  • API

(back to top)

Inspirations

..

License

MIT

(back to top)

About

A simple open-source blog web application that can be almost entirely managed from the Git repository. The project takes part in 100commitow.pl competition.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published