$ 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/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 |
/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 |
/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
}
/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
}
/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
}