Skip to content
This repository has been archived by the owner on Aug 8, 2020. It is now read-only.

m-nny/hireme-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hireme-server

Running

     $ mvn spring-boot:run

By default, it will run on port 5000. And use MySQL Database on 178.128.170.25:3306. You can change it in application.properties file

API specification

Authorization

/api/auth

Method Path Request Response Protected
POST /auth/signin RequestBody:
{usernameOrEmail, password}
{accessToken, tokenType} No
POST /auth/signup RequestBody:
{fullname, username, email, password}
{success, message} No

User

/api/user, /api/users

Method Path Request Response Protected
GET /user/me -- {username, fullname} Yes
POST /user/me RequestBody:
UserInfo
{success, message} Yes
GET /user/checkUsernameAvailability RequestParam:
{username}
{isAvailable} No
GET /user/checkEmailAvailability RequestParam:
{email}
{isAvailable} No
GET /users/{username} PathVariable:
{username}
UserInfo No

Company

/api/company

Method Path Request Response Protected
POST /company RequestBody:
CompanyInfo
{success, message, id} Yes
GET /companies/{id} PathVariable:
{id}
CompanyInfo No
GET /companies/find RequestBody:
{name, location}
[CompanyInfo] No
UserInfo = {
  username,            
  fullname,
  location,
  employment: {         // Optional
    position,
    company
  },
  current_role,         // SE, designer, marketing, sales, management, other
  education: {          // Optional
    university,         // name,              'Nazarbayev University'
    graduation_year,    // graduation year    2020
    graduation_month,   // graduation month   'June'
    major,              //                    'Computer Science'
    degree,             // Bachelor, Master, PhD
  },
  hidden,               // Show in search     true
  job_type,             // Full-time/Part-time/Contractor/Intern
  job_field,            // [Frontend dev, backend dev, web dev, mobile]
  skills,               // [react, spring, kotlin, java, tensorflow]
  createdAt,            // Date when entry was created
}

CompanyInfo = {
  id,                   // Only in response
  name,                 // Google
  creator: {
    username,           // m_nny
    role                // Founder/HR/Team leader
  },
  logo_url,             // https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
  location,             // Astana, Kazakhstan
  employee_number,      // 100+
  specialization,       // Search Engine
  description,           // Best search engine in the world
  createdAt,            // Date when entry was created
}

Job Offer

/api/job-offer

Method Path Request Response Protected
POST /job-offer RequestBody:
JobOfferInfo
{success, message, id} Yes
GET /job-offers/{id} PathVariable:
{id}
JobOfferInfo Yes
GET /job-offers/find-by-company RequestBody:
{company_id}
[JobOfferInfo] Yes
GET /job-offers/find-by-position RequestBody:
{position}
[JobOfferInfo] Yes
GET /job-offers/find-by-location RequestBody:
{location}
[JobOfferInfo] Yes
JobOfferInfo = {
  id,                   // only in response
  company: {
      company_id,
      name,             // only in response
      logo              // only in response
  },
  position,
  responsibilities,          
  qualifications,
  [location]            // list of locations              
  created_at,           // only in response
  updated_at            // only in response
}

Posts (news feed) - returns the last 10 posts for now

/api/post

Method Path Request Response Protected
POST /post RequestBody:
PostForm
{success, message, id} Yes
GET /posts/{id} PathVariable:
{id}
Post Yes
GET /posts -- [Post] Yes

Used in response

Post = {
  id,                      
  company,                 // is company (true - author is company, false - author is user)
  author: {
      id,                  // company id for company or user id for user
      name                 // fullname for user or company name for company
  },                 
  title,
  text,
  jobOffers,               // list of JobOfferInfo
  created_at
}

Used in request

PostForm = {
  company,                 // is company (true - author is company, false - author is user)
  author,                  // company id for company or user id for user
  title,
  text,
  jobOffersIds             // list of ids of job offers
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages