gocodebox / lifterlms

LifterLMS, a WordPress LMS Solution: Easily create, sell, and protect engaging online courses.
https://lifterlms.com
GNU General Public License v3.0
179 stars 134 forks source link

Share Your Grade: Enhancement #180

Closed BurlesonBrad closed 8 years ago

BurlesonBrad commented 8 years ago

On completion of lesson where badge is attached to an event ("engagement"), instead of simply attaching it in the /course page....

  1. Trigger lightbox https://github.com/noelboss/featherlight [air on the side of not using a library]
  2. echo the badge image
  3. echo "congratulatory" badge text Congratulations! You just earned a free toaster!
  4. echo social share [we have no current social media integrations, this would likely be better added when we add actual social media integrations rather than as part of something specific to this feature]

Badge = og:image Text = sanitized string of text ex: "Whoah. I'm hot stuff. I just earned a free toaster over on @myawesomesite! Come Join Me!"

Type = Enhancement Assign = Brad (Just don't gimme write access. God knows I'm liable to break something!)

edit by @thomaspley: added some clarifications because someone is actually willing to build this

thomasplevy commented 8 years ago

@BurlesonBrad not well outlined but already recorded as a potential feature enhancement at https://trello.com/c/rjso44QZ/56-an-option-to-have-a-pop-up-come-on-the-screen-whenever-an-engagement-badge-is-earned

Please head over there and have a vote on the feature to help us prioritize!

thomasplevy commented 8 years ago

If you want to build this yourself simply submit a pull request, you don't need my permission

spyke01 commented 8 years ago

I can go ahead and start working on this but want to make sure we add the write dependencies for lightbox. @thomasplevy do you want to use featherlight as the lightbox plugin or do you have a personal preference on another one?

thomasplevy commented 8 years ago

@spyke01 I appreciate this, that was the suggestion by @BurlesonBrad but every library adds new potential conflicts

modals are not difficult to program and I'd greatly prefer to leverage custom javascript rather than another third party library -- we've been working to remove 3rd party libraries wherever possible and will continue to do so

all that to say, if I were to write the code myself, which I was planning on doing eventually, I would not utilize a modal library

Thanks!

spyke01 commented 8 years ago

@thomasplevy Thanks for replying back so quickly. Definitely understand the need to avoid issues with other libraries.

I'll work on it from that perspective to give you a base and then you could spice up the modals afterwards.

thomasplevy commented 8 years ago

@spyke01 sounds wonderful

also, if it's not clear to you we're on the verge of a major release (3.0.0) so please work off the 3.0.0 for this feature

spyke01 commented 8 years ago

Thanks, will do!

On Mon, Sep 26, 2016 at 4:39 PM Thomas Patrick Levy < notifications@github.com> wrote:

@spyke01 https://github.com/spyke01 sounds wonderful

also, if it's not clear to you we're on the verge of a major release (3.0.0) so please work off the 3.0.0 for this feature

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gocodebox/lifterlms/issues/180#issuecomment-249705737, or mute the thread https://github.com/notifications/unsubscribe-auth/AFAVwJswjmpEnzk2knVTZ6S7JMvKxYejks5quDuOgaJpZM4J3nC1 .

Paden Clayton Owner Fast Track Sites / Fast Track PCs http://www.fasttracksites.com

Book a Time with Me: https://fasttracksites.youcanbook.me/

BurlesonBrad commented 8 years ago

@thomasplevy I'm footing the bill for @spyke01 to do this.

I can replace money, I can replace people, I can fork code, & I can find coders all over my network of circles. The ONLY thing I can not ever replace is ⏳ time ⏳

So @thomasplevy , basically what I'm doing here is 💰 paying @spyke01 to give LifterLMS a better feature set that complements what happens on TeamTreehouse. Also similar to Share Your Grade

What I need from you @thomasplevy is a clearly defined roadmap for @spyke01 for a solution that will be approved and merged. 😃

The end result being something like: gocodebox_gratisfaction yields something like this https://docs.woocommerce.com/document/sensei-share-your-grade/#section-2

Hey, if y'all don't wanna put it in a popup ~ fine. Sensei's goes at the end of the quizes and lessons.

All I KNOW is that, currently, the thing which is needed to motivate + give "GRATISFACTION" (definitely a word) to the student + grow the membership enrollment .....is sitting on the student's page just kinda being really under utilized 😉

So... before I go "deeper" with contributing $5k to something like BrainTree, let's see if we can get this one tackled. 👍

Loralee commented 8 years ago

@BurlesonBrad have you considered using social sharing buttons that are coded specifically for your site?? They could be placed in a special widget that's added to your course area, or even something as simple as in the sidebar, under a list of their badges. Here's a quick example, with links to 3 social sites.

image

spyke01 commented 8 years ago

My thoughts on implementing this are as follows:

  1. Add a section in settings that is called "Achievement Earned Notification Template". This would be a taggable input that allowed for shortcodes. An example input might be "Congratulations you just finished {{lesson_title}} and picked up the {{achievement_title}}! Share your progress using the awesome buttons below [my_sharing_shortcode]"
  2. Add a checkbox on the achievements page that says "Show Achievement Earned Popup" if this is checked then when the achievement is earned it triggers the popup using the templated text.
  3. On the code side to pull this off, voodoo...Pretty straight forward, just tapping into the lesson completed function and determining what all to show. It will need to handle the section and course achievements as well as the other types of achievements. It would also be responsible for doing the tagging and processing shortcodes.

If I'm missing something here let me know. I went with the templating to avoid having to edit multiple achievements to modify the text if a formatting or sharing code change happens so it seemed better to use a global value with tagging.

BurlesonBrad commented 8 years ago

@spyke01 That seems like the best option in my opinion.
@thomasplevy We need some input from you as well. @Loralee Feel free to jump in here as well w/ a bit-o-feedback as well if 'ya want. I ain't scared of some more 👀

I need to go mow a few acres and bury a bull. Y'all ping me when 'ya got a gameplan put together.

thomasplevy commented 8 years ago

@BurlesonBrad & @spyke01

I hope ya'll can understand that I simply don't have the capacity right now to map out or talk architecture on a new feature that isn't part of our core roadmap. Take a look at the size of 3.0.0.

This is very exciting but it cannot be a priority for me until that milestone is completed, and maybe not even immediately after that. I appreciate the zeal, but your zeal does not necessarily mean our internal priorities can change and while I appreciate your willingness to fund a feature, it's not a feature that gets us closer to our immediate goals so I have to prioritize that accordingly.

Thanks all,

BurlesonBrad commented 8 years ago

..........and that was a revealing testament for lending LifterLMS $5k-$10k for a BrainTree addition.

@thomasplevy If you're at the helm of code, then you can either choose to give guidance, or not. No one's asking you to do too much. Realistically & pragmatically, the time it took to type the comment above could have been used better. Priorities are always important. No one's denying that, or asking you to shift them.

This is the real world of open source. I can contribute and make something better. Or the community of LifterLMS can become better. That's @thomasplevy 's choice ~ either way ~ not mine. And I fully understand & respect that choice.

@spyke01 The architecture of LifterLMS is plain as day, documented, & right there on the screen. Run with it. Shoot me a bill. 🎂