Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Main be merge #102

Merged
merged 155 commits into from
Oct 30, 2023
Merged
Show file tree
Hide file tree
Changes from 154 commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
e3715bb
Initial backend commit
krugergui Sep 27, 2023
fca4e01
Added README
krugergui Sep 27, 2023
6e7ac7d
Updated encoding
krugergui Sep 28, 2023
146f34a
Included local DB and VSCode variables
krugergui Sep 28, 2023
abcfca7
Built DJANGO models from DB and initialized example API view
krugergui Sep 29, 2023
73d8113
Dockerfile configurations
krugergui Sep 29, 2023
174889a
Updated enviroment variables
krugergui Sep 29, 2023
b9b5e1e
Updated docker image to use alpine distro
krugergui Sep 30, 2023
e39563b
Separated between Docker and .env requirements
krugergui Sep 30, 2023
5ff344c
Optimized layers for faster deployment
krugergui Oct 2, 2023
da915e5
Added login endpoint and removed restrictions for writing to DB
krugergui Oct 2, 2023
a6e0e0f
Added signup endpoint and updates users view
krugergui Oct 3, 2023
5797381
Added test to upload files to GCP
krugergui Oct 4, 2023
3994ca9
Removed migrations folder
krugergui Oct 4, 2023
e4f75c4
Added files test along with images
krugergui Oct 4, 2023
2618dd3
Updated with CORS
krugergui Oct 4, 2023
9839bfd
Implemented Gunicorn
krugergui Oct 5, 2023
39113ac
Merge pull request #1 from WomenPlusPlus/backend
krugergui Oct 5, 2023
c1fc903
GitHub actions (#24)
golubevtanya Oct 5, 2023
df454ef
Reverted back to normal user
krugergui Oct 5, 2023
e2a3cee
Updated encoding, should work with black now
krugergui Oct 5, 2023
8f6058a
Rebuilt models according to new specifications, corrected response codes
krugergui Oct 6, 2023
c480232
Added recover/logout enpoints. Added POST only pages to api root view
krugergui Oct 8, 2023
65914da
Added invite endpoint
krugergui Oct 9, 2023
5846df7
Users can only be signed up with a valid token and email
krugergui Oct 9, 2023
067f58a
Added DRF-Swagger @Endpoint /api/docs/
krugergui Oct 10, 2023
20fe2e6
User refresh_token is used to get a new access_token when the access_…
krugergui Oct 10, 2023
7f66c0d
Backend (#35)
krugergui Oct 11, 2023
e06e7bf
Added many endpoints. Altered models to fit Supabase UUID. Implemente…
krugergui Oct 12, 2023
5022ab6
Added Soft Skills endpoint
krugergui Oct 12, 2023
a8306fd
Modified return token for the respective table id instead of supabase id
krugergui Oct 12, 2023
73eb07b
Added swagger as default page
krugergui Oct 12, 2023
bbd43e1
Added personalities and values endpoints
krugergui Oct 12, 2023
ba3ed03
Merge branch 'dev' into backend
krugergui Oct 12, 2023
6449523
Backend (#37)
krugergui Oct 12, 2023
b61ca12
Added restriction for company domains.
krugergui Oct 12, 2023
61a72c4
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 12, 2023
0bf7ae1
Merge branch 'dev' into backend
krugergui Oct 12, 2023
184ec9c
Smaill corrections
krugergui Oct 13, 2023
fa9528b
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 13, 2023
9593b1f
Refresh token is now sent to FE
krugergui Oct 16, 2023
ddc6f50
Refresh token is now sent to FE
krugergui Oct 16, 2023
d530599
Updated CORS headers for deployed app
krugergui Oct 18, 2023
c71de01
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 18, 2023
a40dd18
Remodeled according to Patricia's sheet.
krugergui Oct 22, 2023
d04ffbe
Backend-gh-actions-deploy#45
krugergui Oct 22, 2023
8694e4f
Deploy-trigger
krugergui Oct 22, 2023
d05474d
Added migrations
krugergui Oct 23, 2023
d222148
Update actions to only run on specific tags
krugergui Oct 23, 2023
78edc9f
GH Actions deploy only on specific tag
krugergui Oct 23, 2023
82c04c0
Test-deploy
krugergui Oct 23, 2023
cab60eb
Test-deploy
krugergui Oct 23, 2023
fb69d80
Changed action name
krugergui Oct 23, 2023
a1e47ec
companies-jobs-endpoints-deploy
krugergui Oct 23, 2023
f5eecb1
matching-algorithm-soft-hard-skills-deploy
krugergui Oct 24, 2023
a939347
Altered return values for token according to SHIFT-290
krugergui Oct 24, 2023
632f933
a939347-deploy
krugergui Oct 24, 2023
a281a31
fixed-swagger-ui-deploy
krugergui Oct 24, 2023
b9b9f2f
fixed-company-return-login-deploy
krugergui Oct 24, 2023
1512b64
resolved-SHIFT-259-deploy
krugergui Oct 24, 2023
3fbef3d
Grouped Docs
krugergui Oct 24, 2023
ca32e2d
Added jobs listings per company endpoint
krugergui Oct 24, 2023
f33608b
2f7d5ee-deploy
krugergui Oct 24, 2023
1dbc442
Added matches to the company jobs view
krugergui Oct 24, 2023
e8f5f3f
1dbc442-deploy
krugergui Oct 24, 2023
f7a80b8
Fixed return array for candidates in matches and return for hard and …
krugergui Oct 24, 2023
1765cb3
f7a80b8-deploy
krugergui Oct 24, 2023
83a70ca
Added list of matched jobs when calling a candidate by ID
krugergui Oct 24, 2023
5c67c5c
83a70ca-deploy
krugergui Oct 24, 2023
609bae9
from_alpine_to_debian_container-deploy
golubevtanya Oct 25, 2023
bce76e3
Debian_docker-deploy
golubevtanya Oct 25, 2023
480213c
Debian_docker-deploy
golubevtanya Oct 25, 2023
52ad683
New fields for embeddeds and update on save
krugergui Oct 25, 2023
eda0e0e
New fields for embeddeds and update on save (#59)
krugergui Oct 25, 2023
1aae6ff
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 25, 2023
84a429c
update display of skills in serialiazer when saving candidate with list
krugergui Oct 25, 2023
a4bf7ef
Jobs and Cadidates now accept a Send-Matches header (#60) -deploy
krugergui Oct 25, 2023
b5b9fb7
Changed the return of the matches to be conditional to the Hide-Match…
krugergui Oct 25, 2023
dd4fe47
Changed command to hide Hide-Matches to Show matches
krugergui Oct 25, 2023
993f241
Backend matchs conditional (#63)-deploy
krugergui Oct 25, 2023
9a400b9
Countries now return the name instead of ID in jobs-deploy
krugergui Oct 25, 2023
6433318
Added embedded matching algorithm files and in function
krugergui Oct 25, 2023
dc7c83c
Added tokenization function to models
krugergui Oct 26, 2023
7be3141
Removed Put from the available methods
krugergui Oct 26, 2023
88d18b9
Tockens matching and Skills extractor (#68)
golubevtanya Oct 26, 2023
b52a110
Rectoring
krugergui Oct 26, 2023
dbbdfc8
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 26, 2023
7f9266a
skils_extractor (#69)
golubevtanya Oct 26, 2023
74c6154
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 26, 2023
ea14dad
Added matching algorithm and concatenated aboutme and experience from…
krugergui Oct 26, 2023
dbe0bac
Update serializers with free text matching score
krugergui Oct 26, 2023
684ad0b
dbe0bac-deploy
krugergui Oct 26, 2023
266f6f4
Added skill extractor and saving to DB, restricted matches return on …
krugergui Oct 26, 2023
68b3e82
Refactored files, removed duplicates and replaced classes on wrong files
krugergui Oct 27, 2023
25f1a33
68b3e825deec06c33ee55b18da44c04cb6c02344-deploy
krugergui Oct 27, 2023
d040764
Added authorization services
krugergui Oct 27, 2023
ee47cfe
Added authorization services (#73)
krugergui Oct 27, 2023
dadfa19
Fixed Jobs viewset
krugergui Oct 27, 2023
f21b859
Backend fix jobs viewset (#74)
krugergui Oct 27, 2023
a1bb6cb
Added autentication files
krugergui Oct 27, 2023
a7aefbc
Backend authentification files (#75)
krugergui Oct 27, 2023
6052400
Updated README and small refactoring
krugergui Oct 27, 2023
ad0f1b8
Backend readme (#76)
krugergui Oct 27, 2023
726dea7
Changed jobs returns
krugergui Oct 27, 2023
b0156c9
726dea7-deploy
krugergui Oct 27, 2023
ebf2be8
Resolved conflicts
krugergui Oct 27, 2023
3a62ea0
ad0f1b8-ebf2be8-deploy
krugergui Oct 27, 2023
2b93ae8
Disabled authentication for Candidates view
krugergui Oct 27, 2023
efcd27f
2b93ae8-deploy
krugergui Oct 27, 2023
72326f3
Notebooks parsing (#80)
golubevtanya Oct 27, 2023
9b330dc
Added tests for the pairwise mathcing algorithm and folders restructu…
golubevtanya Oct 28, 2023
f709db7
temp
krugergui Oct 29, 2023
a5949b8
temp_BSOD
krugergui Oct 29, 2023
6d6f29e
Update all models and serializers as dicussed with Janice and Tanya
krugergui Oct 29, 2023
ec71c14
a5949b8-deploy
krugergui Oct 29, 2023
bbb1832
updated dockerfile -deploy
krugergui Oct 29, 2023
25f0f2d
Update build-and-deploy-backend.yaml
krugergui Oct 29, 2023
8c69f19
Update build-and-deploy-backend.yaml
krugergui Oct 29, 2023
578b096
Update build-and-deploy-backend.yaml
krugergui Oct 29, 2023
eda3d81
Update build-and-deploy-backend.yaml
krugergui Oct 29, 2023
a4fde09
Update build-and-deploy-backend.yaml
krugergui Oct 29, 2023
b812780
Fixed login and other single views
krugergui Oct 29, 2023
b64b7e7
Saving embeddings as array for easier loading
krugergui Oct 29, 2023
90f7be4
Saving embeddings as array for easier loading (#97) -deploy
krugergui Oct 29, 2023
09c5fd6
Removed debug statements
krugergui Oct 29, 2023
08263f5
09c5fd6-deploy
krugergui Oct 29, 2023
34cc4da
backend merge
krugergui Oct 29, 2023
f74e206
ready to merge backend
krugergui Oct 29, 2023
e861542
Added tests
krugergui Oct 30, 2023
fd8e732
Updated backend part of the README
krugergui Oct 30, 2023
9d5ff1d
Merge branch 'main' into backend
krugergui Oct 30, 2023
0b0b899
Removed duplicates from matches return-deploy
krugergui Oct 30, 2023
b318513
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 30, 2023
fa37978
Added fields to match return for jobs
krugergui Oct 30, 2023
c16afe4
fa37978-deploy
krugergui Oct 30, 2023
ddc662a
updated settings location
krugergui Oct 30, 2023
c7ef47b
updates testings
krugergui Oct 30, 2023
831ff00
Updates testings
krugergui Oct 30, 2023
cf90846
updates django tests
krugergui Oct 30, 2023
465abaf
Updated return fields for matches
krugergui Oct 30, 2023
258bfcb
465abaf-deploy
krugergui Oct 30, 2023
fe6e22a
updated test to find more files
krugergui Oct 30, 2023
d2d7e9f
updated test to find more files
krugergui Oct 30, 2023
b0082e6
updated tests with env variables
krugergui Oct 30, 2023
315c315
fixed return work model
krugergui Oct 30, 2023
b2e2344
315c315-deploy
krugergui Oct 30, 2023
a13d8c0
changed pytest
krugergui Oct 30, 2023
5865b99
restructured files
krugergui Oct 30, 2023
90ff6c5
restructured files
krugergui Oct 30, 2023
7bff100
restructured files
krugergui Oct 30, 2023
744fbc1
Merge branch 'backend' of https://github.com/WomenPlusPlus/deploy-imp…
krugergui Oct 30, 2023
6e25247
restructured files
krugergui Oct 30, 2023
72d2a94
empty
krugergui Oct 30, 2023
80d6142
Merge branch 'main' of https://github.com/WomenPlusPlus/deploy-impact…
krugergui Oct 30, 2023
55b58d1
removed django tests
krugergui Oct 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/req_lint_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ jobs:
version: "~= 22.0"

- name: Test with pytest
working-directory: tests/
run: |
pytest

46 changes: 28 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login)
- [Tech Stack](#tech-stack)
- [Files Structure](#files-structure)
- [Frontend](#frontend)
- [Resources](#resources)
- [How to Use](#how-to-use)
- [Testing](#testing)
- [Deployment](#deployment)
Expand All @@ -27,13 +28,13 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login)
- [Flow Steps](#flow-steps)
- [Candidate User Flow](#candidate-user-flow)
- [Flow Steps](#flow-steps-1)
- [UI/UX](#uiux)
- [Overview](#overview)
- [How to Use](#how-to-use-1)
- [Prototype Structure](#prototype-structure)
- [Key Features](#key-features)
- [Contact Information](#contact-information)
- [Licensing](#licensing)
- [UI/UX](#uiux)
- [Overview](#overview)
- [How to Use](#how-to-use-1)
- [Prototype Structure](#prototype-structure)
- [Key Features](#key-features)
- [Contact Information](#contact-information)
- [Licensing](#licensing)
- [Backend API](#backend-api)
- [Flowchart of the website](#flowchart-of-the-website)
- [Tech stack](#tech-stack-1)
Expand All @@ -47,9 +48,9 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login)
- [Features](#features)
- [Data Science](#data-science)
- [Data Processing Notebooks](#data-processing-notebooks)
- [Roadmap](#roadmap)
- [Cooperation](#cooperation)
- [Resources](#resources)
- [Roadmap](#roadmap)
- [Resources](#resources-1)

# Problem Statement

Expand Down Expand Up @@ -284,21 +285,19 @@ This flow ensures that candidates can manage their profiles, explore job opportu

# UI/UX


### Overview

This Figma Prototype is designed to showcase the flows that have been designed. You will see the high fidelity mockups, the primary functions of the flow, and future flows for implementation.


### How to Use

1. **Access the Prototype**:

You can interact with the prototype at the following link: [Figma](https://www.figma.com/proto/qzRo0T1FIRIp2FkBZtXKey/SHIFT-UI?page-id=0%3A1&type=design&node-id=65-514&viewport=817%2C-4082%2C0.16&t=vVdNABqel4mhStHB-1&scaling=min-zoom&starting-point-node-id=65%3A514&show-proto-sidebar=1&mode=design)

3. **Navigate Through the Prototype**:
You have a left bar and a top bar.

You have a left bar and a top bar.
The left bar will help you to move through each designed flow. They are organized by:

- A. Login
Expand All @@ -313,8 +312,9 @@ The left bar will help you to move through each designed flow. They are organize
2.3 If you want to go back again and restart the whole flow, press “R”.

3. **Feedback and Comments**:
- You must be logged in to Figma to comment.
- By typing or pressing “C” you can comment on anything you want to highlight or give us feedback.

- You must be logged in to Figma to comment.
- By typing or pressing “C” you can comment on anything you want to highlight or give us feedback.
- The comments will remain in the file unless you click "Resolve" in the right bar that appears after you add a comment.

3. **Feedback and Comments**:
Expand Down Expand Up @@ -492,6 +492,7 @@ The following logical steps are used to clean the datasets:
- Reorganize the columns (rename, drop ones not to be uploaded to the database, reset the index)

# Cooperation

At the outset of our project, we adopted JIRA as our task organization and project management tool. While initially, some team members might have been unfamiliar with how to utilize it to its full potential, we steadily improved our understanding and usage of JIRA with each sprint. It wasn't until the last two sprints that we truly realized its power in helping us coordinate the work of all team members. JIRA played a pivotal role in enhancing our collaboration, efficiency, and overall project organization

# Roadmap
Expand All @@ -510,8 +511,17 @@ Datasets used for populating the Database : [Kaggle Resume Dataset](https://www.

Miro : [Team retrospective and brainstorming board](https://miro.com/app/board/uXjVMkJzhAg=/)

<style>
img[src*='#center']
{
display: block;
margin: auto;
width:500px;
height:400px;
}
</style>

JIRA: [Sprint reports](https://deployimpact2023-shift.atlassian.net/jira/software/projects/SHIFT/boards/1/reports/burnup)
[Backlog](https://deployimpact2023-shift.atlassian.net/jira/software/projects/SHIFT/boards/1/backlog)

<div style="text-align:center;"><img src="https://raw.githubusercontent.com/patw47/deploy-impact-23-shift-3/main/assets/shift%20enter.png" alt="Shift Enter"></div>

2 changes: 1 addition & 1 deletion requirements_git_actions.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
black==23.9.1
black[jupyter]
pytest==7.4.3
pytest==7.4.3
2 changes: 0 additions & 2 deletions src/backend/api/matching_algorithm.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from typing import List
import torch
from sklearn.metrics.pairwise import cosine_similarity
from api.models import Jobs, Candidates


def get_free_text_match(
job_embeddings: List[List],
Expand Down
2 changes: 1 addition & 1 deletion src/backend/api/serializer_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def generate_match_output(match_percentages: dict, instance: Candidates | Jobs)
if not is_job:
curr_match["job_title"] = match.job_title
curr_match["job_type"] = match.job_type
curr_match["work_model"] = match.job_title
curr_match["work_model"] = match.work_model.__str__()
curr_match["start_date"] = match.start_date
curr_match["job_description"] = match.job_description
else:
Expand Down
2 changes: 0 additions & 2 deletions src/backend/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,6 @@ def get_matches(self, instance):





class InvitationSerializer(serializers.HyperlinkedModelSerializer):
association = AssociationsSerializer()

Expand Down
12 changes: 12 additions & 0 deletions src/notebooks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## deploy-impact-23-shift-3 notebooks

This folder contains the code that was used for parsing the datasets with job descriptions and candidates' profiles.

One can download the dataset for candidates from [here](https://www.kaggle.com/datasets/heet9022/linkedin-dataset) and the dataset with jobs from [here](https://www.kaggle.com/datasets/andresionek/data-jobs-listings-glassdoor) and add the path to the datasets to the respective .yml files.

The following logical steps are used to clean the datasets:
* filter tech-related, Swiss-based, entry-level items
* for job descriptions: use only descriptions written in English using [langid](https://github.com/saffsd/langid.py) package
* extract soft and hard skills using [SkillNer](https://skillner.vercel.app/)
* extract languages using [language ISO list](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
* reorganize the columns (rename, drop ones not to be uploaded to the database, reset the index)
34 changes: 34 additions & 0 deletions src/notebooks/cand_parsing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
TABLE_PATH: ""
LANGUAGE_PATH: "languages.csv"

SWISS_LOCATION:
- 'CH'
- 'SWITZERLANDS'

COLS:
'Name': 'name'
'Experience': 'experience'
'description': 'about_me'
'category': 'industry'

TECH_KEYWORDS:
- 'computer'
- 'recognition'
- 'nlp'
- 'developer'
- 'data'
- 'information'
- 'software'
- 'database'
- 'programming'
- 'ai'
- 'ml'
- 'application'
- 'frontend'
- 'backend'

SENIOR_KEYWORDS:
- 'senior'
- 'lead'
- 'head'
- 'partner'
38 changes: 38 additions & 0 deletions src/notebooks/jobs_parsing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
TABLE_PATH: ""
LANGUAGE_PATH: "languages.csv"

SWISS_LOCATION:
- 'CH'
- 'SWITZERLANDS'

COLS:
'header.jobTitle': 'job_title'
'header.employerName': 'employer_name'
'header.location': 'location_city'
'job.description': 'job_description'
'map.country': 'location_country'
'overview.industry': 'industry'
'overview.mission': 'values'
'overview.website': 'website'

TECH_KEYWORDS:
- 'computer'
- 'recognition'
- 'nlp'
- 'developer'
- 'data'
- 'information'
- 'software'
- 'database'
- 'programming'
- 'ai'
- 'ml'
- 'application'
- 'frontend'
- 'backend'

SENIOR_KEYWORDS:
- 'senior'
- 'lead'
- 'head'
- 'partner'
Loading