Skip to content

TwinIsland/SuikaBlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Suika Blog

Ultimate Blog System Engineered for Ultimate Speed and Efficiency⚡

Features

  • Designed for Speed and Efficiency: Enjoy a low memory footprint and minimal CPU usage. We've carefully handled memory and included only the essential libraries to ensure a lean and powerful experience.

  • Powerful and Extensible: Equipped with everything you need for blogging, including a built-in FIFO cache and a highly extensible plug-in system. It also supports Python integration for added flexibility and functionality.

  • Effortless Dependency Management: Forget about complex dependency management. Simply compress the entire folder into a zip file for easy delivery and backup. Focus on what truly matters without the hassle.

Run

install dependencies (via apt):

sudo apt update
sudo apt-get install libsqlite3-dev

or via yum:

sudo yum check-update
sudo yum install libsqlite3x-devel.x86_64

then, start the server by:

make run

Test/Debug

Backend:

make run_test       # build and run test executable
make run_dev        # build and run debug executable

Frontend:

need npm to run frontend test server

cd theme/test
make test_server

Frontend

The default frontend theme, Suika Ultimate Theme, is optimized for ultimate performance, boasting a total dependency of less than 3kb. It primarily utilizes vanilla JavaScript and CSS for streamlined efficiency.

Database Design

3NF Guarantee ⭐

erDiagram
    Posts {
        integer PostID PK "AUTOINCREMENT"
        varchar Title "NOT NULL"
        text Banner
        text Excerpt
        text Content "NOT NULL"
        integer IsPage "NOT NULL DEFAULT 0"
        datetime CreateDate "DEFAULT CURRENT_TIMESTAMP"
        datetime DateModified "NOT NULL DEFAULT CURRENT_TIMESTAMP"
        integer UpVoted "NOT NULL DEFAULT 0"
        integer Views "DEFAULT 0"
    }

    Visitors {
        varchar Name PK
        text Email
        text Website
        integer Banned
        varchar Ip "NOT NULL"
    }

    Meta {
        varchar Name PK
        varchar Type "NOT NULL"
    }

    Comment {
        integer CommentID PK "AUTOINCREMENT"
        integer PostID FK "NOT NULL"
        varchar AuthorName
        datetime CreateDate "DEFAULT CURRENT_TIMESTAMP"
        text Content "NOT NULL"
        integer UpVoted "DEFAULT 0"
    }

    Activity {
        integer ActivityID PK "AUTOINCREMENT"
        varchar AuthorName
        text Description "NOT NULL"
        datetime CreateDate "DEFAULT CURRENT_TIMESTAMP"
    }

    Info {
        varchar Key PK
        varchar Value 
    }

    Posts ||--o{ Comment : "has"
    Visitors ||--o{ Comment : "writes"
    Visitors ||--o{ Activity : "triggers"
    Posts }|--o{ Meta : "has"
Loading

Thanks


Project Of: NyaLab