Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
joseangelcrn committed Jun 2, 2024
2 parents e971e5d + 10242d7 commit 035cbba
Show file tree
Hide file tree
Showing 29 changed files with 1,422 additions and 198 deletions.
138 changes: 126 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,28 @@ An application with two main roles ( **Recruiter** and **Employee** ) where you
### **Recruiter**

- [x] You can create offers
- [ ] You can close your offers
- [ ] See how many employees have applied to the offer
- [ ] Change status of candidatures for employees who are applied in your own offers
- [x] You can close your offers
- [x] See how many employees have applied to the offer
- [x] Change status of candidatures for employees who has applied in your own offers
- [x] You can attach questions to job application. It will be displayed to employees once they will applicate job.


### **Employee**

- [x] You can apply offers
- [x] See your candidatures status
- [ ] You can create a dynamic CV who recruiters will be able to see to get more information about your professional profile
- [x] You can see an history of your candidatures.
- [ ] You can create a dynamic CV who recruiters will be able to see to get more information of your professional profile
- [ ] You can search jobs filtering by different fields

### **Infrastructure**

- [ ] Queue Service to manage notifications when Recruiters changes candidatures statuses of Employees. (RabbitMQ, Kafka... )

### **Others**

- [ ] Improve filters of Job Finder

<hr>

Expand Down Expand Up @@ -56,21 +66,125 @@ npm run serve

![login](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/57437325-0f2c-40d3-9845-5fca8e85c56b)

### My profile ( as employee )
### Sign Up

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/1e9ba965-4736-474c-bad0-c0357a7825ad)


## As Recruiter you can ....

### Access to different entries

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/2e4f7ea4-5a54-478c-a20f-d70d5e38a918)


### Access to your home view with basic information

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/9ce18c10-5699-482b-854f-d4f7a5f8c88f)

### Access to Job Finder, where you can see current active Jobs of different Recruiters

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/f78da44e-d070-4f25-bb60-c544caa041e5)


### Create a Job Offer

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/186edf0f-e631-46ed-9480-4529a4a8ea82)

You can insert Tags to be easily found by employees

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/4b2d41d7-fefd-47b1-8a35-594898790ba0)

Creating questions which employees will be able to respond when they apply the job :

There are two question types:

Free Question:

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/83dbac4f-3bab-4fba-86fc-288b255c864f)

Options Question:

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/a71280b7-c28a-4432-a3eb-1269a23486bc)

Once saved , it is not stored in database until you save/update your whole Job. Meanwhile is cached.

Temporary store and saved (db) questions are displayed with a tab system component :

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/6e225120-4e1f-4af0-92b7-186b544317ea)

### Manage your Jobs

If you access one of your jobs :

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/bbdfa7ed-6d35-4c7d-adce-f54d4d91c18f)

It will appear a **Additional Information** button :

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/c797eb6f-bf3c-4e88-9edb-b016a06ba01e)

Where you will be able to manage everything related with your job by different tabs:

## Main Info Tab

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/21635079-d4ac-44d3-ac3c-34d726e6d9aa)

You can active or deactive your own jobs.
In addition, you can see charts with information about your Job, such as : Professional Profiles of employees who applied your Job, or different candidature statuses.
Also you can select single or multiple candidatures and change status of it :

## Candidatures Tab

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/2f9d5643-7dd1-46ac-b93b-208d8abee224)

Here you can manage candidature statuses by changing singe or multiple candidatures:

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/7e7d6e54-183f-49ce-a8a9-f2d17519274a)

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/06c0bcfd-39a3-4112-9ad7-d12d8efc09d2)

Also you can see differents answers has been made by employees about Job Offer:

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/24575f4e-1c48-4914-be60-b8a66e05c21b)



## As Employee you can ....

### Access to different entries

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/2466545f-cea8-48ac-9738-23a30da36b36)

### Access to your home view with basic information

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/650a4b1e-c95b-4c88-91d1-69f8dc79b970)


Here you will find basic information and number of candidatures you are applied


### Access to Job Finder

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/1498648b-1223-4c03-b29c-b655943f8b81)

Where you will be able to find jobs which apply.

### Access to Job Details

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/22cb01be-fecb-4ea0-833e-ac2ef939cc9b)
![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/c47403b2-79cc-4fcf-9ef3-f8d186f5e029)

Here you will find job information and you will be able to apply job. This action will create a candidature.

### My Jobs ( as employee )

![my_jobs](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/779a4ba6-06bf-48f1-a918-577d25171281)
### Access to Candidature timeline

![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/997e1e5e-e933-4bd8-9def-12a76c26814a)

### Search Jobs ( as employee )
Once you apply Job, you will see current status of your candidature. Every change Recruiter do about your candidature will be displayed here

![search_jobs](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/5cd22adb-0018-4cd4-86e9-fa83796565c5)

### Access to 'My Candidatures' section

### Offer a Job ( as recruiter )
![image](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/2c5e2546-4b64-4e26-a6e4-60ad555c9a62)

![offer_jobs](https://github.com/joseangelcrn/InfoJovs_front/assets/47973568/93e93f3c-3cc7-4ae1-8c60-a8f70e84b3c6)
On this view, it will be displayed all of your candidatures and it statuses
2 changes: 1 addition & 1 deletion src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ export default {
mounted: function () {
//Resolve title:
this.$common.setTitle();
// console.log('process.env en app.vue = ',process.env)
//Example how work custom modal =>
// this.manageModal({
// title:'Titulo',
Expand Down
49 changes: 29 additions & 20 deletions src/Utils/Common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,23 @@ import router from "@/router";
import store from "@/store";

const setTitle = (paramTitle = null) => {
let text = "";

if (!paramTitle) {
let routes = router.options.routes;
let currentPath = window.location.pathname;

let matchedRoute = routes.filter((item) => {
return item.path === currentPath;
})[0];

if (typeof matchedRoute !== "undefined") {
text = capitalizeFirstLetter(matchedRoute.name);
}
} else {
text = paramTitle;
}

store.commit("general/setTitle", text);
document.title = process.env.VUE_APP_NAME + " - " + text;
const title = router.history.current.meta.title ?? null;
store.commit("general/setTitle", title);
document.title = process.env.VUE_APP_NAME + " - " + title;
};

const capitalizeFirstLetter = (string) => {
return string.charAt(0).toUpperCase() + string.slice(1);
};

const pluck = (arr, key) => arr.map((i) => i[key]);
const pluck = (arr, key) => {
if (!Array.isArray(arr)) {
const json = arr;
arr =[]
arr.push(json);
}
return arr.map((i) => i[key])
};

const ucfirst = (string) => {
return capitalizeFirstLetter(string);
Expand Down Expand Up @@ -56,11 +47,29 @@ const getStatusColor = (statusId, vuetifyClasses = true) => {
}
};

const deepClone = (data)=>{
return JSON.parse(JSON.stringify(data))
}

const prepareQuestions = (data)=>{

let questions = data;

questions.map((item)=>{
if (item.type === 'options' && typeof item.value !== 'undefined'){
item.value = parseInt(item.value);
}
})

return questions;
}
export default {
setTitle,
capitalizeFirstLetter,
pluck,
ucfirst,
hasRole,
getStatusColor,
deepClone,
prepareQuestions
};
3 changes: 3 additions & 0 deletions src/assets/styles/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/*
GLOBAL CSS
*/
Loading

0 comments on commit 035cbba

Please sign in to comment.