This application facilitates job searching relevant to specific domains or areas of interest. Different components can be created under src
, which serves as the root folder. These components include program code for API calls, posting job details, and error handling for incorrect entries.
- Filter Option: Allows users to find the required job efficiently.
- User Data Management: Handles user-related data.
- Company Data Management: Handles company-related data.
- Job Applications: Manages job applications.
Field | Type | Constraints |
---|---|---|
firstName |
String | Required |
lastName |
String | Required |
username |
String | Derived from firstName + lastName |
email |
String | Unique, Required |
password |
String | Required |
recoveryEmail |
String | Optional |
DOB |
Date | Required, Format: YYYY-MM-DD |
mobileNumber |
String | Unique, Required |
role |
String | Required, Enum: User, Company_HR |
status |
String | Required, Enum: online, offline |
Field | Type | Constraints |
---|---|---|
companyName |
String | Unique, Required |
description |
String | Required |
industry |
String | Required |
address |
String | |
numberOfEmployees |
String | Required, Range: e.g., 11-20 employees |
companyEmail |
String | Unique, Required |
companyHR |
ObjectId | Required, Reference: User Collection |
Field | Type | Constraints |
---|---|---|
jobTitle |
String | Required |
jobLocation |
String | Required, Enum: onsite, remotely, hybrid |
workingTime |
String | Required, Enum: part-time, full-time |
seniorityLevel |
String | Required, Enum: Junior, Mid-Level, Senior, Team-Lead, CTO |
jobDescription |
String | Required |
technicalSkills |
Array | Required |
softSkills |
Array | Required |
addedBy |
ObjectId | Required, Reference: User Collection |
Field | Type | Constraints |
---|---|---|
jobId |
ObjectId | Required, Reference: Job Collection |
userId |
ObjectId | Required, Reference: User Collection |
userTechSkills |
Array | Required |
userSoftSkills |
Array | Required |
userResume |
String | Required, PDF uploaded locally |
- Sign Up
- Sign In
- Sign in using email, recovery email, or mobile number and password.
- Update status to online after sign-in.
- Update Account
- Update email, mobile number, recovery email, DOB, last name, or first name.
- Ensure no conflicts with existing data.
- User must be logged in.
- Delete Account
- Only the account owner can delete their data.
- User must be logged in.
- Get User Account Data
- Only the account owner can retrieve their data.
- User must be logged in.
- Get Profile Data for Another User
- Send the userId in params or query.
- Update Password
- Forget Password
- Ensure data security, especially for OTP and new password.
- Get All Accounts Associated with a Specific Recovery Email
- Add Company
- Authorization required (role: Company_HR).
- Update Company Data
- Only the company owner can update data.
- Authorization required (role: Company_HR).
- Delete Company Data
- Only the company owner can delete data.
- Authorization required (role: Company_HR).
- Get Company Data
- Send the companyId in params to get desired company data.
- Return all jobs related to this company.
- Authorization required (role: Company_HR).
- Search for a Company by Name
- Authorization required (role: Company_HR and User).
- Get All Applications for a Specific Job
- Company owner can view applications for their jobs only.
- Return each application with user data, not userId.
- Authorization required (role: Company_HR).
- Add Job
- Authorization required (role: Company_HR).
- Update Job
- Authorization required (role: Company_HR).
- Delete Job
- Authorization required (role: Company_HR).
- Get All Jobs with Company Information
- Authorization required (role: User, Company_HR).
- Get All Jobs for a Specific Company
- Authorization required (role: User, Company_HR).
- Send the company name in query to get jobs.
- Get All Jobs Matching Filters
- Filter by working time, job location, seniority level, job title, and technical skills.
- Authorization required (role: User, Company_HR).
- Apply to Job
- Add a new document in the application collection with new data.
- Authorization required (role: User).
Add an endpoint that collects the applications for a specific company on a specific day and creates an Excel sheet with this data.