- The recruiter service serves as an API portal for recruiters to view resumes uploaded by students and interact with job ads.
brew install mysql
rake db:migrate
cp secrets.yaml.template secrets.yaml
You need to login to mysql
, and create the database names for your development and test environments and fill it in the secrets.yaml
. For example,
In mysql
:
CREATE DATABASE groot_recruiter_service
git clone https://github.com/acm-uiuc/groot-recruiters-templates views
- In other words, download the store and name it
views
.
ruby app.rb
Note: All routes require an access token from groot (set in https://github.com/acm-uiuc/groot/blob/master/services/recruiters.go#L21) to be authenticated. This access token will be validated in config/secrets.yaml
under the access_token
key.
Some routes also require a recruiter to be logged in. This will be managed by the session.
You can view routes by running rake routes:show
. The shortened output will be printed first, followed by a description of each route.
:: GET ::
/jobs
/recruiters
/status
/students
/students/:netid
:: HEAD ::
/jobs
/recruiters
/status
/students
/students/:netid
:: OPTIONS ::
:splat
:: POST ::
/jobs
/recruiters
/recruiters/:recruiter_id/reset_password
/recruiters/login
/students
:: PUT ::
/jobs/:job_id/approve
/recruiters/:recruiter_id
/students/:netid/approve
:: DELETE ::
/jobs/:job_id
/students/:netid
Returns all deferred (unapproved) jobs in descending order.
Required Params
- None
Creates a new job ad.
Required Params
- [:job_title, :organization, :contact_name, :contact_email, :contact_phone, :job_type, :description]
Approve a job ad. Requires admin privileges.
Required Params
- [:job_id]
Delete a job ad. Requires admin privileges.
Required Params
- [:job_id]
Verifies recruiter credentials if login was successful.
Required Params
- [:email, :password]
Creates a new recruiter and sends them an email with their credentials.
Required Params
- [:company_name, :first_name, :last_name, :email]
Resets a recruiter's password and sends them another one via email.
Required Params
- Required params[:email]
Updates a recruiter's password
Required Params
- [:email, :password, :new_password]
Gets and filters students by their attributes.
Optional Params
- [:graduationStart, :graduationEnd, :netid, :degree_type, :job_type, :approved_resumes]
Creates a new student and uploads their resume to S3. Anytime a student updates their resume, this endpoint will also be called.
Required Params
- [:netid, :firstName, :lastName, :email, :gradYear, :degreeType, :jobType, :resume]
Approves a student's resume.
Required Params
- [:netid]
Fetch a student's information by their netid.
Required Params
- [:netid]
Delete a student from the database and their resume from S3.
Required Params
- [:netid]
- Every model, route, and helper should have an associated spec file.
- Make sure your test database has been created/migrated with
RACK_ENV=test rake db:migrate
.
Run tests with rake spec
, or more simply, rspec
.
This project is licensed under the University of Illinois/NCSA Open Source License. For a full copy of this license take a look at the LICENSE file.
When contributing new files to this project, preappend the following header to the file as a comment:
Copyright © 2017, ACM@UIUC
This file is part of the Groot Project.
The Groot Project is open source software, released under the University of Illinois/NCSA Open Source License.
You should have received a copy of this license in a file with the distribution.