Skip to content

πŸ’› μ›ν‹°λ“œ ν”„λ¦¬μ˜¨λ³΄λ”© 4μ°¨ μ„ λ°œκ³Όμ œ

Notifications You must be signed in to change notification settings

yujiniii/wanted_pre_onboarding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

μ›ν‹°λ“œ ν”„λ¦¬μ˜¨λ³΄λ”© 4μ°¨ μ„ λ°œκ³Όμ œ 제좜 | wanted_pre_onboarding

nodejs

>> λ°”λ‘œ κ°€κΈ° <<

πŸ“Œ μ†Œκ°œ

κΈ°μ—…μ˜ μ±„μš©κ³΅κ³  관리 및 μ‚¬μš©μžμ˜ 곡고 쑰회, μž…μ‚¬μ§€μ› API μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

🌱 폴더 ꡬ쑰

μ½”λ“œ 가독성을 μœ„ν•΄ 폴더 κ΅¬μ‘°λŠ” μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€ 정보λ₯Ό 담은 config와 ν•¨κ»˜, 3κ³„μΈ΅μœΌλ‘œ λΆ„ν•΄ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

wanted_pre_onboarding
β”œβ”€β”€config
β”œβ”€β”€ models ------------- 데이터 κ΄€λ ¨ μ½”λ“œ
β”œβ”€β”€ routes ------------- Routing κ΄€λ ¨ μ½”λ“œ
└── services ----------- μ„œλΉ„μŠ€ κ΄€λ ¨ μ½”λ“œ

🌱 DB 관계

aa 각 λͺ¨λΈκ°„μ˜ κ΄€κ³„λŠ” μœ„ 사진과 κ°™μŠ΅λ‹ˆλ‹€.
ν•œ μ±„μš©κ³΅κ³ (Recruits)λŠ” μ—¬λŸ¬ λͺ…μ˜ μž…μ‚¬μ§€μ›ν•œ μ‚¬μš©μž(Users)λ₯Ό κ°€μ§ˆ 수 있고, ν•œ νšŒμ‚¬(Companys)λŠ” μ—¬λŸ¬ 개의 μ±„μš©κ³΅κ³ (Recruits)λ₯Ό 올릴 수 있게 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

🌱 μ‚¬μš© 기술

  • Express.js
  • PostgreSQL (RDBMS)
  • sequelize (ORM)

πŸ“Œ API μ•ˆλ‚΄

POSTMAN documantation

[μ±„μš©κ³΅κ³  등둝]

POST localhost:3001/recruit/new

🚩 request [body]

{
    "company_id":1,
    "position":"λ°±μ—”λ“œ 개발자",
    "reward": 3000,
    "skill":"python",
    "content":"ν•¨κ»˜ μ„±μž₯ν•΄λ‚˜κ°ˆ 파이썬 λ°±μ—”λ“œ 개발자λ₯Ό κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€!"
}

🚩 response

{
    "newRecruit": {
        "recruit_id": 1,
        "company_id": 1,
        "position": "λ°±μ—”λ“œ 개발자",
        "reward": 3000,
        "skill": "python",
        "content": "ν•¨κ»˜ μ„±μž₯ν•΄λ‚˜κ°ˆ 파이썬 λ°±μ—”λ“œ 개발자λ₯Ό κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€!"
    }
}

[μ±„μš©κ³΅κ³  μˆ˜μ •]

POST localhost:3001/recruit/modify

🚩 request [body]

{
    "recruit_id":1,
    "position":"ν”„λ‘ νŠΈμ—”λ“œ 개발자",
    "reward": 3000,
    "skill":"python",
    "content":"ν•¨κ»˜ μ„±μž₯ν•΄λ‚˜κ°ˆ 파이썬 ν”„λ‘ νŠΈμ—”λ“œ 개발자λ₯Ό κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€!"
}

🎯 company_idλŠ” μˆ˜μ • λΆˆκ°€λŠ₯

🚩 response

{
    "change": {
        "recruit_id": 1,
        "position": "ν”„λ‘ νŠΈμ—”λ“œ 개발자",
        "reward": 3000,
        "skill": "python",
        "content": "ν•¨κ»˜ μ„±μž₯ν•΄λ‚˜κ°ˆ 파이썬 ν”„λ‘ νŠΈμ—”λ“œ 개발자λ₯Ό κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€!",
        "company_id": 1
    }
}

🎯 λ§Œμ•½ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ±„μš©κ³΅κ³  idλ₯Ό μž…λ ₯ν–ˆλ‹€λ©΄???

{
    "message": "μ±„μš©κ³΅κ³  정보λ₯Ό 확인해 μ£Όμ„Έμš”"
}

[μ±„μš©κ³΅κ³  μ‚­μ œ]

POST localhost:3001/recruit/delelte

🚩 request [body]

{
    "recruit_id":1
}

🚩 response

{
    "message": "deleted 1 "
}

🎯 λ§Œμ•½ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ±„μš©κ³΅κ³  idλ₯Ό μž…λ ₯ν–ˆλ‹€λ©΄???

{
    "message": "μ±„μš©κ³΅κ³  정보λ₯Ό 확인해 μ£Όμ„Έμš”"
}

[λͺ¨λ“  μ±„μš©κ³΅κ³  쑰회]

GET localhost:3001/apply/all

🚩 request [body]

none 

🚩 response

{
    "allRecruit": [
        {
            "recruit_id": 1,
            "position": "λ°±μ—”λ“œ 개발자",
            "reward": 3000,
            "skill": "python",
            "company_id": 1,
            "company_name": "μ›ν‹°λ“œ",
            "country": "λŒ€ν•œλ―Όκ΅­",
            "city": "강남ꡬ"
        },
        {
            "recruit_id": 2,
            "position": "λ°±μ—”λ“œ 개발자",
            "reward": 3000,
            "skill": "nodejs",
            "company_id": 2,
            "company_name": "λ²„ν„°μ™€ν”Œ",
            "country": "크라운",
            "city": "귀쑱동"
        }
    ]
}

🎯 νšŒμ‚¬ μ •λ³΄κΉŒμ§€ ν•¨κ»˜ ν‘œμΆœ, μ±„μš©κ³΅κ³  μƒμ„ΈλŠ” 보이지 μ•ŠμŠ΅λ‹ˆλ‹€.

[νŠΉμ • μ±„μš©κ³΅κ³  상세보기]

GET localhost:3001/apply/:id/detail

🚩 request [PARAMS]

id : 2 ----> recruit_id 

🚩 response

{
    "theRecruit": {
        "recruit_id": 2,
        "position": "ν”„λ‘ νŠΈμ—”λ“œ 개발자",
        "reward": 3000,
        "skill": "html",
        "content": "ν•¨κ»˜ μ„±μž₯ν•΄λ‚˜κ°ˆ ν”„λ‘ νŠΈμ—”λ“œ 개발자λ₯Ό κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€!",
        "company_id": 2,
        "company_name": "μ›ν‹°λ“œ",
        "country": "λŒ€ν•œλ―Όκ΅­",
        "city": "강남ꡬ",
        "another_recruit": [
            1,
            2,
            3
        ]
    }
}

🎯 μ„ νƒν•œ μ±„μš©κ³΅κ³ μ˜ 상세 λ‚΄μš©κ³Ό, 동일 νšŒμ‚¬μ˜ μ±„μš©κ³΅κ³ id ν•¨κ»˜ 좜λ ₯

🎯 λ§Œμ•½ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ±„μš©κ³΅κ³  idλ₯Ό μž…λ ₯ν–ˆλ‹€λ©΄???

{
    "message": "μ±„μš©κ³΅κ³  정보λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”"
}

[μž…μ‚¬ 지원]

POST localhost:3001/apply/:id/gogo

🚩 request

[PARAMS]

id : 1 ----> recruit_id 

[body]

{
    "user_id" : 1
}

🚩 response

{
    "message": "λ‹Ήμ‹ μ˜ 도전을 μ‘μ›ν•©λ‹ˆλ‹€."
}

🎯 λ§Œμ•½ 같은 μ‚¬μš©μžκ°€ μž…μ‚¬μ§€μ›μ„ 또 ν•œλ‹€λ©΄???

{
    "message": "μž…μ‚¬ 지원은 ν•œλ²ˆλ§Œ κ°€λŠ₯ν•©λ‹ˆλ‹€."
}

🎯 λ§Œμ•½ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ±„μš©κ³΅κ³  idλ₯Ό μž…λ ₯ν–ˆλ‹€λ©΄???

{
    "message": "μ±„μš©κ³΅κ³  정보λ₯Ό 확인해 μ£Όμ„Έμš”"
}

🎯 λ§Œμ•½ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ‚¬μš©μž idλ₯Ό μž…λ ₯ν–ˆλ‹€λ©΄???

{
    "message": "μ‚¬μš©μž 정보λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”"
}

πŸ“Œ μ‹œμž‘ν•˜κΈ°

npm init
npm start

config/dev.env 파일 생성

POSTGRESQL_PASSWORD= (your password)

πŸ“Œ νŒ¨ν‚€μ§€ μ•ˆλ‚΄

μ‚¬μš©ν•œ νŒ¨ν‚€μ§€λŠ” ν‘œμ™€ κ°™μŠ΅λ‹ˆλ‹€.

νŒ¨ν‚€μ§€ 이름 버전 μ„€λͺ…
dotenv ^16.0.1 env 파일 연결을 μœ„ν•΄ μ‚¬μš©
express ^4.18.1 express둜 μ„œλ²„λ₯Ό μ œμž‘ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
morgan ^1.10.0 logger섀정을 μœ„ν•΄ μ‚¬μš©
pg ^8.7.3 postgres λͺ¨λ“ˆ
postgres ^3.2.4 postgres λͺ¨λ“ˆ
sequelize ^6.21.3 postgreSQL을 λ§Œλ“€κ³ , μ œμ–΄ν•˜κΈ° μœ„ν•œ ORM νŒ¨ν‚€μ§€
nodemon ^2.0.19 κ°œλ°œμ‹œ μ„œλ²„κ°€ 계속 가동할 수 있게 ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

About

πŸ’› μ›ν‹°λ“œ ν”„λ¦¬μ˜¨λ³΄λ”© 4μ°¨ μ„ λ°œκ³Όμ œ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published