Royongbase v26.6.11
community-powered knowledge base
This morning, I stumbled upon a stranger on the internet who wanted to initiate a local community in the city where I live. I had been looking for a local community at the time, so I asked him to let me join his newly formed community.
There were several subgroups based on interests. I immediately joined the programming subgroup.
There, I initiated the conversation.
Several hours later, it was decided that it would be cool if we worked on a community project together, where everyone could participate in building something.
The next few hours were spent brainstorming with the community members about what real-world problem we wanted to solve.
One member suggested this “city food index” idea, where people could showcase the best food they had ever discovered in the city.
It would be like a “food tier list” sharing platform. Users could add restaurants to the platform, add individual menu items (then link them to their respective restaurants), and, on their own profile pages, build a “tier list.” They could pick menu items from the main database, sort them based on ranking, and maybe add comments here and there.
Cool.
But I thought we also needed a place where users could meet and discover each other. So I suggested building a basic forum functionality where people could greet and at least introduce themselves to one another. The usernames in the forum would be clickable, so users could visit each other’s profiles and see the food tier lists they had created.
Or maybe they could simply use the forum functionality to discuss things. Whatever.
After understanding those functional requirements, I think there are three major modules involved in this project.
First, something like an imageboard (but without image uploading). Here, users can post threads, reply to threads, and view each other’s profile pages.
Second, something like Wikidata/Wikibase. Users can add restaurants and menu items here. The shared knowledge base that the community can reuse resides in this module.
Third, something like a Foursquare list, where users can pick items from the shared knowledge base and add personal-level context to them. They can group them, rank them in a list, and add personal comments.
Finally, to enforce rules, there is a “shadow moderator” feature. This hidden moderator can delete threads, remove posts, delete knowledge base items, and monitor item statement deletion logs.
The rationale is that moderators can quickly remove “troublesome” posts while still keeping valuable information intact, especially in cases where vandals mass-delete item statements.
Any user can delete item statements, but unlike Wikibase, there is no detailed diff data stored for each item. Instead, the full statement triplet data (item, property, value) of deleted statements is logged. So, if vandals delete something, moderators can still recover it by checking the log.
The problem now is that I have not implemented a “banning user” functionality yet.
At first, this project was only intended to operate within a relatively small-scale community where people know each other. So I simply assumed that justice would be administered by other means (such as expulsion) rather than being implemented in code.
I might actually implement it when the actual need emerges in real life, though.
((How to install))
https://github.com/altilunium/royongbase
Copy `index.php` and `adm.php` to `htdocs`. Open `adm.php`, configure the settings there, and it’s done.







