Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
@NewWays-TechForImpactKAIST

NewWays-TechForImpactKAIST

๐Ÿฅฐ

์ง€์—ญ์ •์น˜ ๋‹ค์–‘์„ฑ ์‹œ๊ฐํ™”

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

๐Ÿ™‹โ€โ™€๏ธ 0. ๋ชฉ์ 

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

๋Œ€๋žต 226๊ฐœ ์ง€๋ฐฉ์ž์น˜๋‹จ์ฒด์˜ 3,000 ์˜์›๊ณผ 17๊ฐœ ๊ด‘์—ญ์ž์น˜๋‹จ์ฒด์˜ 900 ์˜์›์€ ์šฐ๋ฆฌ ์ง€์—ญ์„ ํ˜•์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์˜ํ–ฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‰ด์›จ์ด์ฆˆ๋Š” ์žฌ์‚ฐ, ํ˜„์žฌ ์ •์น˜ ์†Œ์†, ๊ณต์‹ ์ถœ์žฅ ๊ธฐ๋ก๊ณผ ๊ฐ™์€ ์˜์—ญ์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ๋‹ค์–‘ํ•œ ์‹œ๋ฏผ ๋‹จ์ฒด๋“ค์˜ ์ฃผ๋ชฉ์„ ๋Œ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๋‰ด์›จ์ด์ฆˆ์˜ ๋ชจํ† ์ธ "๋‹ค์–‘ํ•œ ๊ฐœ์ธ๋“ค์˜ ๋‹ค์–‘ํ•œ ์˜์‚ฌ๊ฒฐ์ •์ด ์ •์น˜๋ฅผ ๋” ๋‚˜๊ฒŒ ๋งŒ๋“ ๋‹ค"๋Š” ์šฐ๋ฆฌ์˜ ๋ฏธ์…˜์„ ์ด๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 2010๋…„๋ถ€ํ„ฐ 2022๋…„๊นŒ์ง€์˜ ๋„ค ์ฐจ๋ก€์˜ ์ง€๋ฐฉ ์„ ๊ฑฐ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด ๋‹น์„ ๋œ ์ •์น˜์ธ ์ค‘ 48%๊ฐ€ 50๋Œ€, 72%๊ฐ€ ๋‚จ์„ฑ์ด๋ฉฐ 88%๊ฐ€ ๊ฑฐ๋Œ€ ์–‘๋‹น ์†Œ์†์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‰ด์›จ์ด์ฆˆ๋Š” ํŠนํžˆ ์ Š์€ ์ •์น˜์ธ์˜ ๋ถ€์กฑ์— ์ค‘์ ์„ ๋‘์–ด ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์‹œ๋ฏผ๋“ค๊ณผ ์—ฐ๊ฒฐํ•˜์—ฌ ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘ฉโ€๐Ÿ’ป 1. API-scrap-and-analysis

1-1. ๋ชจ๋“  ์„ ์ถœ๋‹จ์œ„์— ๋Œ€ํ•œ ๊ณต์ง์ž ๋ณ€๋™ ์ž๋™ ์ถ”์ 

  • BeautifulSoup ๋ฐ Selenium์„ ์‚ฌ์šฉํ•œ ์›น ํฌ๋กค๋ง.
  • ๊ฐ ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ํฌ๋กค๋ง ํ•จ์ˆ˜ ์ƒ์„ฑ.
  • 5815์ค„์˜ ์ฝ”๋“œ.
  • BeautifulSoup
    • ๊ฐ ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๊ฐœ๋ณ„ ํ•จ์ˆ˜๋กœ ์‰ฌ์šด ์œ ์ง€๋ณด์ˆ˜.
    • ์œ ์‚ฌํ•œ ์›น์‚ฌ์ดํŠธ๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ํƒœ๊ทธ๋กœ ๊ณต์œ ํ•˜์—ฌ ์‰ฌ์šด ์œ ์ง€๋ณด์ˆ˜.
  • Selenium
    • BeautifulSoup์ด ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌ.
  • ์‹คํ–‰ ๋ฐฉ๋ฒ•
    • API-scrap-and-analysis ์™ธ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๋ชจ๋‘ ์ž๋™ ์‹คํ–‰
    • 2๊ฐœ์˜ ์‰˜ ์Šคํฌ๋ฆฝํŠธ: install.sh, run_scrap_scripts.sh
    • install.sh ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ, Chromedriver ๋“ฑ ์ดˆ๊ธฐ ์…‹์—… ์ง„ํ–‰
    • ์ดํ›„ crontab์— run_scrap_scripts.sh๋ฅผ ๋“ฑ๋กํ•ด ์Šคํฌ๋žฉ ๋ฐ DB ์—ฐ๋™ ์ž๋™ํ™”
    • ์˜ˆ์‹œ: 0 3 * * 0 ~/API-scrap-and-analysis/run_scrap_scripts.sh

1-2. ๋‚˜์ด ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

  • ๋‚˜์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ 5๊ฐœ์˜ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํ•˜์œ„ ๊ทธ๋ฃน์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ์ฒซ ๋ฒˆ์งธ ๋ฐ ๋งˆ์ง€๋ง‰ ๋ฐฑ๋ถ„์œ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๐Ÿง™ 2. Backend-python

React์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด MongoDB ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—”๋“œ์—์„œ ๊ด€๋ฆฌ.

๐ŸŒˆ 3. Frontend

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

์ด ํ”Œ๋žซํผ์„ ์ž์œ ๋กญ๊ฒŒ ํƒํ—˜ํ•ด ๋ณด์„ธ์š”. ์šฐ๋ฆฌ๋Š” ์ง€์—ญ ์ •์น˜์— ํˆฌ๋ช…์„ฑ๊ณผ ๋‹ค์–‘์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

๋งํฌ (Links)

์ฐธ์—ฌ์ž (Contributors)

๐Ÿ“› Name ๐Ÿ“ง Email (@kaist) ๐Ÿˆโ€โฌ› GitHub ์—ญํ• 
๋ฐ•๊ฑด geon.park00 Re-st ํŒ€์žฅ(ํŒ€ ์™ธ๋ถ€ ์†Œํ†ต), ๊ธฐ์ดˆ์˜์› ํฌ๋กค๋ง, ์ •๋ถ€API DBํ™”, ๋‚˜์ดํ†ต๊ณ„, DB์ˆ˜์ •, ์›น์— ํ‘œํ˜„ํ•  ๊ธ€ ๋‚ด์šฉ ์„ค๊ณ„
์†์„ฑ๋ฏผ soungmin happycastle114 ๋ฐฑ์—”๋“œ ์„ค๊ณ„/ํฌํŒ…, ๊ธฐ์ดˆ์˜์› ํฌ๋กค๋ง, ์ง์—…ํ†ต๊ณ„, API ์—”๋“œํฌ์ธํŠธ ๊ตฌ์ƒ, URL ๋ผ์šฐํŒ…, ํžˆ์Šคํ† ๊ทธ๋žจ/๋งต์…€๋ ‰ํ„ฐ ์ œ์ž‘, ์›น๋””์ž์ธ
์†ก์ค€ํ˜ songmhrm songc04 ํžˆ์Šคํ† ๊ทธ๋žจ/๋งต์…€๋ ‰ํ„ฐ ์ œ์ž‘, ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌํ˜„ ์ „๋ฐ˜
์ด๊ธฐ์—ฐ keonl keonly ๊ธฐ์ดˆ์˜์› ํฌ๋กค๋ง, ์Šคํฌ๋žฉ โ†’ MongoDB ์—ฐ๋™, ๋‹ค์–‘์„ฑ์ง€ํ‘œ ์กฐ์‚ฌ ๋ฐ ์ˆ˜๊ธฐ ํ…Œ์ŠคํŠธ, ํฌ๋ก ์žก, ์‹คํ–‰๋งˆ๋‹ค ๊ฒฐ๊ณผ ์ •๋ฆฌํ•ด ์›นํ›…์œผ๋กœ ์Šฌ๋ž™์•ฑ ์•Œ๋ฆผ๋˜๋„๋ก ์ œ์ž‘, ์ฝ”๋“œ ์ •๋ฆฌ
์ดํฌ์› pingpingy pingpingy1 ๊ธฐ์ดˆ/๊ด‘์—ญ/๊ตญํšŒ์˜์› ํฌ๋กค๋ง, ๋‹ค์–‘์„ฑ์ง€ํ‘œ ๋น„๊ต, ๋‹ค์–‘์„ฑ์ง€์ˆ˜ ๋ฐ ์ˆœ์œ„ ๊ณ„์‚ฐ, DB ์„ค๊ณ„ ๋ฐ ์ˆ˜์ •, ๋ฐฑ์—”๋“œ์„œ๋ฒ„ ๊ตฌ์ถ•, API ์—”๋“œํฌ์ธํŠธ ๊ตฌ์ƒ
์ •์ƒ withsang withSang ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ + ๊นƒํ—™๊ตฌ์กฐ + ์ž๋™๋ฐฐํฌ ์„ค๊ณ„, ์„œ๋ฒ„ + ์›น ์ฃผ์†Œ ์ œ๊ณต ๋ฐ ๋ฐฐํฌ, API ์—”๋“œํฌ์ธํŠธ ๊ตฌ์ƒ, ์ œํ’ˆ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜, React ๊ตฌ์กฐ์„ค์ •, ํžˆ์Šคํ† ๊ทธ๋žจ ์ œ์ž‘, ์›น๋””์ž์ธ, ์›น์— ํ‘œํ˜„ํ•  ๊ธ€ ๋‚ด์šฉ ์„ค๊ณ„, ํšŒ์˜๋ก ์ž‘์„ฑ

์ปจ์„คํŒ…

  • JAY (์นด์นด์˜ค ํฌ๋ฃจ) : ๊ธฐ์ˆ ์  ์กฐ์–ธ, ์ง„ํ–‰๋ฐฉ์‹ ์ง€๋„, ๋ ˆํผ๋Ÿฐ์Šค ๊ถŒ์œ 
  • ๋ฐ•ํ˜œ๋ฏผ ๋Œ€ํ‘œ๋‹˜ (๋‰ด์›จ์ด์ฆˆ) : ์œ ์ € ํŽ˜๋ฅด์†Œ๋‚˜ ๊ณต์œ , ๋ฐฉํ–ฅ ์ง€๋„
  • ๋ฅ˜์„์˜ ๊ต์ˆ˜๋‹˜ : ๋ฐฉํ–ฅ ์ง€๋„

๋ฐ๋ชจ (Demo)

diversity-demo.mp4

Visualizing Diversity in Local Politics

Our project is dedicated to visualizing and promoting diversity in local politics through automatic data collection and website development. You can find the operation details of each repository in the respective repository README!

๐Ÿ™‹โ€โ™€๏ธ 0. Purpose

Local representatives play a crucial role in managing budgets, regulations, and administrative oversight within their communities. Many politicians run for office to break the mold of traditional politics, advocating for the well-being of diverse populations, running as independents, and challenging established political structures.

With approximately 3,000 council members across 226 local government units and 900 representatives in 17 metropolitan regions, these officials have the power to shape our communities. NewWays seeks to draw attention from various civic organizations by focusing on areas such as property, current political affiliation, and official travel records.

Newways' motto, "Diverse decision-making by diverse individuals improves politics," drives our mission. However, analyzing the results of four local elections from 2010 to 2022 reveals that 48% of elected officials are in their 50s, 72% are male, and 88% belong to two major political parties. NewWays particularly emphasizes addressing the lack of young politicians, connecting them with citizens to bridge the gap and foster a platform where more people can share their concerns.

๐Ÿ‘ฉโ€๐Ÿ’ป 1. API-scrap-and-analysis

1-1. Automated tracking of public official changes for all elected units.

  • Web scraping using BeautifulSoup and Selenium.
  • Creation of scraping functions for each website.
  • 5815 lines of code.
  • BeautifulSoup
    • Individual functions created for each website for easy maintenance.
    • Similar websites share one function with different tags for easy maintenance.
  • Selenium
    • Handles what BeautifulSoup can't.
  • How to Run
    • Repositories other than API-scrap-and-analysis are fully automated.
    • Two shell scripts: install.sh and run_scrap_scripts.sh.
    • The install.sh script handles initial setup, including creating a Python virtual environment and installing Chromedriver.
    • Subsequently, run_scrap_scripts.sh is registered in crontab for automatic scraping and database integration.
    • Example crontab entry: 0 3 * * 0 ~/API-scrap-and-analysis/run_scrap_scripts.sh

1-2. Making age_histogram data

We group the age into 5 same-sized subgroups based on age, and compute the first- and last quantile too.

๐Ÿง™ 2. Backend-python

Backend management of MongoDB data to ensure compatibility with React.

๐ŸŒˆ 3. Frontend

  • Map for quick comparison and interactive features.
  • User-friendly dropdown menus for quick exploration by year and region.
  • Charts and text blended for a comprehensive view.
  • Age segmentation for visual clarity.

Feel free to explore this platform, where we strive to bring transparency and diversity to local politics, one visualization at a time!

Popular repositories Loading

  1. API-scrap-and-analysis API-scrap-and-analysis Public

    Python 1 2

  2. frontend frontend Public

    ๋‹ค์–‘์„ฑ ํ‰๊ฐ€ ๋ฆฌํฌํŠธ ์›น์‚ฌ์ดํŠธ ํ”„๋ก ํŠธ์—”๋“œ

    TypeScript 1

  3. backend-python backend-python Public

    ๋‹ค์–‘์„ฑ ํ‰๊ฐ€ ๋ฆฌํฌํŠธ ์›น์‚ฌ์ดํŠธ ๋ฐฑ์—”๋“œ

    Python 1 1

  4. backend backend Public

    TypeScript

  5. Prototypes Prototypes Public

  6. .github .github Public

    Readme.md

Repositories

Loading
Type
Select type
Language
Select language
Sort
Select order
Showing 6 of 6 repositories

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ

Morty Proxy This is a proxified and sanitized view of the page, visit original site.