Skip to content

oxopolitics-internship-for-elice/footprints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์ •์น˜ ๋ฐœ์ž๊ตญ

A community that graphs politician evaluations and issues

๊ธฐ์ˆ  ์Šคํƒ



1. ๊ธฐํš ์˜๋„

๋ชฉํ‘œ

์ •์น˜์ธ์˜ ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€์˜ ์ด์Šˆ๋“ค์„ ๋Œ์ด์ผœ๋ณด๋ฉฐ ์ •์น˜์ธ์˜ ์Šคํ† ๋ฆฌ, ์ž ์žฌ๋ ฅ, ๊ฐ€์น˜๋ฅผ ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๋•ํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  • ์ •์น˜์ธ ์ผ๋Œ€๊ธฐ ์‹œ๊ฐํ™”: ๋…ผ๋ž€, ์ด์Šˆ์˜€๋˜ ์ •์น˜์ธ์„ ๋‘˜๋Ÿฌ์‹ผ ์‚ฌ๊ฑด๋“ค์„ ์‹œ๊ฐ„ ์ˆœ ๊ทธ๋ž˜ํ”„๋กœ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €์˜ ํ‰๊ฐ€: ๊ฐ ์‚ฌ๊ฑด๋งˆ๋‹ค ์‚ฌ์šฉ์ž๋“ค์ด ์ง์ ‘ ๊ธ์ •์ , ๋ถ€์ •์  ํ‰๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์น˜์ธ์˜ ์ธ์ƒ ์—ฌ์ •์—์„œ ์—ฌ๋ก ์˜ ํ‰๊ฐ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž๋“ค ๋˜ํ•œ ์—ฌ๋ก ์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ธ์‹

๐Ÿง ์ •์น˜๊ณ„๋Š” ๋งค์ผ ์ƒˆ๋กœ์šด ์ด์Šˆ์™€ ํ•จ๊ป˜ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์น˜์ธ์„ ๋‘˜๋Ÿฌ์‹ผ ์—ฌ๋ก ์€ ์‹œ์‹œ๊ฐ๊ฐ ๋ณ€ํ™”ํ•˜๋ฉฐ, ๊ณผ๊ฑฐ์˜ ์‚ฌ๊ฑด์— ๋Œ€ํ•œ ์žฌํ‰๊ฐ€ ๋˜ํ•œ ์ข…์ข… ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ •์น˜๋ฐœ์ž๊ตญ์€ ์šฐ๋ฆฌ๊ฐ€ ์ •์น˜์ธ์„ ์ œ๋Œ€๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ์„๊นŒ๋ผ๋Š” ๋ฌธ์ œ ์˜์‹์—์„œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.


ํŽ˜๋ฅด์†Œ๋‚˜

  • ์ •์น˜์ธ๋“ค์˜ ์—ญ์‚ฌ๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ทธ๋“ค์„ ์ดํ•ดํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ์šฉ์ž
  • ์ •์น˜์ธ์„ ์ดํ•ดํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ๋‰ด์Šค, ์œ„ํ‚ค ๋“ฑ ๊ธด ํ…์ŠคํŠธ์— ํ”ผ๋กœ๋ฅผ ๋Š๋ผ๋Š” ์‚ฌ์šฉ์ž
  • ๋‚˜์™€ ๋‹ค๋ฅธ ์˜๊ฒฌ, ์—ฌ๋ก ์ด ๊ถ๊ธˆํ•œ ์‚ฌ์šฉ์ž




2. ์„œ๋น„์Šค ๊ธฐ๋Šฅ

โš› ๋กœ๊ทธ์ธ

  • ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์†Œ์…œ ๋กœ๊ทธ์ธ์œผ๋กœ ํšŒ์›๊ฐ€์ž…๊ณผ ๋™์‹œ์— ๋กœ๊ทธ์ธ์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ฟ ํ‚ค๋กœ access-token์„ ๋ณด๊ด€ํ•ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์€ ๋’ค์—๋„ ๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ† ํฐ์œผ๋กœ ๋ฐฑ์—”๋“œ์—์„œ db์™€ ๋น„๊ตํ•ด ์ค‘๋ณตํˆฌํ‘œ ๋ฐฉ์ง€๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

โš› ๋ฉ”์ธ ํŽ˜์ด์ง€

  • ์ •์น˜์ธ์˜ ์ „์ฒด ์ด์Šˆ๋ฅผ ๊ฐ€์ ธ์™€ ์ธ์ƒ ์ „์ฒด์— ๋Œ€ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โš› ์ •์น˜์ธ ๊ทธ๋ž˜ํ”„

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

โš› ๋Œ€๊ธฐ ์ค‘ ์ด์Šˆ

  • ๋ชจ๋‹ฌ์„ ํ†ตํ•ด ๋‚ ์งœ์™€ ์ด์Šˆ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ณ  ๋Œ€๊ธฐ ์ค‘ ์ด์Šˆ๋กœ ๋“ฑ๋ก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌดํ•œ์Šคํฌ๋กค์œผ๋กœ ๋Œ€๊ธฐ ์ค‘ ์ด์Šˆ๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ๊ฐ์ด ์ž„๋ฐ•ํ•œ top3 ์ด์Šˆ๊ฐ€ ์ƒ์œ„์— ๊ณ ์ •๋˜์–ด ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.




3. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„

3. ์•„ํ‚คํ…์ณ

project architecture

4. ๋ฐฑ์—”๋“œ ๋ฐ์ดํ„ฐ์ฒ˜๋ฆฌ ๊ตฌ์กฐ

backend data process

5. ํด๋”๊ตฌ์กฐ

client

๐Ÿ“ฆsrc
 โ”ฃ ๐Ÿ“‚api
 โ”ฃ ๐Ÿ“‚assets
 โ”ฃ ๐Ÿ“‚components
 โ”ƒ โ”ฃ ๐Ÿ“‚base
 โ”ƒ โ”ฃ ๐Ÿ“‚home
 โ”ƒ โ”ฃ ๐Ÿ“‚layout
 โ”ƒ โ”ฃ ๐Ÿ“‚politician
 โ”ƒ โ”ฃ ๐Ÿ“‚politicianList
 โ”ƒ โ”— ๐Ÿ“‚system
 โ”ฃ ๐Ÿ“‚pages
 โ”ฃ ๐Ÿ“‚router
 โ”ฃ ๐Ÿ“‚store
 โ”ฃ ๐Ÿ“‚styles
 โ”ฃ ๐Ÿ“‚types
 โ”ƒ โ”ฃ ๐Ÿ“‚chart.js
 โ”ƒ โ”ฃ ๐Ÿ“‚react-full-page
 โ”ƒ โ”ฃ ๐Ÿ“‚react-slick
 โ”ฃ ๐Ÿ“‚utils
 โ”ฃ ๐Ÿ“œApp.tsx
 โ”ฃ ๐Ÿ“œmain.tsx
 โ”— ๐Ÿ“œvite-env.d.ts

server

๐Ÿ“ฆsrc
 โ”ฃ ๐Ÿ“‚auth
 โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ƒ โ”ฃ ๐Ÿ“‚guard
 โ”ƒ โ”ฃ ๐Ÿ“‚strategy
 โ”ฃ ๐Ÿ“‚common
 โ”ฃ ๐Ÿ“‚issue
 โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ฃ ๐Ÿ“‚politician
 โ”ฃ ๐Ÿ“‚schemas
 โ”ฃ ๐Ÿ“‚user
 โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ฃ ๐Ÿ“œapp.controller.spec.ts
 โ”ฃ ๐Ÿ“œapp.controller.ts
 โ”ฃ ๐Ÿ“œapp.module.ts
 โ”ฃ ๐Ÿ“œapp.service.ts
 โ”— ๐Ÿ“œmain.ts




4. ํŒ€์› ์†Œ๊ฐœ ๋ฐ ์—ญํ• 

์ด๋ฆ„ ์—ญํ•  ๋‹ด๋‹น ๋ถ€๋ถ„
๋ฐฐ์žฅํ•œ BE 1. Issue API ์„ค๊ณ„ ๋ฐ ์ž‘์„ฑ
2. ์ด์Šˆ, ์ •์น˜์ธ ์กฐํšŒ ๋กœ์ง ๊ตฌํ˜„ - pagination, aggregate
์žฅ์†Œ์˜ BE 1. Issue API ์„ค๊ณ„ ๋ฐ ์ž‘์„ฑ
2. ์ด์Šˆ ๋ถ€์กฑ๋ณ„ ํˆฌํ‘œ ๋กœ์ง ๊ตฌํ˜„
3. ์ด์Šˆ ๋“ฑ๋ก ํˆฌํ‘œ ๋กœ์ง ๊ตฌํ˜„
4. ์ •์น˜์ธ ๋ชฉ๋ก ๋กœ์ง ๊ตฌํ˜„
๊ถŒํ•„์ฃผ BE 1. ์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ ๋ฐ ํ† ํฐ ์ธ์ฆ ๋กœ์ง ๊ตฌํ˜„
2. ๋กœ๊ทธ์ธํ•œ ์œ ์ €์˜ ์ด์Šˆ์— ๋Œ€ํ•œ ํˆฌํ‘œ ๊ฒฐ๊ณผ ๋ฐ˜์˜ ๋กœ์ง ๊ตฌํ˜„
3. ์œ ์ €์˜ ํˆฌํ‘œ ์ค‘๋ณต ๋ฐฉ์ง€ ๋กœ์ง ๊ตฌํ˜„
4. aws ๋ฐฐํฌ ๋ฐ github action ํ™œ์šฉํ•œ CI&CD ๊ตฌํ˜„
ํ™ฉ์ฑ„๋ฆผ FE 1. chartjs๋ฅผ ํ†ตํ•œ ๋ฉ”์ธํŽ˜์ด์ง€ ์ •์น˜์ธ๋ชฉ๋ก ๊ทธ๋ž˜ํ”„ ์ž‘์„ฑ
2. Recoil์„ ํ†ตํ•œ ์ „์—ญ ์ƒํƒœ๊ด€๋ฆฌ ๋ฐ ์ •์น˜์ธ ํŽ˜์ด์ง€ ์ด์Šˆ ๊ตฌํ˜„
3. 3. emotion์„ ์ด์šฉํ•œ ์ „์ฒด css ๋ฐ ๋””์ž์ธ
ํ™์ฃผ์™„ FE 1.chartjs๋ฅผ ํ†ตํ•œ ์ •์น˜์ธ ์ƒ์„ธํŽ˜์ด์ง€ ๊ตฌํ˜„
2.chartjs tooltip ์ง์ ‘ ๊ตฌํ˜„
3.chartjs๋กœ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉ
4.๋ชจ๋‹ฌ ํŒ์—… ๊ตฌํ˜„
๊น€ํ•˜์˜ FE 1. vite์™€ prettier, tsconfig ๋“ฑ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…
2. ๋ฉ”์ธํŽ˜์ด์ง€ ๋ฐ ํ—ค๋” ๋“ฑ ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„
3. ๋กœ๊ทธ์ธ ๊ตฌํ˜„
4. ์ด์Šˆ ๋“ฑ๋ก ๊ตฌํ˜„

About

๐Ÿ‘ฃ ์ •์น˜๋ฐœ์ž๊ตญ ๐Ÿ‘ฃ

Resources

License

Stars

Watchers

Forks

Languages