Skip to content

Capstone Project Bangkit 2021 - Mobile Application

License

Notifications You must be signed in to change notification settings

RobbyAkbar/JobFlex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

One-Stop Mobile Job Searching Platform

Google Bangkit Capstone Project 2021 - CAP0139 - Exwara
Explore the docs »

View Demo · Download APK · Report Issues

Team Members

  • Rama Febriansyah - A2001981
  • Robby Akbar - A2992725
  • Kevin Marhan Cunis - C0020087
  • Rully Nurul Hasanah - C2992709
  • Rafif Rahman Darmawan - M0020073
  • Cynthia Evani - M0020081
Table of Contents
  1. Background
  2. Core Values
  3. Application Preview
  4. Deployment Steps

For Android App Development commit history, please kindly check the master branch.

Background

In August 2020, Badan Pusat Statistik (BPS) stated that the level of unemployment in Jakarta is 10.95%, the highest out of all provinces in Indonesia. How can technology help reduce the labor immobility causing high frictional unemployment level in Jakarta, which occurs when a person is searching for or transitioning to a new job but can’t find the related information? Overabundance of job searching platforms makes job seeking difficult for on-the-go job seekers. A good company and employee fit will increase productivity in the capital city, therefore contributing a significant amount in stabilizing or improving Indonesia’s economy.

Core Values

  1. One for All - We unite job information from various sources into one-single platform (for this MVP we still use internal database).
  2. Recommendation System Based on Profile - Fresh graduates or new workers who enters workforces will be able to get job recommendations based on their profiles/resumes.
  3. Recommendation System Based on Job Features - Workers who are looking for new jobs will be able to get job recommendations based on similar jobs they are interested in or have applied in the past (still ongoing).
  4. Recommendation System Based on Similar Users - We will also cluster people who have similar interests and backgrounds, thus giving recommendations back to people from the same group (still ongoing).

Application Preview

These are a few screenshots of the working application. To see the demo video, click on this link.

login registration main profile
Login Page Registration Page Main Dashboard Profile Page
upload search details
Upload CV Search Results Job Details

Deployment Steps

Assuming you have configured your GCP Project, here are the steps of deploying this integration of ML to the cloud.

  1. Create a storage bucket for storing user's resumes (in .pdf format). In this example we will be using job-flex-storage as the bucket.
  2. Create a dataset in Big Query under your project. In this example we will be using jobsData as the dataset.
  3. Import your job database to the dataset. In this example we will be using jobs.tsv that can be downloaded from this link
  4. Setup Firebase to your GCP Project, and follow the steps provided to setup Firebase Authentication.
  5. Create a compute engine instance. The type should be at least n1-standard-1.
  6. SSH into the VM instance you've just created. In the SSH terminal, clone this repository.
    git clone https://github.com/RobbyAkbar/JobFlex.git
    Make sure to install pip by running these scripts.
    sudo apt-get update
    sudo apt-get install python3-pip -y
    After pip installed, run these scripts to install all the dependency needed.
    pip3 install google-cloud-bigquery
    pip3 install google-cloud-storage
    pip3 install Flask
    pip3 install tensorflow
    pip3 install keras
    pip3 install pandas
    pip3 install scikit-learn
    Move the working directory to cloud_integration and edit the integration.py file.
    cd cloud_integration
    nano integration.py
    Inside the file, edit line 37 to match your bucket name, and edit FROM toQuery in line 46 and query_job in line 62 to match your dataset
    ...
    bucketName="<YOUR_BUCKET_NAME>"
    .
    .
    .
    toQuery = "SELECT * from `<YOUR_PROJECT>.<YOUR_DATASET>.<YOUR TABLE>` where lower(Title) LIKE '%"+jobNameList[0].lower()+"%'"
    .
    .
    .
    query_job = client.query(
        '''
        SELECT
            JSON_EXTRACT_SCALAR(h,'$.JobID') as JobID,
            JSON_EXTRACT_SCALAR(h,'$.WindowID') as WindowID,
            JSON_EXTRACT_SCALAR(h,'$.Title') as Title,
            JSON_EXTRACT_SCALAR(h,'$.Description') as Description,
            JSON_EXTRACT_SCALAR(h,'$.Requirements') as Requirements,
            JSON_EXTRACT_SCALAR(h,'$.City') as City,
            JSON_EXTRACT_SCALAR(h,'$.State') as State,
            JSON_EXTRACT_SCALAR(h,'$.Country') as Country,
            JSON_EXTRACT_SCALAR(h,'$.Zip5') as Zip5,
            JSON_EXTRACT_SCALAR(h,'$.StartDate') as StartDate,
            JSON_EXTRACT_SCALAR(h,'$.EndDate') as EndDate
        FROM `<YOUR_PROJECT>.<YOUR_DATASET>.<YOUR TABLE>`
        LEFT join unnest(json_extract_array(recommendation)) as h
        '''+'WHERE id LIKE "'+id+'"'
    )
    Save and exit from the file by entering CTRL+X, Y, ENTER. Make sure you grant permission for executing the file.
    sudo chmod +x integration.py
    You're ready to run! To run the program in background while maintaining the output, we will use nohup. The output should be redirected to your desired file (in this example we will use integrationOut.log).
    nohup ./integration.py > integrationOut.log &
  7. Make sure you create firewall rule for the default network at TCP Port 8080, with access granted to all incoming IP 0.0.0.0/0. You could use other port by simply editing the last line of integration.py app.run(host = "0.0.0.0",port=<DESIRED_PORT>)
  8. To test out the functionality of the app, simply download and install JobFlex.apk in your Android Device.

Happy Testing!

About

Capstone Project Bangkit 2021 - Mobile Application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published