Giter Club home page Giter Club logo

badger's People

Contributors

chougron avatar grena avatar jmleroux avatar mickaelandrieu avatar pierallard avatar solivier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

badger's Issues

Experience system

A user can obtain experience points to unlock new levels.
User should have an experience progress bar to show how many it has to go to next level.

Ideas of advantages having high levels:

  • Unlock epic borders for avatars
  • Being able to unlock evolutive badges

[WIP]

Quests

Quests are created from admins or with a Cron.
They are defined by:

  • a fun or epic title
  • a nice description of the objective to fulfill
  • a nuts amount for reward (see #20 )
  • a start date
  • a stop date

User can claim a Quest when the have completed it. Admin valid or reject the claim.

Technical

A Quest is tagged, like Users & Badgers.
They must be displayed in the front, in a new tab Quests.
New entity ClaimedQuest to claim succeed Quests
They must be a "claim" button, like Badge system.

PostgreSQL

Could be interesting to use PostgreSQL :)

Triggered badges

A triggered badge is a badge linked to an external application, ie. GitHub, Forum, etc.
A service would check every hour or every night if conditions for the given application is fill fulled then automatically assign badge for the user.

Or this could be a webhook.

Leaderboard

As a user, I could access a leaderboard to see users with the most badges.
Example of implementation:

meteor-leaderboard-1200x836

Evolutive badge

A badge can evolve to a superior level (with stars or levels or whatever).
So the badge "A" could be "A" level 2, or 3.

It should stay the same badge (it's not an unlock, it's an evolution).

  • Badge should be declared as "evolutive" and have a max reachable level (admin side)
  • An unlock should take User, Badge, and Level if evolutive
  • The image doesn't change, only a "star" system under the name or on the border to distinguish them

Avatar picture is not updated when user updates it from Google

User registers with his google account.
Avatar url is saved in DB

Later the user updates he's picture on Google => the old avatar is shown in Badger (because the url changed).

There is no problem with GitHub as they provide always the same avatar url.

Some badges proposals

  • "I once swam in the Mellinet duck pond"
  • "I co-opted a new colleague for Akeneo"
  • "I gave some internal training for a colleague (2 hours minimum)"
  • "I fixed my colleague computer"
  • "I lost something during a trip / a convention / at a client #notProud"
  • "I had some lunch-hour workout (running, riding, swimming, whatever)"
  • "I cooked something for a colleague during lunch time"
  • "I achieved some hardware / IoT experiment to enhance Akeneo offices"

Default tag

Be able to define a tag as "default".
Once a user registers, he's attached to this tag.

For us, it could be "Community".

New badge: contributor

I think we could have one or two more badges for contributors:

  • When a PR is merged in PIM community
  • When a user posted a bundle to use with Akeneo (on marketplace or not)

User & badge groups

We should have user groups.
A user is "tagged" into a group. Everyone in the application has the "Community" tag.

We could have other group tags:

  • Core Team
  • Professional Service
  • Internal Projects
  • Sales
  • Marketplace team

And so on.
A user belongs to X groups, so does a badge.

Forbid claim of not visible badge

For now, a user can't see a Badge if none of his tags belong to the Badge.
We should just forbid the POST request to claim a badge he can't see.

Dev fixtures

Some dev fixtures would be usefull :

  • dummy badges
  • dummy users

Adventure

Adventure

An Adventure is defined by:

  • A name
  • A description
  • Completion nuts reward (fixed amount of user percent)
  • Completion badge (can be NULL)
  • At least one Step

Step

A Step is defined by:

  • A name
  • An order (can be NULL if not ordered Adventure)
  • Completion nuts reward (fixed amount)
  • Completion badge (can be NULL)

Explanation

A adventure is a set of step that can be completed by the user. It defines several steps to fulfill.
Each step, once unlocked, give the user an amount of Nuts and sometimes, a Badge too.
Inspiration display for an adventure:
adventure-example

(Here is a example for 2 adventures. The first is a "Linked" adventure where the progression is linear. The second one is a "Not linked" adventure, each step can be unlocked independently)

Linked or not ? An adventure can defines its steps as linked, or not.

  • If linked, steps should be unlocked in the right order, the first, then the second, etc.
  • If not linked, steps can be unlocked in any order

Notification system

  • Add a notification system to be notified when a badge/quest is obtained.
  • Notification in the admin system to be notified when someone claim a badge and when someone register on the application.

Create a tutorial

Create a tutorial explaining how to use Badger.

  • Explain how the quest works
  • What is an adventure
  • How the nuts reward system works
  • ...

Home page

Create an home page with links to all users profile.
And create a /user/profile with badges awarded by user

Claim a badge

As a user, be able to "claim" a badge.
As an admin, I can accept a "claim" to deliver the badge. It removes the claim.

XXXController should be renamed AdminXXXControllers

The "Game" controllers are used in routes like /admin/xxx/...
This controllers should be renamed in AdminXXXControllers or be placed in a Admin folder, to be able to have a declaration of 2 Controllers managing same entities (one for admin, one for front).

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.