Code Monkey home page Code Monkey logo

questhub's Introduction

Questhub.io

http://questhub.io sources.

Quick start

  1. Install http://vagrantup.com/
  2. Clone this repo
  3. Run vagrant up. (This step takes 15 minutes on my laptop.)
  4. Go to http://localhost:3001 in your browser.

Run vagrant ssh to access your VM.

How everything is configured

nginx listens to 80 and 81 ports. Port 80 is for production, 81 is for development. It serves static html/css/js files from www folder, except for /api calls, which it proxies to 3000 or 3001 ports. So :80/api is proxied to :3000/api, and :81/api is proxied to :3001/api.

There are two Dancer instances, one for production on :3000 and one for development on :3001. Both are running as Ubic services. Development Dancer instance should reload code changes automatically, thanks to Dancer's auto_reload option. (Upd: It doesn't, auto_reload is broken. Restart manually with sudo ubic restart dancer-dev.) To reload the production instance, run sudo ubic restart dancer inside the VM.

Port 80 from VM is forwarded to port 3000 on your localhost, and port 81 to 3001. So, after starting VM using vagrant up, you can access the development instance by going to http://localhost:3001 in your browser.

Source code is stored (mounted) in /play. It's also mounted into /vagrant, but you shouldn't reference /vagrant dir in the code, because there's no /vagrant in production.

Logs and other data, except for mongodb, is in /data. Nginx logs are in /data/access.log and /data/error.log. Dancer logs are in /data/dancer and /data/dancer-dev.

How to reconfigure the environment

The VM contents is configured with Chef. If you need a new debian package, add package %package_name% line to cookbooks/questhub/recipes/default.rb file. If you need a new CPAN module, add cpan_module %module_name% line to cookbooks/questhub/recipes/default.rb file.

You can re-deploy a new chef configuration into an existing VM by running vagrant provision.

=========

API

See app/API.md for backend API documentation.

githalytics.com alpha

questhub's People

Contributors

berekuk avatar bessarabov avatar chorny avatar creaktive avatar dmikis avatar druxa avatar sergeyromanov avatar syndicut avatar tarmolov avatar varmanr avatar zurom 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

questhub's Issues

User can tag the quest

Tags would be useful for quick filtering.
Examples of tags:

  • quest difficulty
  • cpan module
  • mentoring/partner offer
  • quest type (internally)

User can get an "perl newbie" achievement

For the 3 simple quests, for example. Or maybe even for one.

(Btw, for this and most of following achievements, we can invent further levels: "perl apprentice", ..., "perl guru").

User can put html links in quest's description

I don't think we need markdown or other markup language yet.
But we should allow users to provide html links with details.

Alternatively, we can wait until we'll implement comments. If they'll use disqus, for example, that'll be enough.

User can choose a quest difficulty when creating a quest

So that we'll grant a different number of points depending on difficulty.

Yep, I really think it can be a good idea, and the desire to claim everything as "extremely hard" to get more points won't be a problem. Maybe I'm wrong.
Anyway, we'll have "likes" mechanic to gather a feedback on how it's working.

User can choose a quest type while planning a new quest

"blog post", "fixing a bug", "releasing a new module", "writing documentation", "donating money" are all different quest types.
(I'll create different issues for each one so we'll be able to implement them iteratively.)

Different quest types have the following advantages:

  • they give a user a sense of a specialization choice (we'll grant quest-type-specific achievements based on that)
  • they'll act as a quick filter in a service-wide quest list (color-based coding is a good idea, I think)
  • they are a first step in a task concretization; concretization is important for fighting procrastination

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.