Skip to content

ParkSeungwon/dndd

Repository files navigation

Manual

Description

I named this program DNDD. Abbreviation for discussion & democratic decision making. DNDD is a Mysql client program. DNDD is also a bulletin board program focused on decision making procedure. You can use DNDD as a normal bulletin board or as a platform for some group of people to discuss some serious matters and decide what to do. Because DNDD have innate ability to vote and calculate votes, you can use it for class chief election or board meeting.

Install

First you should acquire a Mysql account capable of creating tables on a designated database. Then you should run install.sql query file with that account. Normally you will have tables of Notice, Board, Sample, Users, Follow, Vote. And it will create a Mysql account of 'dndd' with select and insert previlige. Client program DNDD will use this account as default. Users, Follow, Vote tables are for inside management. So, you should not touch these tables unless you are sure of what you are doing. The others are Bulletin boards. You can change the access privilege to tables to confine user to specific boards. In example Notice board is only allowed to select by dndd account, Sample, Board boards are allowed to select, insert.

Database table structure

DnDD use 3 tables to manage. Users, Vote, Follow. All other tables in the designated database will be considered Board tables. You can see the table structure in install.sql.

Dependency

webkit 1.0
gtkmm 2.4
Mysql C++ connector

User levels

There are 6 user levels.
  • root
  • senior
  • representative
  • regular
  • registered
  • anonymous
A user without an account is anonymous level. When user has made an account, he automatically gets registered level. Higher than registered levels are only given by the Mysql administrator.(by editing Users table.)
Senior & representative level is somewhat like assembly member or board member. They can vote and earn followers who will follow their opinion when they are not sure or busy doing their own jobs.
regular & registered level is normal multitude level. They can follow representatives or vote by themselves.
Anonymous level can only read. Root level is reserved. Someone who do not want to follow anybody can follow root. Just make sure Root will not vote.

Bulletin board

DNDD have a little bit different bulletin system from usuals. Bulletin for some topic -> Book -> Page.
ie)Biology field -> Should we reserve Nature? -> 1.I oppose. 2.I agree.
You can make any category of board by making a table in Mysql. And like other programs you create posts inside that category. But this post is like a book. So it can have pages of discussion. And you can control who can write main article and who can vote and attach comments book by book. By controling these options you can optimize the post as a QNA or platform for discussion or even as a real html book.

Follow system & open vote

DnDD devised some simple ideas to nullify the danger of fraudulent election and to adopt more direct democracy. Even in small size of election such as class president election, these features are needed, because of the vulnerability of computer network. The idea is no other than to open some vote of people who want to. Another is to follow one representative like twitter and to enable changing the follow at anytime. The follower then follows the representative's decision when he did not vote. If the follower himself votes, his own vote is always prior to the representative's. DNDD has user levels divided in 6 groups. Anonymous, registered, regular, representative, senior, root. Representative and senior is intended for the representing level while registered and regular is for normal level. Because there are only two levels for each, you should not abuse the level.

Voting procedure

Discussion & Vote -> Final notify -> Final result.
While discussion is going on everybody can vote. To make sure which representative has voted for what, there is an intermediate step called final notify. This is an announcement session. After this point, representatives cannot vote or change his opinion. Voting can be made secret or open. For statistical reason, when a portion of votes are opened there can be no fraud. Also follow can be secret or open. Representatives cannot follow neither vote secretly.
If you want to change the rules of voting. If you would rather have no representatives or have only some inner circle member vote, you can do that by changing the post option and giving users levels carefully. You can give Inner circle members regular level.

In normal cases, Representative levels can post main article debating about some matters. Normal level users can vote, attach comments or follow representatives. (In this case, you should set the option read=anonymous, write=representative, comment=registered, vote=registered or regular) When the discussion is done, the finalize process takes two steps. First, final notify. This stage is for notifying everyone that the vote is going to close and which representative has voted for what. So representatives cannot change their vote after final notify. But normal level users can change or vote. And after predestined period final result is calculated. Finalize menu is only available to the user who created the post.

Navigation

You can navigate using right side panel. It is also used as a comment area. By clicking login information you can change user information.
By clicking the '>' button on the right side you can navigate the system. When the Bulletin depth level is 3, you can follow or edit with this button.


Toolbar

Toolbar is composed of 4 parts. The first is message area. It displays some messages.
The next is page movement to goto a certain page.
The next is write area to add page, post, comments.
Last is voting area to vote, follow, calculate votes.
Tool buttons are enabled when the function is possible. If you want to add a page, you have to meet the level requirement and be at the last page.

Command line parameter & notice board

DnDD can have command line parameter.

prompt$ dndd [username] [password]

Using no parameter, DnDD use default Mysql user account 'dndd' with only select, insert privilege. No update is used internally for security reason. But some board tables which is intended to be written by administrators are only selectable and not possible to be inserted. If you want to write to a restricted table like these (ex.Notice), you have to login with other Mysql user, root or some user with more privilege. This can be done with command line parameters. Like above. You can also change the user dndd's accessibility of tables to control each table. Don't confuse DnDD login id with Mysql login id. DnDD login ID is registered in Users table and used inside of program. Mentioned here is Mysql ID.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published