Skip to content

Job Search is a compact API that allows you to filter three options directly from the results page of a Job Board

Notifications You must be signed in to change notification settings

hyeonahc/job-search-front

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

93 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฐ๐Ÿ‡ท For Korean User: ํ•œ๊ตญ์–ด๋กœ ๋œ ํ”„๋กœ์ ํŠธ ์„ค๋ช…์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.

๐Ÿ”ย Job Search (English)

๐Ÿ“‘ Table of Contents


๐Ÿš€ Quick Start

  1. Clone this repo: git clone https://github.com/hyeonahc/job-search-front.git
  2. Move to the directory: cd <YOUR_PROJECT_NAME>.
  3. Install packages: yarn install
  4. Start project
    • in your localhost: yarn start
    • after build: yarn build then yarn start

โœจ Introduction

Job Search is a small API where you can filter 3 options from the results page of Saramin. The filter options are the following:

  1. Number of years since the company has been established
  2. Revenue of the company
  3. Number of employees

FYI, Saramin is one of the biggest Korean employment websites for job listings. You can think of it as Korean Indeed!

Problem

saramin screenshot

Saramin provides job titles, locations and occupations for job search. You are likely to receive a lot of job postings that donโ€™t match your preferences on the result page.

Idea

My team came up with the idea of adding more search filters to narrow down the job postings and show relevant result data on the table.


๐Ÿ‘€ย Demo

Job Search

Mockup Link

๐Ÿ”— Click here to see the mockup on Behance

Live Website Link

๐Ÿ”— Click here to see the live website link on Netlify


โš™๏ธย Main Feature

  1. Crawling: Crawled the job posting data from Saramin and displayed them on the table
  2. Filtering: Added three options that filter the job posting data on the table

๐Ÿช„ย Tech Stack

Design @hyeonahc

: Adobe XD

Front-end @hyeonahc

: React, Context API, React Table, Scss

Back-end @rerun1129

: Java, Spring

๐Ÿ”—ย Click here to see the back-end repository: job_search_back


๐Ÿ“ Project Review

The most challenging parts

Apr 17, 2022

  1. Context API

    When I created projects with React, Iโ€™ve been using state only locally (within the same component). I managed the state globally using the context API library for the first time in which I struggled with applying context API to my project. I would like to practice this feature more and use Redux for my next project.

  2. React Table

    I used React Table library to easily insert data into the table and added the pagination feature. The most challenging part was quickly picking up the right information. Also, I found that it took more time for me to learn how to use the new library. My next goal is to experience more new libraries.

  3. Communication with back-end developers

    Throughout the project, I found it difficult to understand the back-end developer (Even though it was in my native language, Korean) There were some new terms and a situation I never experienced before. I learned that itโ€™s important to understand the bigger picture, overall web development process, and to communicate with back-end developers as well as understand how the client side receives the data from the back end.

Areas of improvement

  1. Add a .gitignore file at the beginning of the project

    I added a .gitignore file later in the project which led to including unnecessary files(cache, node_mdules) in the git history.

  2. Make the meaningful commit

    The best practice is committing when a certain feature is built. Thatโ€™s something I didnโ€™t know. I committed whenever I felt like it, which led to messing up the commit history.

  3. Keep the commit message convention

    I didnโ€™t follow the common commit message convention which made it hard to figure out what the commit is about.

Blog Posts

I studied the challenging parts of this project and wrote some blog posts. (Written in Korean ๐Ÿ‡ฐ๐Ÿ‡ท)






๐Ÿ”ย Job Search (ํ•œ๊ตญ์–ด)

๐Ÿ“‘ ๋ชฉ์ฐจ


๐Ÿš€ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ

  1. ๋ฆฌํฌ ํด๋ก ํ•˜๊ธฐ: git clone https://github.com/hyeonahc/job-search-front.git
  2. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ธฐ: cd <YOUR_PROJECT_NAME>.
  3. ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ: yarn install
  4. ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ
    • ์‚ฌ์šฉ์ž ๋กœ์ปฌํ˜ธ์ŠคํŠธ: yarn start
    • ๋นŒ๋“œํ›„ ์‚ฌ์šฉ: yarn build then yarn start

โœจ ์†Œ๊ฐœ

Job Search๋Š” ์‚ฌ๋žŒ์ธ IT/๊ฐœ๋ฐœ ์ง์—…๊ตฐ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์—์„œ ์„ธ๊ฐ€์ง€ ํ•„ํ„ฐ๋ง ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ…Œ์ด๋ธ”๋กœ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๊ฐ„๋‹จํ•œ API์ž…๋‹ˆ๋‹ค. 3๊ฐ€์ง€ ํ•„ํ„ฐ๋ง ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์—…๋ ฅ
  2. ๋งค์ถœ์•ก
  3. ํšŒ์‚ฌ์‚ฌ์›์ˆ˜

๋ถˆํŽธํ–ˆ๋˜์ 

saramin screenshot

์‚ฌ๋žŒ์ธ์—์„œ ๊ตฌ์ธ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ• ๋•Œ ๋‚ด๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ํšŒ์‚ฌ ์กฐ๊ฑด์„ ํ•„ํ„ฐ๋งํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ์—†์–ด ๋ถˆํŽธํ•จ์„ ๋Š๊ผˆ๋‹ค.

์•„์ด๋””์–ด

๊ตฌ์ธ์ •๋ณด์—์„œ ํšŒ์‚ฌ ์—…๋ ฅ, ๋งค์ถœ์•ก, ํšŒ์‚ฌ์‚ฌ์›์ˆ˜ ํ•„ํ„ฐ๋ง ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ํ…Œ์ด๋ธ”๋กœ ์ •๋ฆฌํ•ด์ฃผ๋ฉด ์–ด๋–จ๊นŒ?


๐Ÿ‘€ย ๋ฐ๋ชจ

Job Search

๋ชฉ์—… ๋งํฌ

๐Ÿ”— Behance์—์„œ ๋ชฉ์—… ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

๋ผ์ด๋ธŒ ์‚ฌ์ดํŠธ ๋งํฌ

๐Ÿ”— Netlify๋กœ ๋ฐฐํฌํ•œ ๋ผ์ด๋ธŒ ์‚ฌ์ดํŠธ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ


โš™๏ธย ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๋กœ์ง

  1. ํฌ๋กค๋ง: ์‚ฌ๋žŒ์ธ์—์„œ IT/๊ฐœ๋ฐœ ์ง๊ตฐ์˜ ํšŒ์‚ฌ ์„ค๋ฆฝ์ผ, ๋งค์ถœ์•ก, ํšŒ์‚ฌ์‚ฌ์›์ˆ˜ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์™€ ํ…Œ์ด๋ธ”์— ๋ณด์—ฌ์ค€๋‹ค
  2. ํ•„ํ„ฐ๋ง: ํšŒ์‚ฌ ์„ค๋ฆฝ์ผ, ๋งค์ถœ์•ก, ํšŒ์‚ฌ์‚ฌ์›์ˆ˜์˜ ์„ธ๋ถ€ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค

๐Ÿช„ย ๊ธฐ์ˆ  ์Šคํƒ

๋””์ž์ธ @hyeonahc

: Adobe XD

ํ”„๋ก ํŠธ์•ค๋“œ @hyeonahc

: React, Context API, useTable, Scss

๋ฐฑ์•ค๋“œ @rerun1129

: Java, Spring

๐Ÿ”—ย  ๋ฐฑ์—”๋“œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ: job_search_back ๋ณด๋Ÿฌ๊ฐ€๊ธฐ


๐Ÿ“ ํ”„๋กœ์ ํŠธ ๋ฆฌ๋ทฐ

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ์ 

Apr 17, 2022

  1. context API์˜ ์‚ฌ์šฉ

    ์ง€๊ธˆ๊นŒ์ง€ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ state๋ฅผ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ context API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ์ ์œผ๋กœ state๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค. ์•„์ง ์‚ฌ์šฉ๋ฒ•์— ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š”๋ฐ ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ ์ „์—ญ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋” ๊ณต๋ถ€ํ•ด๋ณด๊ฒ ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ ์ „์—ญ์ ์œผ๋กœ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ• ๋•Œ๋Š” redux๋ฅผ ๊ณต๋ถ€ํ•ด ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.

  2. React Table ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ

    ๊ณต์‹๋ฌธ์„œ์™€ ์œ ํŠœ๋ธŒ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ React Table ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๋ฉด์„œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด์•˜๋‹ค. ์•„์ง๊นŒ์ง€๋Š” ๊ณต์‹๋ฌธ์„œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋‚ฌ์„๋•Œ ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๋Š”๋ฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ ‘ํ•˜๋Š” ๊ฒƒ์„ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š๊ณ  ์˜์–ด๋กœ ๋œ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ž์ฃผ ์ ‘ํ•ด์•ผ๊ฒ ๋‹ค.

  3. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€์˜ ์†Œํ†ต๋ฌธ์ œ

    ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•จ๊ป˜ ์ž‘์—…์„ ํ–ˆ๋˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ๋ง์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์›น๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค. ํŠนํžˆ ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ ์‚ฌ์ด์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š”์ง€์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•ด ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์˜์‚ฌ์†Œํ†ต์— ์–ด๋ ค์›€์„ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์‚ผ๊ฒ ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์•„์‰ฌ์› ๋˜ ์ 

  1. .gitignore ์ ์šฉ์„ ๋’ค๋Šฆ๊ฒŒ ํ–ˆ๋‹ค

    GitHub์— ์˜ฌ๋ผ์˜ค์ง€ ์•Š์•„๋„๋  cache, node_modules์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์ •๋ณด๋„ ๊ฐ™์ด ์ปค๋ฐ‹๋˜์–ด commit history๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ง€๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ–ˆ๋‹ค.

  2. ๊นƒ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜์„ ์ง€์ผœ์ฃผ์ง€ ๋ชปํ–ˆ๋‹ค

    ๊นƒ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•œ prefix, convention์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ์—†์–ด ๊ธฐ๋Šฅ๋ณ„๋กœ ์ปค๋ฐ‹์„ ํ•˜์ง€ ๋ชปํ–ˆ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ commit๋ณ„๋กœ ๋‚ด๊ฐ€ ์–ด๋–ค ์ž‘์—…์„ ํ–ˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์กŒ๋‹ค.

์•„์‰ฌ์› ๋˜์ ์„ ๋ณด๊ฐ•ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ

About

Job Search is a compact API that allows you to filter three options directly from the results page of a Job Board

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published