Curator 2: trail, community pages, reputation, wallet, lots of new features and improvements

in #utopian-io6 years ago

After lots of testing and bug fixing, Curator 2 is ready. This upgrade comes with lots of new features including user listing, custom reputation, a better markup parser, bot resting day, post reviewer, curator listing, sponsor listing, dynamic homepage and more.

Important: if you have been running any version of Curator until this publication, please update it to fix all bugs in the previous versions as well as to explore the numerous new features of this version.

Code repo: https://github.com/peerquery/curator

New features and additions

Author reputation

In my former post I examined in detail how various stats work on Curator. I will again explain the author reputation in brief, see the previous post for more insights.

For each approved curation, the voting rate is added to a score field for the user. With every successive approval the voting rate is accumulated and this value is used to determine the user score.

In the simplest example, if a user's first 7 posts are approved for 20% vote each, then their total score would be 7 x 20(%) = 140.

The current reputation score scale is:

  • score < 50 = 0 star
  • score > 50  = 1 stars
  • score > 150  = 2 stars
  • score > 300 = 3 stars
  • score > 500 = 4 stars
  • score > 1000 = 5 stars

The user in the example above with a score of 140 would therefore have a reputation of 1 star, at a score of 151 they would have 2 stars.

Secure API access

In this update, the APIs used for admins functions, particularly those of POST and GET are secured for only authorized access only.

Only logged in users whose account is that of a team member may access the secure admin APIs using GET or POST. This is to protect against unauthorized access of admin APIs by non-team members.

API calls to admin APIs from sources which do not have signed and valid team member JWT httpOnly cookies whose validity period is active would be declined.

Segregation of capability

  • Front end segregation: curator, moderators and admins see different buttons based on their roles.
  • Backend segregation: in the backend, every admin API call is matched against the permissions of the role of the issuer to see if the originator's role has enough authority to do issues such commands. Should a curator account send commands which only moderator accounts have permission to issue, the server would reject it.

Should a user bypass the frontend and send commands beyond the permission of their account, the backend would reject it.

Trail page

https://steem-curator.herokuapp.com/trail

Trail page shows:

  • approved, voted, lost, rejected posts
  • stats for the month: approved, curated, lost, rejected
  • each post's meta data include: author, curator, curation rate and a button to view it

Community page

https://steem-curator.herokuapp.com/community

The community page shows all users of a Curator service. "users" refer to only authors of posts which have been curated(approved or rejected). If all posts by an author have been ignored or lost(not seen by any curator at all), then that author will not be among the "users" - even though their posts will be in the lost section.

What the community page offers:

  • user exploration and grouping by newest or top(based on the score/points used to calculate reputation)
  • community stats: users count, blacklist count, curator count and sponsor count
  • each user card shows account, profile picture, creation time, ratings, total approved and total rejected

Coming soon: dedicated comprehensive blacklist page.

User trail page

On this page you can explore:

  • the user's reputation(in stars)
  • see the user's last 20 approved, voted, rejected and rejected posts
  • each posts show the curator(with link to the curator's profile) as well as the curation rate
  • see user's stats for the month: approved, voted, rejected, ...

The page shows the profile picture of the user, the user's account and offer links to the user's profile on Steem apps including: Steemit, Busy, DTube, DLive, Utopian, Steepshot, DSound, Steempeak, Musing, SteemHunt, and Peer Query.

Coming soon: see user's earning in $ for the month.

Curators page

https://steem-curator.herokuapp.com/curators

The curator's page offers:

  • curator exploration by newest, top(most curations) and inactive curators
  • Curation stats for the month: approved, voted, lost and rejected
  • each curator's card shows: account, profile picture, creation date, reputation(based on payment votes) and total curations

Curator trail page

https://steem-curator.herokuapp.com/curator/makafuigdzivenu

You can also view a page for every curator. The curator's page shows:

  • a curator's curation trail: approved, voted and rejected posts
  • curator's stats: approved, voted, lost and rejected stats
  • curator's profile on other Steem apps: Steemit, Busy, DTube, Dlive, Utopian, Steemshot, DSound, Steempeak, Musing, SteemHunt and Peer Query

Coming soon: see a curator's earnings for the month.

Minimalist team's account page

https://steem-curator.herokuapp.com/office/account

Team members can see can see their account info on the account page. This page can be accessed from the top user menu and shows information about the user's Curator details as well as Steem details.

Sponsors page

https://steem-curator.herokuapp.com/sponsors

Curator's new sponsors page is a minor twist of the homepage. It features three sections:

  • dynamic sponsor showcase: this section loaded from the DB so every time you add or remove user it will be reflected here!
  • why to sponsor our work: a section which details the benefits of sponsoring the curation service
  • achievements: shows how much a curation service has contributed in terms of authors supported, total curations, amount awarded and estimated views delivered to posts

Challenge: currently there are four listed vanity sponsors: blockrush, steemit network, peer query and steempedia. Try to remove the existing ones or try adding a new one and then reload the homepage or sponsors page to see the effected change! Remember you need to use either the owner or your own admin account to manage sponsor listings.

Sponsor management

You can now add and remove sponsors in the office just like you can do with team members. However with sponsors there is not need for any second confirmation so its added immediately.

Only admin or owner accounts can add or remove sponsors. Newly added sponsors are added in real time and the changes made are reflected immediately across the site.

This means if you add a sponsor they will immediately appear among the sponsors listed in the homepage and the sponsors page.

Wallet page for team

Wallet page lists all payments received by a team member, as well as offer insights into their earnings for the week.

Post review page

When reviewing curated posts, clicking the title will open a review page for you to view the posts. The post review page shows:

  • authors' overview: total posts, approved, rejected and user rating
  • curation details: status, curation time, curator's name, vote status, vote percent and vote worth in $
  • curator's remarks about the post
  • external viewing links: buttons to view post on Steemit, Busy, SteemPeak and Peer Query

Improvements to existing features

Dynamic landing page

The sponsors and our contributions so far sections of the home are now dynamic. This mean that they load real live information, not info static info in the page!

The team has to do nothing. The more curation a team does, the information is automatically updated. When you curate with the demo, refresh the homepage often to see the changes to the authors, curators, awarded and est. views stats.

Resting day for bot

You can now declare a day when the Curator bot will not vote. The default is set to sunday, you can change it to which ever day you want at BOT_HOLIDAY in the .env file.

The bot resting day is to allow the bot to recharge its voting power, and also to serve as a holiday for the curation team as it is expected that there would be no curating activity on the day the bot is resting.

Single global files

We now have single .css and .js files from the /public folder which are loaded to every single page. This make it easy to include sidewide code and also streamlines styling.

Sitewide notification

This is the sidewide notification box. Its static notifications file in the /views/partial so only the owner setup it up during installation.

Coming soon: make it dynamic so where admins can set the content from the coming settings page.

Better content renderer

  • Images will now fit within the Curation view, they will not overflow to out-of-proportional sizes.
  • #hastags link be links
  • @accounts will be linked into <a> tags
  • Naked images will be converted to <img> tags
  • mixed HTML and Markdown will render well
  • HTML is sanitized with DOM Purify
  • Youtube links will be converted into iframe so you can play right in page
  • Styling has added for long links and text to fit perfectly without overflow
  • Custom styling has been added for most HTML elements such as <table>, <blockquote>, <code> and <pre>

These improvement to the post viewer for curators mean they will be able to see your post in the full form you intended it to be both while curating and while re-curation(using the modal view).

While not perfect, its a great improvement and should be able to properly process and display most forms of markup.

API re-design to modular form

The APIs are now put in a folder in /src/api, the folder contain several API files, 13 in total. The reason is to allow for easier categorization and management.

As one file we get a very long file which is over 20k in size, making it difficult to find specific code related to a special function. Now each one of the 13 files addresses on modular function and contains all APIs related to that function.

The 14th file is a _index file which is used to import and activate all the other 13 files. This way we only require the _index file and it takes care of importing and activating all the 13 others.

Colored background

The background is given a new "skin" color instead of white.

Improved DB stored procedures

Lots of the stored procedures have been re-written to fix bugs, improve efficiency and reduction in bloat. With the new improvements, you can now:

  • add, remove and re-add the same team member multiple times with the previous or a new role
  • add, remove and re-add the same sponsor multiple times with the previous or new information

Lots of bloat are also cleaned. Remember that deleted team members and sponsors are only "de-activated" not technically removed, for future accountability purposes.

Malfunctions due to bugs stored produces of the former versions are all gone.

What's coming next

Next update:

  • Blacklist page for user listing
  • Bot page with bot details and stats
  • Curators and team payment
  • Socket.io chat for team
  • Settings page for project
  • Dynamic sitewide notifications
  • Team page to showcase team(admins, moderators and curator)

Cooking in development:

  • blacklist import and export
  • public api for thirdparty developments
  • npm package to access multiple curator apis
  • portal to serve as common interface for all active curators
  • search and post status viewer
  • page templates for footer links

After the final update, the Curator project will be migrated to Steem Institute's @curator.center for further development, support and promotion.

Installation and demo

See the Github ReadMe for more information. Bear in mind that Curator is still a work in progress; while it works perfectly, this updates includes some breaking changes and will not run on the DB of a former installation. You will need to either empty the DB schema previous installations or install this version on a new DB.

If you are developer with Git experience then you can install this version and pull future updates. However if you are not much into Git then perhaps run this version only for testing while awaiting for the next version for production.

Demo: https://steem-curator.herokuapp.com. Login info could be found in the ReadMe on Github.

Curator links

Introductory post

Insights and feasibility

Curator live demo

Github repo


Sort:  

Hi. Thank you for the contribution.

You have included a lot of work for this update, and this is really nice. There are only some format recommendations that I want to do:


  • In the Curator trail page, there is a description list with items that the curator's page shows. It could look better if you add bold attribute to the items before the description, as you have done in the list included in the Sponsors page section.
  • Could be better if you add a section only dedicated to the series links. Now, series links are included in the Curator links section and it's not very clear that there is an ongoing series.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

thanks @kit.andres, your recommendations are welcome and well noted

I need to check it out, tipuvote! :)

Fantastic work with this one, kudos

Welcomed improvement.

very good your post
thanks for sharing with us @dzivenu

@dzivenu good updates have come but will also have some impact.

Its a great idea..

Brother, I have upvote and commented to you. Please make me upvote 1. You will not have any harm in it. But for your sake I will be much benefited so please, please brother just 1 upvote me..please ... please..please ..

This post received 0.73 SBD upvote from @tipU funded by @cardboard | @dzivenu now has a chance to win free @steembasicincome share :) | Voting service guide | For investors.

Hey @dzivenu
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!