Coder Social home page Coder Social logo

watminers's Introduction

WatMiners

Co-op ranking shouldn't be a pain.

#Project Requirements are listed as the follows:

  • students login using Waterloo's Quest credentials, website provides backend integration with CAS
  • a database that links JobID to the job description on jobmine, please refer to Waterloo's Open Data API to see if this is feasible
  • we may allow students to enter the jobs they applied for (jobID and ranking) ONLY ONCE, this is to prevent frequent changing of their ranking information that messes around other people, however, they are allowed to change their preferences any time
  • we will be displaying all candidates' questID rather than their real name, since that's the only information we can get from Waterloo's CAS system. students are encouraged to email other candidates to discuss about their own decisions

#Choice of language and frameworks:

  • MEAN stack, database integration done by REST API

Frontend Workflow:

student login -> student enter their jobID, job rankings and their own preferences with number 1 - 9, if they have already done so, jump to the next step -> a simple interface that displays all candidates who applied to the same job as the user, and their ranking and preference info

#ADVANCED FEATURE:

  • spam detection and report. people may peek at others job application by entering jobID for the job they never applied to, we can develop a "report" button that allows other students to report such a person
  • encourage others to share their ranking: uses Facebook API or email to encourage people to share their info. since every student knows the list of people who applied the same job, one can enter those names to invite them to WatMiners

=================THIS IS THE INCENTIVE FOR THE PROJECT================= FACEBOOK POST:

I would like to ask for help on this website “WatMiners” for co-ops in Waterloo.

Every year ranking is a big decision for co-ops.

Imagine that you have an offer from company A, but you are "ranked" for company B which you would like to go. Do you take the offer from A which is more secure, or do you take a chance to rank B as your top choice?

It will be nice if we can have a central information sharing website where students discuss about their ranking preferences. If you know that whoever has an offer from B is taking the job, you don’t have much choice other than taking the offer from A; on the other hand, if you know that the person is not taking B's offer, there is a chance. It's all about information sharing.

If you find this useful, let's build it so that more people can benefit. The more people use it, the better it will be.

Comment in this document your email address and Github username so I can add you to the chatting channel and github repo. Also it includes additional information such as whether Waterloo Works is going to change anything. https://docs.google.com/document/d/18Xc3wU2jbKHHv_N7GG5QBw45B-y68WvtnUc0PdrDwuc/edit?usp=sharing

Additional Info:

A detailed ranking algorithm is available here. https://uwaterloo.ca/co-operative-education/get-hired/ranking-matching

Several students have similar complaints: http://www.tinyepiphany.com/2009/11/way-to-improve-jobmine-matching-process.html http://www.reddit.com/r/uwaterloo/comments/2ubizx/fix_jobmines_algorithms/ http://a-notebook.blogspot.ca/2009/11/way-to-improve-jobmines-matching.html

Waterloo Works is replacing jobmine, but it doesn’t seem that they are changing anything about the matching algorithm, and disclosing ranking information. https://uwaterloo.ca/co-operative-education-career-action-systems/waterlooworks/key-process-changes We may as well build our website and sell it to CECA!

watminers's People

Contributors

chen-han avatar

Watchers

James Cloos avatar Maidi Lin avatar Jeffrey Ying avatar  avatar  avatar

watminers's Issues

Current TODOs

  • Refactor frontend Angular Logics to a more organized way
  • Redesign the page layout so it looks better
  • UX improve: instead of manually entering jobID and ranking info, students can copy paste their ranking page on jobmine to ours, we would upload the info automatically
  • More on backend logics and algorithms (see the backend issue for more detail)
  • More integration with facebook or Linkedin:
    1. Students can copy paste their select time slot page on jobmine to our page; it would contain a list of people who applied the same job as him/her. We send invites to those people saying that someone wishes to share ranking info with you.
  • design promotion materials on social media

Database & Backend

The database will be divided into three tables using relational database model
RANK stores ranking and preference information for a job-student pair, this is the one we are focusing now)
fields: rankID, jobID, studentID, ranking, preference

STUDENT: stores additional information for each student, not important for now
primary key (studentID)
JOB: stores additional information for each job such as job description, not our focus now
primary key jobID //derived from JobMine

Basic DB Operations:

get job rankings: returns a list of rankings and preferences associated with each job
this operation will only be available for users who are ranked for that job,
get user rankings: get a user's rankings, available only to specific user
input rankings: accepts a list of rankings in form of (jobID, userID, ranking, preference) and insert them to database

More Advanced DB operation:

Notify users on new information with their job (e.g. someone with an offer is not taking the job, someone with offer IS taking the job, more people have entered their ranking for a job)

How do we know that a person is not lying and entering random information for jobs?

  • Ask each student to copy paste their select time page on jobmine. Since it contains a list of interviewees with their names, we may check against their registered names on our system.
    But we can't use Facebook name since they may mismatch, especially for those with different legal name and preferred name. We can ask people to input their student ID and go into WatIAM to search it up. I have done some basic research, there seems to be no API for that, but we might be able to use cURL to access the search function anyways, since it's public.

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.