OpenDKP

Discussion in 'The Veterans' Lounge' started by Moncleared, Mar 6, 2019.

  1. Moncleared Lorekeeper

    Hello friends! I currently play on the Phinigel server as Moncs and have been spending the past few months learning more and more about Amazon Web Services. In order to keep myself motivated, I decided to build a new DKP tool for Everquest. This was a fun project that turned into something my guild seemed to appreciate over the other DKP options available. I've recently just setup Magic and Melee (one of the new TLP server guilds) with their own instance and have been receiving positive feedback. Here is a little more information about the system itself:

    OpenDKP

    OpenDKP is an open source based solution for DKP in EverQuest. It was built 100% using Amazon Web Services using AngularJS 6 and .NET Core.

    Features:
    • Character Management - Create, Update, Delete, Display characters in the system, including individual character pages showcasing their items, raid attendance, adjustments and more
    • Raid Management - Create, Update, Delete and displaying of raids. The UI is designed to be MUCH quicker/responsive than other systems. Additionally, I've built multiple helper methods to import raid dumps, bulk add items, etc
    • Adjustments - Ability to apply mass or one time adjustments across characters
    • Attendance tracking - 30/60/90/life
    • DKP calculation: Default calculation is aggregate (sum of all adjustments, raid ticks, items), can accommodate others such as effective dkp as needed.
    • Missing Raid Tick Finder - The ability to find which raid ticks your character is missing. Know you haven't missed a raid but can't figure out which raid dump you are missing from? This will help!
    • Request System - Ability to have characters credit for specific raid ticks individually, with administrators approving or declining the requests. Also works for Character association to their Cognito accounts
    • Guild Roster sync - DKP system data not up to date? No worries, paste a guild dump into the roster sync tool and it'll update the database for you
    • Audit system - Need to see which admin deleted the raid? No problem
    • ....and much more!
    Technologies


    AngularJS 6 (hosted in S3)
    API Gateway
    Lambda
    Cognito
    IAM
    Route 53
    Cloudfront
    ...and many more.

    OpenDKP is designed to be open source and it is freely available on my GitHub broken up into two projects (one focused on the client, one focused on the serverless side). I'll admit, the documentation to get it up and running in the cloud is still a work in progress, but I'll keep chipping away at it.

    Additional Notes:
    • Already using another DKP tool? That's ok, we can most likely convert the data. I was able to successfully convert 3+ years worth of EQDKP to the new system with custom scripts I wrote
    • Want to chat on Discord? Join here! https://discord.gg/WguFyYJ
    • OpenDKP Source Code for both Serverless lambdas and Angular client are hosted on GitHub FREE, however, it will take a solid working knowledge of Amazon Web Services to set up.

    If anyone is interested in taking a deeper look, I encourage you to visit https://opendkp.com, here you'll find the source code, a live working demo to play with and how you can get started using the system!
    Pirlo, bbanz, gotwar and 7 others like this.
  2. Guzzle Augur

    10/10 on the DKP system.

    Learning about AWS in the setup process was super enjoyable, especially as I've been intending to become more knowledgeable professionally anyways.
    Moncleared likes this.
  3. Warrior007 53 61 74 6f 73 68 69

    Coming from using a custom setup (Original Guildomatic for Citizen), then EQDKP (MM/Original Gangster Club), this is a finely tailored and highly efficient solution for guild/raid tracking.

    Highly recommended solution, thank you Moncs for your ongoing work!
    Moncleared likes this.
  4. Byun Elder

    Spent some time today talking to Monc, nice guy. The software is clean.
    Moncleared likes this.
  5. Horyuken Augur

    Can this run on the free/evaluation tiers of AWS? It looks like it has most of the requirements. I would guess it only starts costing if you use to many hours of compute or numerous users.

    I've been wanting to mess around with the amazon offerings.
    Moncleared likes this.
  6. Moncleared Lorekeeper

    @Horyuken - Answer is yes and no. I've used every "Always Free Tier Eligible" service I could minus the RDS MySQL instance. It was a strategic choice as I wanted to use Entity Framework with .NET Core. RDS MySQL Micro instance is sufficient and free for the first year. After that, it is approximately $12 per month.

    For those tech savy, I have a project where I started converting the database to DynamoDB which fits into the Always Free Tier category, but that's a pretty heavy change that I haven't saw through yet.

    The good news is, outside of the RDS instance everything else is virtually pennies for the data/usage even a large guild would see. As an example, my expense in Feb 2019 was $1.15 USD, again, with free RDS instance. Fast forward a year, I expect that would be $13.15 USD ish.

    Essentially it cheaper than your typical hosting prices after it's all said and done if you want to host your own instance.

    @Everyone, I've also been slowly updating documentation in the GitHub area. It'll take time but I'm working on it. Come chat with us on Discord if anyone is interested in more!
  7. Fanra https://everquest.fanra.info

    Is the purpose of this for guilds that do not have a hosted website? Because otherwise EQDKP Plus seems to work quite well.

    Please advise me if I'm missing something.
  8. Moncleared Lorekeeper

    So a couple of angles to answer your question. The first and most obvious was this project is a side hobby of mine where I selected it because I enjoy EverQuest and was tasked with doing some DKP work on our existing system (prior to converting to OpenDKP). I had wanted to create a more modern solution using AngularJS combined with Amazon services. I reached a point that I felt comfortable sharing the solution that I had so others could review, provide feedback, contribute to or simply leverage themselves.

    The other angle is, I wanted to implement EQ friendly features such as bulk item upload and raid insertions. I wanted a smooth and seamless experience for the user when doing these actions.

    As specifically for EQDKP Plus, I won't compare OpenDKP directly to it. Both solutions require some monetary investment for hosting. However, I'll tell you what OpenDKP does really well:
    • Performance, Scalability, Availability - AWS makes this possible. It's only DKP after all, so this may not be important to you
    • Restful APIs exposed returning JSON for all data within the system such as: items, raids, characters, adjustments, dkp, attendance, etc..Why is this important? it's much easier to integrate other tools such as Discord Bots.
    • Quick & Easy Raid and Item insertions that includes custom formatting to copy/paste directly from log files (check out the demo site for examples!)
    • Missing Raid Tick Finder - If you were counted present for 17/20 raid ticks one night, this can help you quickly and easily identify which raid ticks you need credit for. Additionally, we offer the option to request it on the site so DKP admins can Approve/Deny the request (no need to go edit/update the raid directly, handled for you)
    • Super fast searching/filtering for Items, Characters and soon to be Raids/Summary page
    • ...and more
    I'll also say, having another option is never a bad thing.
    Hope this is helpful! Sorry for the late response as well
    Pirlo and bbanz like this.
  9. gotwar Gotcharms

    This looks really good. EQDKP is getting very long-in-the-tooth, and it's really great to see someone taking an interest in implementing a new system centered around modern tech. The AWS platform/toolset was a fantastic choice.

    I'm excited to see where this goes. My hat off to you, sir, for taking the time to put this together.

    Keep chipping away at that documentation!
    IblisTheMage, Moncleared and Sancus like this.
  10. Moncleared Lorekeeper

    Yea I'm like looking at the documentation thinking: ", I probably should have wrote this down 8 months ago." Going to aim for a big documentation update this weekend. I'll probably publish a video on setting everything up too hopefully to compliment everything.
    gotwar likes this.
  11. Syylke_EMarr Augur

    If you can implement a way to have 45-day decay on points and items, that'd be swell. We only look at the last 45 days when considering DKP earned and spent, but finding an updated prebuilt DKP site that can work that has been... difficult.
  12. Moncleared Lorekeeper

    Come chat with me in Discord, I'm pretty sure I can implement this for you very quickly. If I understand your requirements correctly, we're just always doing a 45 day look back for aggregating DKP Earned/Spent which is probably 3 lines of code change from what I have today. Additionally, need to understand how you do adjustments (if at all).
  13. Moncleared Lorekeeper

    Shameless bump here! I've successfully on boarded a few new guilds to the system including some EQDKP Plus conversions. I've continued to build out some features and capabilities across OpenDKP and actively listening to user feedback in the Discord servers.

    Even if you aren't sold on using OpenDKP today, I'd love to hear what would change your mind for the future!

    Stop by and chat:
    https://discord.gg/WguFyYJ
  14. Moncleared Lorekeeper

    Made a lot of good improvements to the OpenDKP system, including finishing a free global discord bot that is included! Don't be shy, come on over to Discord and chat!
    https://discord.gg/WguFyYJ

    Or visit me here:
    https://opendkp.com

    Latest Features:
    • Guild Branding: customize your guilds website, forums and guild logo
    • Customize your Summary Page and Modify who shows up on class cards at the top
    • Night Batch settings: Each night mark characters active or inactive based on whether or not they've been attending raids!
    • Support for a new game which I won't name on these forums, but feel free to stop by and see!
    • Global Discord Bot, add the bot to your server and !setclient to register it with your Discord Server!
    • Continued performance tweaks
    • Continued bug fixes
    Metanis and Duder like this.
  15. Moncleared Lorekeeper

    Just want to bump this thread given the upcoming TLP announcements. OpenDKP is running stronger than ever! Come check us out, hang out in Discord, ask questions, check out the source code etc :)
  16. Bigstomp Augur


    I have not used AWS in a bit but is there anything special about RDS MySQL? Or could you host your own mysql on a free system.
    (been a couple years since I used AWS so I forget more than I remember I think)

    Edit: meaning, I used to be able to install mysql on a free system via apt-get
  17. Aneuren Tempered Steel

    Immortal Few on Mangler uses this system. It's easy to use, and Moncs has worked to implement user requests that end up working very well. The decay functionality is the best I have ever used.

    If you are thinking about giving this a try, feel free to ping me on Discord for a more detailed conversation!
    Moncleared likes this.
  18. Moncleared Lorekeeper


    You could absolutely use your own instance of mysql on a separate server. I opted for the RDS instance because it is fully managed by AWS on my behalf, no outages over the past year I've been using it and patching is automatic. I get an email once a year that states they are updating my certificate for the instance and that's about all!

    If you elected to do your own MySQL server you'd be responsible for patching, hosting charges/fees, backups/storage etc. Not that any of that is particularly expensive, but the low cost and convenience i get from RDS makes it an easy choice for me.
    Bigstomp likes this.
  19. The real Sandaormo Augur

    This is like jumping on a train after the caboose goes by. Where were you 20 years ago?

    It looks like a really nice version/product, hopefully it can be used with future games etc.
  20. Moncleared Lorekeeper

    Thanks! I did recently expand it to include Wow Classic given the hype it had surrounding it. The biggest challenge I have with on boarding new games is the amount of data you can export from the games. For example, even EQ is limited with the logs/guild dumps/raid dumps. Wow Classic I was able to create an extremely small addon to export some basic raid data.

    As popular games look to leverage DKP and the interest is there I will absolutely continue to expand!