Skip to content
Osioke Itseuwa edited this page Oct 22, 2016 · 1 revision

Primer on Squaredex

Squaredex is a simple web app for the purpose of tracking “karma” for members of DC Square. Karma is a unit of measurement of contribution to the open source cause and the higher the Karma of a member, the more they’ve contributed and are as such more eligible to get jobs from the platform. Eventually, Squaredex can evolve into something bigger. A platform for us to manage developers, projects, jobs and payouts for Square. But for now, we focus on the MVP.

Preferred Stack: Rails for API, Angular for UI. Heroku for hosting. Elasticsearch/Searchkick for search.

Models and User Types:

  1. User: This is the model representing a member of DC Square, a user can earn (and lose) karma. A user can also send karma requests on behalf of another user that he/she thinks should be rewarded.
  2. Admin: This is the model representing an administrator of DC Square. These are the only people that can give karma.
  3. Projects: These are open-source projects that are currently being worked on by DC Square as a whole. Projects would be automatically populated using the Github API to get the repos and their contributors.

User Facing Features:

User can sign up via Slack. If the user doesn’t belong to the DC Square slack team, then it follows that authentication will not work. Users must enter their correct github username upon sign up. This way, we can know which user is working on which project by tracking the repo’s contributors. Users can send in karma requests on behalf of other users. Tap on “Create Karma Request” > Search for User > Give reason for karma request > Select Project from dropdown. Users can view their karma history. Users can view karma leaderboard. (This would display the top 20 contributors at any time). Users can get karma by answering questions and generally being helpful on slack. For every 10 “thumbs up” reactions a user gets on a message, he/she gets one automated karma point.

Admin Facing Features:

Admins can grant karma to users. They simply search for a user and award karma to them, they must provide a reason and an accompanying project. Admin cannot give more than 5 karma at a time to any user. It follows that 5 karma is the highest form of reward for any single contribution.

Clone this wiki locally