We are devising a web application designated as 'EasyConnect' which has two parts: Recruiter and Job seeker. This will act as a bridge between recruiters and job seekers. The podium will permit recruiters to post diverse jobs which will be visibe to the all the Users who came to out platofrm and shortlist contenders based on diverse skills.On the other hand, the job seekers will be able to build their Rich profile containing details about their past Experience and expertise about the work.Job seeker can look different jobs based on their search, apply to the jobs they find appropriate, and they will also be able to learn new skills.Once the Job seeker applied for the Job, the recruiter can look at the applicant profile and shortlist it for further follow ups. This reduce the time for selecting successful candidates.
- Features
- Technology Stack
- Setup Environment
- Testing
- License and authors
- Recruiter View :
- Recruiter can login/SignUp
- Post the Job
- Search qualified Candidates
- Shortlist the Candidates for Interview
- Candidate View :
- Candidate can login/SignUp
- Create the Resume Based Profile
- Search for Jobs
- Apply for Jobs
Sprint.4.mp4
https://github.com/anjaligupta0621/EasyConnect/projects
frontend_spec.js.mp4
whatsapp-video-2022-04-21-at-64728-am_UOYOplix.mp4
- A database named "RecruiterDetails" was created using SqlLite.
- A schema named "Recruiter" was created in this database.
type Recruiter struct {
ID uint
Name string
Email string
Password string
Organization string
Website string
Contact string
Jobs []Job
}
- Second Schema named "Jobs" was created in the database.
type Job struct {
JobID uint
Role_Name string
Role_Type string
Type string
Location string
Start_Date string
Posted_Date string
Responsibilities string
Salary_Start string
Salary_End string
Active string
RecruiterID uint
Candidates []Candidate
CandidateCount uint
}
- Third Schema named "Candidate" was created in the database.
type Candidate struct {
UserID uint
Email string
Password string
Contact string
Name string
Jobs []Job
JobsApplied uint
}
- Fourth Schema named "Candidates_Jobs" was created automatically in the database due to many-to-many relationships between Candidate and Job.
type Candidates_Jobs struct {
UserID uint
JobID uint
}
- Fifth Schema named "Candidate_profiles" was created in the database for Candidate profile.
type Candidateprofile struct {
Firstname string
Lastname string
Email string
Phone string
Github string
Linkedin string
Facebook string
Instagram string
Education []College
Project []Project
Professionalexperience []ProfessionalExperience
Skills pq.StringArray
Interests pq.StringArray
}
## Three structs named "College","Project", and "ProfessionalExperience" were created to handle Candidate profile mappings.
type College struct {
College string
Fromyear string
Toyear string
Qualification string
Description string
}
type Project struct {
Title string
Link string
ProjectDescription string
}
type ProfessionalExperience struct {
Company string
Position string
Duration string
ExperienceDescription string
}
## Data Transfer Objects
### Token Manager
* A struct named "TokenManager" was created to handle JWT authentication and provide response tokens for session management.
```yaml
type TokenManager struct {
Token string
UserName string
}
- A struct named "RecruiterResponse" was created to handle session for Recruiter.
type RecruiterResponse struct {
Recruiter Recruiter
Token string
}
- A struct named "CandidateResponse" was created to handle session for Candidate.
type CandidateResponse struct {
Candidate Candidate
Token string
}
In order to successfully authenticate the request you must provide the token to validate the API. We are using the JWT authrntication to authenticate our API.
Queries begin with the same root Url for all the request. Currently using the http client for the request. The exposed endpoints are -
- /check
- /login
- /signup
- /logout
- /refreshAccessToken
- /getJobById
- /postJob
- /candidateSignUp
- /candidateLogin
- /getAllJobs
- /applyForJob
- /getCandidatesByRecruiterId
- /getCandidatesByJobId
- /getCandidatesByRole
- /getCurrentRecruiter
- /updateCandidateProfile
- /getAppliedJobs
- /getCandidateProfile
Send a request to check whether the server is running or not.
- Send a request to authenticate the User. If the user present in the Database then it login successful.
- Requested URL is http://localhost:8081/login
- Example here with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/login
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Json Parameter
{
"Email" : "rec1gupta@ufl.edu",
"Password" : "password"
}
- Returns the recruiter Details and a token in a response which is stored locally to handle the session at the browser side.
{
"Recruiter": {
"ID": 1,
"Name": "Rec1 Gupta",
"Email": "rec1gupta@ufl.edu",
"Password": "$2a$14$T9CdeDqP6LdP0rUx8Yvh8.ryoEaZ6LaI0dHc3QjQ6yr8TG9SG0oTm",
"Organization": "UF",
"Website": "",
"Contact": "9999999991",
"Jobs": [
{
"JobID": 1,
"Role_Name": "Senior Engineer",
"Role_Type": "SDE",
"Type": "Remote",
"Location": "USA",
"Start_Date": "31/08/21",
"Posted_Date": "01/08/21",
"Responsibilities": "Testing job number 4",
"Salary_Start": "90000",
"Salary_End": "150000",
"Active": "False",
"RecruiterID": 1,
"Candidates": null,
"CandidateCount": 1
}
]
},
"Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6InJlYzFndXB0YUB1ZmwuZWR1IiwiZXhwIjoxNjQ4ODkxNzk3fQ.E3UNUVoYXGfuTLzUOh0KNXmgiCVfe0nJhzj6OQ_e5fA"
}
- Send a request to Add the User. If the user present in the Database then returns otherwise add the User in Database.
- Requested URL is http://localhost:8081/signup
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/signUp
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Sign Up Json sample Parameter Demo:
{
"Name": "Rec1 Gupta",
"Email" : "rec1gupta@ufl.edu",
"Password" : "password",
"Organization" : "UF",
"Website" : "",
"Contact" : "9999999991"
}
- Returns the recruiter Details and a token in a response which is stored locally to handle the session at the browser side.
{
"Recruiter": {
"ID": 1,
"Name": "Rec1 Gupta",
"Email": "rec1gupta@ufl.edu",
"Password": "$2a$14$T9CdeDqP6LdP0rUx8Yvh8.ryoEaZ6LaI0dHc3QjQ6yr8TG9SG0oTm",
"Organization": "UF",
"Website": "",
"Contact": "9999999991",
"Jobs": null
},
"Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6InJlYzFndXB0YUB1ZmwuZWR1IiwiZXhwIjoxNjQ4ODkxNDQ1fQ.6SjkP2lLo29QuzS-9Qy3MS9qX3wL5j26unxxI8elXOU"
}
- Send a request to get the list of jobs posted by a recruiter.
- Requested URL is http://localhost:8081/getJobById
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getJobById
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
getAllJobs Json sample Parameter Demo:
getJobs:
{
"Recruiter_ID" : 1
}
- Returns all Jobs of a particular User.
- Return List of Jobs as shown below:
[{"JobID":1,"Role_Name":"Senior Engineer","Role_Type":"SDE","Type":"Remote","Location":"USA","Start_Date":"31/08/21","Posted_Date":"01/08/21","Responsibilities":"Testing job number 4","Salary_Start":"90000","Salary_End":"150000","Active":"False","RecruiterID":1,"Candidates":null,"CandidateCount":0}]
- Send a request to add the Job Posted by recruiter.
- Requested URL is http://localhost:8081/postJob
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/postJob
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
getAllJobs Json sample Parameter Demo:
postJob:
{
"Role_Name" : "Senior Engineer",
"Role_Type" : "SDE",
"Type" : "Remote",
"Location" : "USA",
"Start_Date" : "31/08/21",
"Posted_Date" : "01/08/21",
"Responsibilities" : "Testing job number 4",
"Salary_Start" : "90000",
"Salary_End" : "150000",
"Active" : "False",
"RecruiterID" : 1,
"CandidateCount" : 0
}
- Return A String shown below:
"New Job Successfully Added"
- Send a request to authenticate the JobSeeker. If the jobSeeker present in the Database then it login successful.
- Requested URL is http://localhost:8081/candidateLogin
- Example here with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/login
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Json Parameter
{
"Email" : "candgupta@ufl.edu",
"Password" : "password"
}
- Returns the JobSeeker Details In response along with the token which we use to authenticate the user and session handling.
{
"Candidate": {
"UserID": 1,
"Name": "Cand Gupta",
"Email": "candgupta@ufl.edu",
"Password": "$2a$14$hhoKlCtAUrMsmW0b6J7di.ydFNymLk0R4OgitJSOV9wh0uYEk3mju",
"Username": "candgupta",
"Contact": "3528889007",
"Jobs": null,
"JobsApplied": 1
},
"Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6ImNhbmRndXB0YUB1ZmwuZWR1IiwiZXhwIjoxNjQ4ODkxNTExfQ.RXRxhAvfmnt-XGbsl9jhBiw0CxUcxuhAzzPH68e0Vzc"
}
- Send a request to Add the JobSeeker. If the JobSeeker present in the Database then returns otherwise add the JobSeeker in Database.
- Requested URL is http://localhost:8081/candidateSignUp
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/signUp
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Sign Up Json sample Parameter Demo:
{
"Name": "Cand Gupta",
"Email" : "candgupta@ufl.edu",
"Password" : "password",
"Contact" : "3528889007",
"JobsApplied" : 0
}
- Returns the JobSeeker Details and a token in response to handle JWT and session on browsing side.
- Also returns a string ""New Candidate Successfully Added: " on successful addtion.
{
"Candidate": {
"UserID": 1,
"Name": "Cand Gupta",
"Email": "candgupta@ufl.edu",
"Password": "$2a$14$hhoKlCtAUrMsmW0b6J7di.ydFNymLk0R4OgitJSOV9wh0uYEk3mju",
"Username": "candgupta",
"Contact": "3528889007",
"Jobs": null,
"JobsApplied": 0
},
"Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6ImNhbmRndXB0YUB1ZmwuZWR1IiwiZXhwIjoxNjQ4ODkxNDg0fQ.38c27f3rqN7sUtUhx_M0tiDGEQyHSN4cFq2IKxoSRuM"
}
"New Candidate Successfully Added: Cand Gupta"
- Send a request to logout the recruiter/candidate.
- Requested URL is http://localhost:8081/logout
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/logout
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
getAllJobs Json sample Parameter Demo:
postJob:
{
"Token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6ImNhbmRndXB0YUB1ZmwuZWR1IiwiZXhwIjoxNjQ4ODkxNTExfQ.RXRxhAvfmnt-XGbsl9jhBiw0CxUcxuhAzzPH68e0Vzc",
"User_Name" : "candgupta",
}
- Return A String shown below:
"message: Successfully Logged out!"
- Send a request to get the list of jobs posted by all recruiters (useful for candidate to see all available jobs).
- Requested URL is http://localhost:8081/getAllJobs
- Example (no JSON Parameters need to be passed in body):
Request URL: http://localhost:8081/getAllJobs
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
getAllJobs Json sample Parameter Demo:
getJobs:
- Returns all Jobs.
- Return List of Jobs as shown below:
[{"JobID":1,"Role_Name":"Senior Engineer","Role_Type":"SDE","Type":"Remote","Location":"USA","Start_Date":"31/08/21","Posted_Date":"01/08/21","Responsibilities":"Testing job number 4","Salary_Start":"90000","Salary_End":"150000","Active":"False","RecruiterID":1,"Candidates":null,"CandidateCount":0}]
- Maps a candidate to a job which they are trying to apply to.
- Requested URL is http://localhost:8081/applyForJob
- Example with JSON Parameters need to be passed in body:
Request URL: http://localhost:8081/applyForJob
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
getAllJobs Json sample Parameter Demo:
getJobs:
{
"UserID" : 3,
"JobID" : 1
}
- Returns string "Applied to job".
"Applied to job"
- Send a request to fetch list of Candidates who have applied job posted by a given recruiter.
- Requested URL is http://localhost:8081/getCandidatesByRecruiterId
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getCandidatesByRecruiterId
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Candidates By Recruiter Id Json sample Parameter Demo:
{
"Recruiter_ID":2
}
- Returns the recruiter Details and a token in a response which is stored locally to handle the session at the browser side.
{
"UserID":1,
"Name":"Shanky Singh",
"Email":"shanky11@ufl.edu",
"Password":"$2a$14$sSo2rTV6yur4K4mTrUat3ehaOU.vgDgMhwwSzHLB5JetAXOPQfx3W",
"Username":"shanky11",
"Contact":"2223334443",
"Jobs":null,
"JobsApplied":8
}
- Send a request to fetch Candidates who have applied for a specific Job. If the user present in the Database then returns.
- Requested URL is http://localhost:8081/getCandidatesByJobId
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getCandidatesByJobId
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Candidates By Job ID Json sample Parameter Demo:
{
"Job_ID":2
}
- Returns the Candidate Details matching the requested Job ID.
[{
"UserID":1,
"Name":"Shanky Singh",
"Email":"shanky11@ufl.edu",
"Password":"$2a$14$sSo2rTV6yur4K4mTrUat3ehaOU.vgDgMhwwSzHLB5JetAXOPQfx3W",
"Username":"shanky11",
"Contact":"2223334443",
"Jobs":null,
"JobsApplied":8
}]
- Send a request to fetch Candidates who have applied for the job for a given role.
- Requested URL is http://localhost:8081/getCandidatesByRole
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getCandidatesByRole
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Candidates by Role Json sample Parameter Demo:
{
"Role":"Software Development"
}
- Returns an array of Candidates whose role matches the requested role.
[
{
"UserID": 1,
"Name": "Shanky Singh",
"Email": "shanky11@ufl.edu",
"Password": "$2a$14$sSo2rTV6yur4K4mTrUat3ehaOU.vgDgMhwwSzHLB5JetAXOPQfx3W",
"Username": "shanky11",
"Contact": "2223334443",
"Jobs": null,
"JobsApplied": 8
}
]
- Send a request to fetch current logged-in recruiter. If the user is present in the Database then returns the Recruiter Details.
- Requested URL is http://localhost:8081/getCurrentRecruiter
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getCurrentRecruiter
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Recruiter Details Json sample Parameter Demo:
{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IkZIRXVQY1FrOTBOWHBlQkBlYXN5LWNvbm5lY3QuY29tIiwiZXhwIjoxNjUwMzU0NTYwfQ.Q10kXPdU8WONbom6eKOcu5E2ojRBs-Rih0lbeJnV7kM",
"username":"rec1gupta@ufl.edu"
}
- Returns the current Logged-In recruiter Details.
{
"Recruiter": {
"ID": 1,
"Name": "Rec1 Gupta",
"Email": "rec1gupta@ufl.edu",
"Password": "$2a$14$T9CdeDqP6LdP0rUx8Yvh8.ryoEaZ6LaI0dHc3QjQ6yr8TG9SG0oTm",
"Organization": "UF",
"Website": "",
"Contact": "9999999991",
"Jobs": null
}
}
- Send a request to update current Candidate's Profile. After Successful update in the Database, returns the Candidate Profile.
- Requested URL is http://localhost:8081/updateCandidateProfile
- Example with JSON Parameters which we need to pass in the body:
Request URL: http://localhost:8081/updateCandidateProfile
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Update Candidate Profile Json sample Parameter Demo:
{
"Firstname":"Gaurav",
"Lastname":"Pathak",
"Email":"shanky11@ufl.edu",
"Phone":"2223334446",
"Github":"github.com",
"Linkedin":"linkedin.com",
"Facebook":"facebook.com",
"Instagram":"instagram.com",
"Education":[
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
},
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
}
],
"Project":[
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
},
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
}
],
"Professionalexperience":[
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
},
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
}
],
"Skills":[
"Golang"
],
"Interests":[
"Travel"
]
}
- Returns the updated Candidate Profile Details.
{
"Firstname":"Gaurav",
"Lastname":"Pathak",
"Email":"shanky11@ufl.edu",
"Phone":"2223334446",
"Github":"github.com",
"Linkedin":"linkedin.com",
"Facebook":"facebook.com",
"Instagram":"instagram.com",
"Education":[
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
},
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
}
],
"Project":[
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
},
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
}
],
"Professionalexperience":[
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
},
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
}
],
"Skills":[
"Golang"
],
"Interests":[
"Travel"
]
}
- Send a request to fetch Jobs Applied by Current Candidate, and then returns the an array of Job.
- Requested URL is http://localhost:8081/getAppliedJobs
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getAppliedJobs
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Applied Jobs Details Json sample Parameter Demo:
{
“Email”:”FHEuPcQk90NXpeB@easy-connect.com”
“Token”:”eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IkZIRXVQY1FrOTBOWHBlQkBlYXN5LWNvbm5lY3QuY29tIiwiZXhwIjoxNjUwMzU0NTYwfQ.Q10kXPdU8WONbom6eKOcu5E2ojRBs-Rih0lbeJnV7kM”
}
- Returns the current Candidate's Applied Jobs.
[
{
"JobID":9,
"Organization":"",
"Role_Name":"SDE II",
"Role_Type":"Software Development",
"Type":"Work from home",
"Location":"",
"Start_Date":"Later",
"Posted_Date":"4-17-2022",
"Responsibilities":"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..",
"Salary_Start":"30000",
"Salary_End":"70000",
"Active":"true",
"RecruiterID":1,
"Candidates":null,
"CandidateCount":2
},
{
"JobID":8,
"Organization":"",
"Role_Name":"SDE II",
"Role_Type":"Software Development",
"Type":"Work from home",
"Location":"",
"Start_Date":"Later",
"Posted_Date":"4-17-2022",
"Responsibilities":"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..",
"Salary_Start":"30000",
"Salary_End":"70000",
"Active":"true",
"RecruiterID":1,
"Candidates":null,
"CandidateCount":2
},
{
"JobID":6,
"Organization":"",
"Role_Name":"SDE II",
"Role_Type":"Software Development",
"Type":"Work from home",
"Location":"",
"Start_Date":"Later",
"Posted_Date":"4-17-2022",
"Responsibilities":"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..",
"Salary_Start":"30000",
"Salary_End":"70000",
"Active":"true",
"RecruiterID":0,
"Candidates":null,
"CandidateCount":2
}
]
- Send a request to fetch current logged-in Candidate's Profile. If the Candidate is present in the Database then returns the Candidate Profile.
- Requested URL is http://localhost:8081/getCandidateProfile
- Example with JSON Parameters which we need to pass in body:
Request URL: http://localhost:8081/getCandidateProfile
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:8081
Referrer Policy: strict-origin-when-cross-origin
Candidate Profile Request Json sample Parameter Demo:
{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6ImdhdXJhdkBtYWlsLmNvbSIsImV4cCI6MTY1MDM1Njk1NH0.I5MsKRjdICVCbJno1RvVbTCaQpFma8SS4-HN2krYAew",
"username":"shanky11@ufl.edu"
}
- Returns the current Logged-In Candidate's Profile.
{
"Firstname":"Gaurav",
"Lastname":"Pathak",
"Email":"shanky11@ufl.edu",
"Phone":"2223334446",
"Github":"github.com",
"Linkedin":"linkedin.com",
"Facebook":"facebook.com",
"Instagram":"instagram.com",
"Education":[
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
},
{
"College":"IITK",
"Fromyear":"1990",
"Toyear":"1994",
"Qualification":"Bachelors",
"Description":"BS"
}
],
"Project":[
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
},
{
"Title":"OSW",
"Link":"project.com/",
"ProjectDescription":"Some Idea!"
}
],
"Professionalexperience":[
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
},
{
"Company":"TCS.com",
"Position":"SDE-1",
"Duration":"4 Years",
"ExperienceDescription":"UI"
}
],
"Skills":[
"Golang"
],
"Interests":[
"Travel"
]
}
- We developed all the Rest APi's for login, signUp, postJob, getJobs using the golang.
- Display the jobs on postJob dashboard was done on the basis of the jobs posted by recruiter.
- The server was hosted using mux router and the APIs were configured on this.
- All the Api's were tested using the PostMan tool and Interface were tested using the Gounit test cases.
Created the Unit test cases to check the robustness of our API.
Created a file named "endpoints_test.go" where we have a Unit test cases named "TestGetusers" which check three scenarios:
- Validity of http request.
- Unsuccessful Login attempt with incorrect emailId or password.
- Succcessful login attempt with correct emailId and Password.
Created a file named "endpoints_test.go" where we have a Unit test cases named "TestPutSserData" which check three scenarios:
- Validity of http request.
- Successful addtion of new recruiter.
- Unsuccessful addition of duplicate recruiter.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestAddJob" which check two scenarios:
- Validity of http request.
- Successful addtion of new job.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetJobs" which check two scenarios:
- Validity of http request.
- Successful Fetching of jobs mapped to recruiter Id.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetAllJobs" which check two scenarios:
- Validity of http request.
- Successful Fetching of all jobs.
Created a file named "candidateEndpoints_test.go" where we have a Unit test cases named "TestCandidateLogin" which check three scenarios:
- Validity of http request.
- Unsuccessful Login attempt with incorrect emailId or password.
- Succcessful login attempt with correct emailId and Password.
Created a file named "candidateEndpoints_test.go" where we have a Unit test cases named "TestCandidateSignup" which check three scenarios:
- Validity of http request.
- Successful addtion of new candidate.
- Unsuccessful addition of duplicate candidate.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestApplyForJob" which check two scenarios:
- Validity of http request.
- Successful Applying to jobs.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetCandidatesFromRecruiterID" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Candidates By Recruiter Id.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetCandidatesFromJobID" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Candidates By Job Id.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetCandidatesFromRoleType" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Candidates By Role.
Created a file named "endpoints_test.go" where we have a Unit test cases named "TestGetCurrentUser" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Recruiter By Email/Id.
Created a file named "CandidateEndpoints_test.go" where we have a Unit test cases named "TestCandidateProfileUpdate" which check two scenarios:
- Validity of http request.
- Successful Updation of Candidate Profile.
Created a file named "JobEndpoints_test.go" where we have a Unit test cases named "TestGetAppliedJobs" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Applied Jobs for a Candidate.
Created a file named "CandidateEndpoints_test.go" where we have a Unit test cases named "TestGetCandidateProfile" which check two scenarios:
- Validity of http request.
- Successful Retrieval of Candidate Profiles.
- A Modal will popUp when the recruiter as a user will click on signIn button on Home Page. If the recruiter is not already registered than he can click on signUp button in that Modal. Recruiter can fill their details and submit.User will be registered.
- A Interface is created where Recruiter will add their credentials for Login and he can logOut after completing their work.
- A recruiter can click on the postJob Description where he need to login first and then he redirect to dashboard.
- A recruiter Job Posting dashboard where all the jobs posted by the recruiter will display. He can make changes to the job Posting.
- A layout is created where the recruiter post their jobs.
- Recruiter need to add the organization and job description details in the layout.
- Recruiter add the jobs and jobs displayed on recruiter dashboard.
- A Page is created where the recruiter can take a look of all the candidates who applied for the job posted by him. He can select the candidates according to their skills.
- A Modal will popUp when the JobSeeker as a user will click on signIn button on Home Page. If the JobSeeker is not already registered than he can click on signUp button in that Modal. JobSeeker can fill their details and submit.JobSeeker will be registered.
- A Interface is created where JobSeeker will add their credentials for Login and he can logOut after completing their work.
- A Dropdown is created at both the recruiter and jobseeker homepage where they can switch their view.
- A Dashboard Interface is created where all the jobs posted by recruiter will display and jobseeker can apply to jobs after registration to the platform.
All User Interface pages are scree size responsive. Attaching the various screenshots to validate this.
- Post Job Dashboard Screenshot (Recruiter View)
- Shortlist Candidates Screenshot (Recruiter View)
- JobSeeker View Screenshot
- Applied Jobs Screenshot (JobSeeker View)
- Candidate Profile Screenshots
To check the workflow of project and end to end Integration, we used the automated testing framework Cypress to validate our work.Created the cypress tests cases where we are checking recruiter and Job-seeker components . All Test cases passing correctly.Attached below the screenshot of these components:
- Frontend - ReactJs, HTML, CSS, Bootstrap, AJAX
- Backend - Golang, GORM, GIN
- Databse - SQLite 3
- FrontEnd: Install NodeJS, NPM, React, and React Router DOM
- Backend: Install and Setup Golang, SQlite 3[Mac comes with sqlite3 by default]
- Frontend and Backend Unit Testing.
https://github.com/anjaligupta0621/EasyConnect/projects/4#column-18385023 https://github.com/anjaligupta0621/EasyConnect/blob/main/sprint4.md
- Shashank Kumar- Frontend
- Richa Gupta-Backend
- Anjali Gupta-Frontend
- Gaurav Pathak-Frontend/Backend