Google Bangkit Capstone Project 2021 - CAP0139 - Exwara
Explore the docs »
View Demo
·
Download APK
·
Report Issues
- Rama Febriansyah - A2001981
- Robby Akbar - A2992725
- Kevin Marhan Cunis - C0020087
- Rully Nurul Hasanah - C2992709
- Rafif Rahman Darmawan - M0020073
- Cynthia Evani - M0020081
Table of Contents
For Android App Development commit history, please kindly check the master branch.
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.
- One for All - We unite job information from various sources into one-single platform (for this MVP we still use internal database).
- 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.
- 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).
- 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).
These are a few screenshots of the working application. To see the demo video, click on this link.
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
Login Page | Registration Page | Main Dashboard | Profile Page |
![]() |
![]() |
![]() |
---|---|---|
Upload CV | Search Results | Job Details |
Assuming you have configured your GCP Project, here are the steps of deploying this integration of ML to the cloud.
- 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.
- Create a dataset in Big Query under your project. In this example we will be using jobsData as the dataset.
- Import your job database to the dataset. In this example we will be using jobs.tsv that can be downloaded from this link
- Setup Firebase to your GCP Project, and follow the steps provided to setup Firebase Authentication.
- Create a compute engine instance. The type should be at least n1-standard-1.
- SSH into the VM instance you've just created. In the SSH terminal, clone this repository.
Make sure to install pip by running these scripts.
git clone https://github.com/RobbyAkbar/JobFlex.git
After pip installed, run these scripts to install all the dependency needed.sudo apt-get update sudo apt-get install python3-pip -y
Move the working directory topip3 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
cloud_integration
and edit theintegration.py
file.Inside the file, edit line 37 to match your bucket name, and editcd cloud_integration nano integration.py
FROM
toQuery in line 46 and query_job in line 62 to match your datasetSave and exit from the file by entering... 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+'"' )
CTRL+X, Y, ENTER
. Make sure you grant permission for executing the file.You're ready to run! To run the program in background while maintaining the output, we will usesudo chmod +x integration.py
nohup
. The output should be redirected to your desired file (in this example we will use integrationOut.log).nohup ./integration.py > integrationOut.log &
- 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.pyapp.run(host = "0.0.0.0",port=<DESIRED_PORT>)
- To test out the functionality of the app, simply download and install JobFlex.apk in your Android Device.
Happy Testing!