Coder Social home page Coder Social logo

Comments (11)

JeffreyWay avatar JeffreyWay commented on May 9, 2024 11

If it's marked as spam, we'd delete their account entirely.

from council.

 avatar commented on May 9, 2024 2

This one will be interesting:
5. Thread appeared in search (e.g. 1 point)

Gathering which results (in this case - threads) are showed from Algolia is tricky and it'll be great to see how you handle this.

from council.

MattMangoni avatar MattMangoni commented on May 9, 2024 2

@JeffreyWay I've been experimenting with the reputation system in the last couple of hours, before going to work. I won't submit a PR for this since I guess you want to finish the work yourself, but I can't wait to see how you will deal (if you're going to) with points subtraction on best answer change, deletion and so on :)

Just for reference, here's the branch I was working on:
https://github.com/MattMangoni/council/tree/advanced_reputation

from council.

devmsh avatar devmsh commented on May 9, 2024 2

I currently develop a project I working on, and I feel more comfortable with the following api

$user->award($points)

To prevent growing the User class, and to add the ability to award multiple entities like User or Group in a game, I added an award method using Awardable trait rather that Reputation class.

trait Awardable
{
    const THREAD_WAS_PUBLISHED = 10;
    const REPLY_POSTED = 2;
    const BEST_REPLY_AWARDED = 50;

    /**
     * Award reputation points.
     *
     * $param integer $points
     */
    public function award($points)
    {
        $this->increment('reputation', $points);
    }
}

I also feel that points history with clear message is a MUST so we can recalc the user points any time.

I know that it's not a reputation system series, but I'm really interested to hear from you :)

from council.

MattMangoni avatar MattMangoni commented on May 9, 2024 1

@devmsh Well, you have to consider that if you have a dedicated table for points, App\Reputation can easily be transformed into a model.

That's exactly what I did in my fork, pointing it to a "reputation_points" table.
But tbh, I like the idea of awarding the user directly better.

Another thing I did was adding a new row to the table for each interaction.
Instead of deleting points, I basically "give" -X points on reply thread/deletion and best reply change (ONLY if the new best reply belongs to a different user then the previous one). Not sure how much that will impact on performance in large scale applications.

Then, I set a custom attribute called "reputation" to the User model in order for it to be accessible the same way as before.

from council.

 avatar commented on May 9, 2024

Nice feature!

from council.

gileswells avatar gileswells commented on May 9, 2024
  1. Thread marked as spam: -15 points (original points + penalty)
  2. Reply maked as spam: -3 points

I mean yes it seems like reputation would be as valuable as reddit karma or points from Who's Line but if there's gamification sadly people will attempt to game it.

from council.

MattMangoni avatar MattMangoni commented on May 9, 2024

Is this already fully implemented?

from council.

JeffreyWay avatar JeffreyWay commented on May 9, 2024

Only about half has. I’ll finish it up soon.

from council.

Tray2 avatar Tray2 commented on May 9, 2024

I think a level should be displayed instead of the number of experience.
Let's say a user like @JeffreyWay has been replying to all the threads he would soon get like 999999999XP and it would keep on incrementing until it won't fit in an integer anymore.

So something like:

  • Tiny Grasshopper
  • Grasshopper
  • Budgie
  • Eagle
  • Emu
  • Gnu

Then on the profile page you'll see how many xp you got and how far it is to the next level.

from council.

JeffreyWay avatar JeffreyWay commented on May 9, 2024

Yeah I do like $user->award() too. I specifically chose a dedicated Reputation class for the reason that @MattMangoni mentioned. We'll at some point switch to a dedicated table for storing reputation.

from council.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.