GithubHelp home page GithubHelp logo

nodesk's Introduction

nodesk

for posting/managing fixed-price jobs on oDesk

to run:

> mongod &
> npm install
> node web.js
in browser: open http://localhost:5000

to run in test mode:

> mongod &
> node web.js test
in browser: open http://localhost:5000
click 'set team' and click 'set'

nodesk's People

Contributors

akankshita avatar alexandre67fr avatar dglittle avatar krilnon avatar ogt avatar vodolaz095 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

nodesk's Issues

Estimated end date is not ideal

Currently Estimated End Date is set to 7 days after todays date.
In my view this is wrong.
I would suggest that the estimated end date should be

today() + ceiling($budget / 100) + 1

to take into account that the person works 5hrs per day at ~$20/hr and the job will fill within 1 day from getting posted

Remove the markdown after the oDesk job is posted

After we receive the new issue hook, gitDesk looks for the bounty markdown and posts a job if it finds it. It also prepends some text to the GitHub issue about the oDesk job.

Once it does all that, it should update the GitHub issue to eliminate the markdown (since it's not needed anymore).

make pay/close dialog have a "message" field

I'm offering $40.00 on oDesk for someone to do this task: https://www.odesk.com/jobs/~01a2ec38cb9ecc5b14

to replicate issue:

run in test mode (see readme)
click 'list'
click 'message'
note the dialog that appears
click cancel
click 'pay/close...'
note that a dialog appears...

todo:

  • make the dialog have the subject/message stuff from the "message" dialog (in addition to the feedback textbox)
  • make the message subject default to "thanks!", and text default to "thanks for your help, I am now closing the contract, and paying you!"
  • when "pay/close" is clicked, make a rpc call to send a message with the message subject and text (in addition to what it already does)

after pressing hire, make it show list

after the user presses "hire" to hire someone, make it show the list (rather than reshowing the applicants for the current job, since that job is now closed, since someone was hired)

Hire/Close should be updating the pre-text of the issue

You are currently inserting a "status" text in the issue:

        return _.wget('PATCH', 'https://' + u.credentials.github.user + ':' + u.credentials.github.pass + '@api.github.com' + path,
            _.json({
                body : "I'm offering $" + (1*budget).toFixed(2) + " on oDesk for someone to do this task: " + job.public_url + '\n\n' + issue.body
            }))

You should be updating the text on hire/close
Here is my suggestion of what the text should be

Multiple jobs against same repository

I should be given the option to override the default title.
For example I have multiple jobs on same repository.
They all appear having identical title. It looks bad
and I will get "duplicate" job posting delisting from odesk....

A simple way around it is to allow me to override the default title.

align some html widgets

context:

  • run locally (see readme)
  • signin
  • click "set team" and set a team
  • click "post"
  • you should see a ui for posting a job

task:

  • the ui for posting a job looks bad
  • make these changes to it:
    • make category dropdown same width as text area
    • make input areas after "price:" and "title:" line up with each other
    • make input area after "title:" fill up the remaining width to line up with textarea
  • add script tag with src: https://raw.github.com/dglittle/myutil/master/tab.js

submit pull request with proof that it works (like a screenshot)

to apply:

format your cover letter as follows:

  • your github username
  • what command would you run to create the node_modules directory given a package.json file?
  • how long will this task take?

make it so you can paste in a github issue, and it creates a job

paste an issue url
fetch the issue from github
extract the yaml create context
fill the job template to create the job description (template here: https://gist.github.com/ogt/55b25e064f729cb5799d )
post the job using the rest of context

add these issues:

  • modify the git issue to point at the newly created job
  • add questions driven by skill based on question repertoire to find past hires of similar skills and auto invite
  • add other jobs like that by the sender in the job description

Incorrect Applicant Count

nodesk reports 0 and 1 applicants.
I actually have 1 pending invite (torwards the same person) in both jobs.

I don't see how this can be correct

image

By the way I think that the inclusion of the invites in the "applicants" is not ideal. I would suggest that we exclude them.

make pay/close have dialog to set feedback

I'm offering $50.00 on oDesk for someone to do this task: https://www.odesk.com/jobs/~0119cb908f7e1d1ec6

to replicate issue:

  • run in test mode (see readme)
  • click 'list'
  • click 'pay/close'
  • note that the job goes away

todo:

  • change 'pay/close' to 'pay/close...'
  • make it open a dialog similar to clicking 'message', asking for a feedback comment (defaults to 'Great work!'), and with a 'pay/close' and 'cancel' button
  • clicking 'pay/close' in the dialog should do what the original 'pay/close' did (and have a throbber.. like it did)

Failed to retrieve session?

12 hours after my last session I try to re-open the app and I get this:

image

I included in a private msg the logs

Changing odesk credentials doesn't update team list - cannot forget old credentials

I signed in successfully using one account xx in odesk.
Then I realized that I wanted to post the job from a different odesk account.
I changed the odesk user/pass/sec answer, left the github credential same and pressed update.
No change.

I refresh the page and repeated the operation above... No change

I restarted the server and repeated the operation above ... No change.

I removed the db

mongo nodesk --eval "db.dropDatabase()"

somehow the app was still remembering my name? and after re-entering my credential I was given the list of the teams of my previous account.

So I assume that my connect with the new credentials fails (need to figure out why...) and then the app falls back to some cookies that keep the original data...
Even though there is no explicit logout... it seems to be wrong that I cannot "forget" my old credentials.

Add a "custom question(s)" markdown option

In addition to:
oDesk Bounty: $10.00
Required Skills: javascript, mongodb

Add the following as an optional parameter
Custom Question 1: xxxxxxx
Custom Question 2: xxxxxxx
Custom Question ...

These questions should be parsed by the issue-hook listener and added to the job description, before the first X characters of the issue body.

Need a preview job button

We should have a preview job button (next to the post button
image
.
The button should do the following:
It should fill in the job as if it prepares for a post

image

but it should press the preview button instead.
It should capture the html returned by the preview back and produce it in a popup.

add throbber

context:

  • run locally (see readme)
  • signin
  • click "set team" and set a team
  • click "list"
  • it can take a little while to load

task:

to apply:

include in your cover letter:

  • your github username
  • what command would you run to create the node_modules directory given a package.json file?
  • how long will this task take?

If the job includes post matter yaml it should be used to fill in the missing parameters of the job

The most common way that we use nodesk is via
the [post for github issue] button.

I think there is value in capturing the associated budget, question, skill in the issue itself.
I would suggest that we use the "post matter yaml" model (http://jekyllrb.com/docs/frontmatter/) and allow defaults for these params to be set at the end of the issue.

Ie, we add a [retrieve defaults] button next to the issue. When pressed the issue is fetched and we look for text after the last line that starts with 3 dashes. ---
The text that follows is treated as yaml, read and parsed.
We look for attributes Question, Skills, Price (or budget) and we fetch the corresponding values and use them to fill in the subsequent fields


Issue [       ]  [retrieve defaults]
Question
Skills
Price

Add a "required skills" option to the issue markdown

When creating a new issue in a linked repo, add an additional markdown option:

Required Skills: skill1, skill2

The hook listener (/issue-hook) should parse this the way it parses the bounty amount, and add the listed skills to the oDesk job post.

Cannot read property 'public_url' of null

Can get nodesk to work…..

^Cithaca:nodesk odysseas$ node web.js 
go to http://localhost:5000
error: TypeError: Cannot read property 'public_url' of null
    at Object.rpc.postIssueJob (/Users/odysseas/Dropbox/Home/code/projects/nodesk/web.js:275:114)
    at runFunc (/Users/odysseas/Dropbox/Home/code/projects/nodesk/web.js:123:34)
    at Array.map (native)
    at Object.module.exports._.map (/Users/odysseas/Dropbox/Home/code/projects/nodesk/node_modules/gl519/index.js:40:18)
    at /Users/odysseas/Dropbox/Home/code/projects/nodesk/web.js:126:32
notes: undefined

The error is when it attempts to do the github call... but no job I can see is there at odesk either

        _.wget('PATCH', 'https://' + u.credentials.github.user + ':' + u.credentials.github.pass + '@api.github.com' + path,
            _.json({
                body : "I'm offering $" + (1*budget).toFixed(2) + " on oDesk for someone to do this task: " + job.public_url + '\n\n' + issue.body
            }))

Provide option for auto-inviting past successful candidates

After completing a job ask ask the questions

Should I keep the contractor in the pool of furture invitees for 
 [  ] javascript
 [  ] jquery

After posting the job provide an Invite applicants button that

  1. List applicants that match required skill/pool (as above),
    • under each applicant
      • project [ issue link, contractor profile link, project name, date, budget ]
  2. Checkbox next to each applicant with an invite button
  3. On press the invite button a contact request is being made with the following text

Hi <first name>, 

I have one more of these small/fun projects like the one we did recently.
If you are interested to apply - you can skip the answering the question part.

odysseas

P.S. let me know if you would prefer me not inviting you any longer

Ideally we should be able to automatically remove people from pool when they respond so...

Send Message should be available for applicants as well

It would be nice to be able to message applicants as well as ongoing contracts:

My current approach is to use the message center for communication with applicants. I typically submit a single welcoming message as well after being hired and a final message on job completion. All the remaining post hire communication is via github comments.

On the other hand any pre-hire communication happens via odesk messages.
Even though the actions are often just reject or hire, there is often message activity as well.

  • I typically engage with the people I invite.
  • I get referal applications from prior people I have hired they often do not answer the questions..so I need to explain them that they have to answer the questions even if they are referals
  • Occassionally I will feel that a person that failed to meet the job requirements does deserve an explanation (instead of a reject)

Anyway, for the reasons above I find a message button next to the applicants/invitees to be useful - similar to the one that we display next to the ongoing contracts

Application registers itself with odesk with generic name test

By not uniquely naming the app, it becomes hard/impossible to de-register it afterwards from odesk (among other side-effects).

I am not sure if this is a problem of the underlying odesk-passport... (I couldn't find anywhere the name test in the code... so I assume it is given by default by the odesk-passport module?)

image

make pressing hire also send a message

I'm offering $50.00 on oDesk for someone to do this task: https://www.odesk.com/jobs/~0119e0573cb486cc98

to replicate issue:

  • run in test mode (see readme)
  • set team to team 1
  • click 'list'
  • click 'test job 1'
  • click 'hire'
  • note that it says 'hired!"

todo:

  • change 'hire' button to 'hire...'
  • make it open a dialog similar to clicking 'message' (after clicking 'list') with a subject and message (make the defaults the same as for 'message')
  • instead of 'send' it should say 'hire'
  • clicking hire should hire them, as it does now, and then send a message (you can call the message rpc directly after calling hire, as in "rpc('hire', ...); rpc('sendMessage', ...)"

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.