Contributing to Habitica

HabitRPG is an open-source project. Everyday people with everyday lives devote their time and energy to creating and maintaining everything you see here on this wiki and at HabitRPG. Whether you want to earn the contributor rewards or you just like the idea of open source, we welcome you to contribute to the project. Please jump in where you feel comfortable contributing. Be bold!

Designers
Habitica tells the legend of the Hero (Zakkain), who completely rebranded our original 100%-Bootstrap look-and-feel, and gave us a beautiful aesthetic to call our own. Champion as he is, he's now questing in far off realms. If you see any design issues that could use improvement, please do jump in. It's a void that needs filling (we don't have any designers). Most importantly we could really use CSS optimizations help on mobile.

The best bet is to jump into the web, mobile, or shared repositories as you see fit. Ping us with questions (the main characters that hang around these days are @paglias, @lefnire, @Shaners, and @meaganoff) or just change something that irks you and submit a pull request. Read below for some of the repository details.

Pixel Artists
Jump onto the HabitRPG Pixel Art Trello Board, and join the Pixels in Progress guild. There is a whole vibrant community of artists such as yourself, waiting for you to join the fray! They will give you directions as to how you can help HabitRPG the most.

Writers
Things we need help with:


 * Write guest posts for other blogs, help get the word out. Even Facebook & Twitter updates are great. This is Habit's current bread-and-butter. Periodically there is a surge in traffic and the admins trace it back to a fan's blog post. This makes them extremely happy. Contribution tiers for blog posts and social media are on a discretionary basis -- posts on high-traffic sites are more likely to receive a tier than on a personal blog with few followers or comments. If you feel like your post merits a tier, post a direct link to The Tavern. If you feel like your post was missed, you can repost again after 24 hours. However, remember that not all guest posts will receive contributor tiers. Blogs with more traffic, comments, and visibility are more likely to receive a tier.
 * Get involved with the tutorials & documentation over on the Trello board.
 * You can even help right here on the wiki! Make a wikia account and help the community by writing and contributing to articles. See Helping on the Wiki.


 * Write tales for our Quests on our HabitRPG Quests Trello.

Coders (Web & Mobile)
You are desperately needed! See the Video tutorial here, if that's your preferred format. Let's first discuss our technologies so you can decide which repository you want to get involved with.

There are three repositories: Habitrpg-shared is a library of character sprites, css, algorithms, helper functions, etc. - both mobile & web (and both server & client on web) use this library. If there are any logic errors (custom day start not kicking in, wrong timezone when new-day is calculated, drops not random, etc.) it's going to be here. This library needs a lot of help, so if you're a left-brainer (all sorts of algorithms in here), jump in here! Also, we could really use some unit tests!
 * website
 * mobile
 * habitrpg-shared



There is also a useful website that teaches you how to code in Angular here.

Mobile
One of the best decisions we made was launching the app on AngularJS + PhoneGap. This has allowed us to literally copy & paste giant portions of code between web & mobile, making maintenance and developer transferring a breeze. That's right, the mobile app uses the exact same front-end stack of the website.

While PhoneGap has saved us a lot of effort, the major issues here are (1) us not using all the css tricks we can to optimize performance, (2) mobile-only javascript bugs (like ghost clicks & the sort). If you're mobile-web savvy, please jump into this project wherever you can:


 * Issues
 * Features

Also, before jumping in, read this note on some of the orphan files, habitrpg-shared integration, etc.

Website
About technology in a bit, but first:


 * I want to start small: hit the issue queue, take something that looks simple enough (probably the priority - minor & priority - medium tickets)


 * I'm ready to dive in, and I want to help where I'm most needed:
 * priority - critical and priority - important on the issue queue
 * Unit tests & Karma tests! Oh please, oh please, oh please!
 * We love you and need you.
 * Forget that, I want to build things!: Make way for the new hero! Check out the Trello feature queue.

We originally launched on DerbyJS (which didn't work out, long story short), but we recently ported to AngularJS. Our tech-stack is:


 * Server
 * ExpressJS (NodeJS)
 * MongooseJS (MongoDB)
 * Client
 * AngularJS
 * Jade
 * Stylus

Side-note on technology
We're moving from CoffeeScript to JavaScript because CS is a bigger barrier-to-entry for Habit as an open-source project. I personally love CoffeeScript, but it's prevented quite a few developers from joining. As far as Jade goes, we need a server templating language without ` – ` binding syntax (aka, Handlebars & Mustache) since they're incompatible with Angular. We could have gone with EJS - let me know if you think Jade will cause a barrier.

Setting up HabitRPG locally
Blacksmiths should create a local running instance of HabitRPG, for testing and development. The process to create a local instance can be difficult, so we've collected helpful notes and tips by operating system.

BountySource
Users may now post bounties for HabitRPG bug fixes and feature requests on BountySource.

New to wikis?

 * If you are new to wikis, you may want to read the tutorial.
 * View the list of most help pages.

How to help out

 * Check out the Guidance for Scribes.
 * Join the team working on Taking the Wiki Live.
 * If you want to help but you're not sure where to start, try improving the various stub articles by adding content.
 * Make our site more visually appealing by adding or replacing images. Most of the original HabitRPG images used on the website can be found on GitHub.
 * Examining pages with suggested changes is also a good source of ideas.
 * Reviewing and (when appropriate) editing speculative content helps to keep the wiki accurate.
 * Another helpful activity would be to check the list of wanted pages for frequently linked-to articles that don't exist yet.
 * To follow the changes to this wiki, and to look out for new users and edits use recent changes.
 * You can find a list of useful templates on Category:Templates, some of which are documented on HabitRPG Wiki:Templates.
 * If you need help editing, you could start with Help:Editing or the tutorial.

Want to discuss stuff?

 * If you want to discuss anything specific to an article, use the talk page for that article.
 * For more general discussions, use forums.

Please sign in every time you edit, so that we can recognize your contributions.

Requesting features/Submitting ideas
If you have an idea for improving HabitRPG, you can learn about our feature tracker and how to request a new feature or go straight to our community site and submit new feature ideas for the web app or mobile app.

Submit bug reports at GitHub.

For more info about the project...

You can also check out:  the Community Pages on the HabitRPG website

open issues on Github

enhancements under consideration on the Trello board  IRC: #habitrpg freenode.net Contributing