Repository
https://github.com/samvanemelen/debato
introduction
In only two months, debato.org grew from an idea to a fully functional platform. Thanks to the feedback received by many, functions kept being added. Although some features are still to be implemented, the platform is in a first usable state on multiple devices. This third update blog will show you the changes made in the past two weeks
What is debato?
You can find debato at https://debato.org
Debato is an online platform that accommodates online debates on topics big an small. We are all passionate about certain topics and inevitably it can happen that a difference in opinion leads to conversations that resemble a bottomless pit of arguments and acquisitions. This results in many people not even getting involved or finding it a waste of time to formulate their points of view. By filtering the thoughtful arguments and by structuring arguments and sub-discussions, debato allows anyone to share their thoughts and points of view in a clear way. And why stop there? Because debato is built on the decentralized Steem blockchain, writing thoughtful and interesting arguments or discussions gets rewarded as well.
Main changes
- Added wallet operations - In the wallet section of the profile you can see the funds of any user. Common operations such as transferring funds, powering up/down, claiming rewards or delegating to a user can now be done without leaving debato. This removes the need of users to go to another website for those operations, making debato a stand-alone platform.
- Added the feature for hot posts - As mentioned by @ahyar92 , filtering on hot discussions is definitely an interesting way to browse discussions. A new tab has been added to filter quickly rising discussions and the 'hotness' is also calculated for each discussion. When a certain threshold is reached, the post will also get a symbol to indicate that it is a hot topic.
- Improved discussion, argument and comment layout. In stead of having basic html elements with the arguments and upvote buttons, a discussion now contains structured argument 'cards'. These make arguments on discussions easier to read. The same has been done for comments in the comment section.
Compatible with touchscreen, mobile and small devices. The responsive layout has been optimized for small screens and touch screens. When the window gets to a certain width, debato shifts to a mobile layout with an expandable menu.
Added a timer to error/warning/success messages This bar will indicate when the message closes automatically so the user knows he does not have to close it manually
JSON of discussions is improved to properly store layout data and line breaks of the discussion context The discussion context is stored in the json metadata of the post. This way it remains possible to post a custom body to be displayed on other platforms (to redirect to debato.org) There are limitations to what you can store in a JSON format so this has been improved.
Added an edit option for comments and arguments Once an argument or comment was posted it had to be removed and reposted if the user wanted to make changes. Now you can conveniently edit your own posts and even change the type (pro, con, comment) if more applicable.
Planned changes
long term plans
A system of points (using Smart Media Tokens (SMT)) for rewarding authors and popular discussions/arguments. A system like this can give interesting incentives for users to start controversial discussions and formulate their opinions thoughtfully.
A leader board/ranking system to provide additional incentives for engaging with thoughtful comments and debate. Having a leader board were users can view there position according to others might provide an additional motivation to be engaged in debates.
Display statistics about a discussion (distribution of age, gender, location... on the different sides of the topic). In the long term this might prove interesting to see how other variables correlate with certain points of view. Of course this would imply that users give up certain personal information. If wanted, this can also be encouraged by offering points in a point system. Whether this conflicts with the original idea that anyone can be anonymous on the blockchain can be debated.
Displaying the structure of the discussion you are currently viewing. Interactively showing where you are in the vast tree structure of debates. As discussions get complex and with a lot of sub discussions it is important that a user can navigate in and between topics. Discussions will develop a tree structure with arguments and sub arguments and climbing this tree should be made clear and convenient.
short term plans
- An 'about' page that introduces new users to the workings and goals of debato. This is a must have for any site where anyone can find the mission statement of the site and basic instructions on how to use it.
- A value indicator to show how much your vote is worth when sliding the Voting Power slider. I think this is very useful to adjust the voting power you vote with on debato.
- Storing draft discussions. Storing drafts on your browser can be useful when working on an elaborate discussion context. The user then does not need to finish the discussion directly and can revisit it later
- An upload function for the discussion thumbnail. Currently you have to enter a image URL to be used as thumbnail. Making it possible to upload an image directly from your computer can be a useful tool for people who want to use images they own already.
- Showing when an argument or discussion is edited. With the new feature of editing arguments and discussions it is also important to be able to see when a post was edited. Viewing the edit history can be interesting to understand comments on it that seem out of place.
How can you contribute?
As a developer, this is my first major project. So I don't mind feedback on issues such as inefficient/improper syntax or spelling mistakes.
suggesting features that are of great value to the project and not already mentioned in the planned changes, here or on GitHub.
Existing steemJS functions do not allow for complex queries. you can, for example, get the posts of a certain user, but then you can't specify a tag. This is currently resolved by loading the maximum amount of posts (100) and filtering those further. But this is not the best way when scaling up the project. Another option is to use steemSQL but this is only viable when the project has grown to a certain extend where it can support a 20 SBD per month subscription fee. Until then, other alternatives for more advanced querying of posts are more then welcome.
If you can think of anything else, feel free!
previous updates
written by @samve