From 7a8d45ec8fa4184208c80adde9ac043249c5d30e Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Tue, 19 Oct 2021 11:31:48 +0000 Subject: [PATCH 01/78] Fix null exceptions --- .../DetectionStatus/DetectionTable.js | 90 +++++++++++-------- .../frontend/src/hooks/useSearchInitEffect.js | 2 +- 2 files changed, 53 insertions(+), 39 deletions(-) diff --git a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js index 6efef33d..7bdf96a3 100644 --- a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js +++ b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js @@ -12,9 +12,10 @@ import { TablePagination, TableFooter, Typography, + LinearProgress, } from '@mui/material'; import SecretsTableRow from './SecretsTableRow'; -import { useContents } from '../../atoms/searchState'; +import { searchState, useContents } from '../../atoms/searchState'; import useSearchInitEffect from '../../hooks/useSearchInitEffect'; import { useTheme } from '@mui/material/styles'; @@ -23,6 +24,7 @@ import KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft'; import KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight'; import LastPageIcon from '@mui/icons-material/LastPage'; import PropTypes from 'prop-types'; +import { useRecoilValue } from 'recoil'; function TablePaginationActions(props) { const theme = useTheme(); @@ -96,9 +98,9 @@ TablePaginationActions.propTypes = { export default function DetectionTable({ showDetailModal, scrapArticle }) { useSearchInitEffect(); const contents = useContents(); + const { isDone } = useRecoilValue(searchState); const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(4); - // Avoid a layout jump when reaching the last page with empty rows. const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - contents.length) : 0; @@ -162,42 +164,54 @@ export default function DetectionTable({ showDetailModal, scrapArticle }) { - - {contents && - (rowsPerPage > 0 - ? contents.slice( - page * rowsPerPage, - page * rowsPerPage + rowsPerPage - ) - : contents - ).map((article, id) => ( - - ))} - {emptyRows > 0 && ( - - - - )} - - - - - - + {contents || isDone ? ( + <> + + {(rowsPerPage > 0 + ? contents.slice( + page * rowsPerPage, + page * rowsPerPage + rowsPerPage + ) + : contents + ).map((article, id) => ( + + ))} + {emptyRows > 0 && ( + + + + )} + + + + + + + + ) : ( + + + + 현재 데이터가 존재하지 않습니다. + + + + + )} ); diff --git a/WEB(FE)/frontend/src/hooks/useSearchInitEffect.js b/WEB(FE)/frontend/src/hooks/useSearchInitEffect.js index f0f865b7..ebd752ae 100644 --- a/WEB(FE)/frontend/src/hooks/useSearchInitEffect.js +++ b/WEB(FE)/frontend/src/hooks/useSearchInitEffect.js @@ -10,7 +10,7 @@ export default function useSearchInitEffect() { const searchSetting = useRecoilValue(searchSettingState); /* TODO searchSetting 을 이용해서 params 넘겨주는 코드 작성 */ useEffect(() => { - if (Object.keys(search.contents).length !== 0) return; + if (!search.contents || Object.keys(search.contents).length !== 0) return; //TODO: API 서버 배포시 수정 async function fetchData() { From 30452c2bf6f2597ebbaeb99c7fe1b9e8bcd1ec59 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 02:59:51 +0000 Subject: [PATCH 02/78] Fix useEffect --- WEB(FE)/frontend/src/pages/RiskReport.js | 30 +++++++++++------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/WEB(FE)/frontend/src/pages/RiskReport.js b/WEB(FE)/frontend/src/pages/RiskReport.js index 60d19069..5fe5afe5 100644 --- a/WEB(FE)/frontend/src/pages/RiskReport.js +++ b/WEB(FE)/frontend/src/pages/RiskReport.js @@ -29,27 +29,23 @@ const RiskReport = (props) => { useEffect(() => { const searchUrl = '/api/nlp/report/'; const exampleSearchUrl = '/static/ReportData.example.json'; - - setPending(true); - if (process.env.REACT_APP_USE_STATIC_RESPONSE == 'True') { - client.get(exampleSearchUrl).then((data) => { - console.log(data.data); - setData(data.data); + async function fetchReport() { + if (process.env.REACT_APP_USE_STATIC_RESPONSE == 'True') { + const response = await client.get(exampleSearchUrl); + setData(response.data); setPending(false); - }); - } else { - client - .post(searchUrl, { + } else { + const response = await client.post(searchUrl, { articleIds: getCart().length ? getCart() : [30, 40, 50], period: 24, time: new Date().toTimeString(), // "uniqueness parameter" - }) - .then((data) => { - console.log(data.data); - setData(data.data); - setPending(false); }); + console.log(response.data); + setData(response.data); + setPending(false); + } } + fetchReport(); }, []); const pdfExportComponent = useRef(null); @@ -91,6 +87,8 @@ const RiskReport = (props) => { loadingScreen ) : error ? ( errorScreen + ) : !data ? ( + '데이터가 없습니다.' ) : ( <> @@ -128,7 +126,7 @@ const RiskReport = (props) => { - {getLineBreakText(data.overview)} + {data.overview ? getLineBreakText(data.overview) : ''} From dfd519d1ffe9f587d2437916b797fda5deb71614 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 03:49:07 +0000 Subject: [PATCH 03/78] Fix error response pending forever --- WEB(BE)/drf/detection_status/views.py | 2 +- .../src/components/DetectionStatus/DetectionTable.js | 1 - WEB(FE)/frontend/src/pages/RiskReport.js | 12 ++++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/WEB(BE)/drf/detection_status/views.py b/WEB(BE)/drf/detection_status/views.py index b207ed02..adc5dc71 100644 --- a/WEB(BE)/drf/detection_status/views.py +++ b/WEB(BE)/drf/detection_status/views.py @@ -831,7 +831,7 @@ def getAnalyzedData(self, articleIds, period): db_result = mongo.find_item(query, "riskout", "analyzed") db_filtered = self.datetimeFormatter([v for _, v in enumerate(db_result)]) if (db_result.count()) else [] - now = datetime.utcnow() + timedelta(hours=9) + now = datetime.utcnow() + timedelta(hours=9) - timedelta(days=4) today_datetime = datetime(now.year, now.month, now.day) today = datetime(now.year, now.month, now.day).strftime('%y-%m-%d') diff --git a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js index 6f729be7..c1a8f4cc 100644 --- a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js +++ b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js @@ -17,7 +17,6 @@ import { import SecretsTableRow from './SecretsTableRow'; import { searchState, useContents } from '../../atoms/searchState'; import { useSessionStorage } from '../../js/util'; -import { useContents } from '../../atoms/searchState'; import useSearchInitEffect from '../../hooks/useSearchInitEffect'; import { useTheme } from '@mui/material/styles'; diff --git a/WEB(FE)/frontend/src/pages/RiskReport.js b/WEB(FE)/frontend/src/pages/RiskReport.js index 6a6f0754..6d818c22 100644 --- a/WEB(FE)/frontend/src/pages/RiskReport.js +++ b/WEB(FE)/frontend/src/pages/RiskReport.js @@ -1,4 +1,4 @@ -import React, { useEffect, useRef } from 'react'; +import { useState, useEffect, useRef } from 'react'; import { Box, Grid, Typography, Skeleton, Divider } from '@mui/material'; import client from '../lib/api/client'; import '../css/fonts.css'; @@ -11,7 +11,6 @@ import Graphs from '../components/RiskReport/Graphs'; import ScrappedArticle from '../components/RiskReport/ScrappedArticle'; import Demo from '../components/Demo'; import { useHistory } from 'react-router'; -import { darkTheme, palette } from '../darkTheme'; const RiskReport = (props) => { const history = useHistory(); @@ -22,9 +21,9 @@ const RiskReport = (props) => { } const [getCart, addCart] = useSessionStorage('riskoutShoppingCart'); - const [dateRange, setDateRange] = React.useState('all'); // for period select - const [data, setData] = React.useState({}); - const [isPending, setPending] = React.useState(true); + const [dateRange, setDateRange] = useState('all'); // for period select + const [data, setData] = useState({}); + const [isPending, setPending] = useState(true); const error = false; useEffect(() => { @@ -36,17 +35,18 @@ const RiskReport = (props) => { setData(response.data); setPending(false); } else { + setPending(true); const response = await client.post(searchUrl, { articleIds: getCart().length ? getCart() : [30, 40, 50], period: 24, time: new Date().toTimeString(), // "uniqueness parameter" }); - console.log(response.data); setData(response.data); setPending(false); } } fetchReport(); + fetchReport(); }, []); const pdfExportComponent = useRef(null); From 53b41444137d466c0abd09512f786bd051352714 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 15:51:58 +0900 Subject: [PATCH 04/78] Update readme.md --- readme.md | 63 +++++++++++++++++++------------------------------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/readme.md b/readme.md index c2111323..b74fb350 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ -# RISKOUT - 국방 리스크 관리 플랫폼 +# RISKOUT - All-in-One 국방 리스크 관리 플랫폼
@@ -46,7 +46,7 @@
  • ➤ 컴퓨터 구성 / 필수 조건 안내 (Prequisites)
  • ➤ 기술 스택 (Techniques Used)
  • @@ -59,23 +59,24 @@

    :monocle_face: 프로젝트 소개

    -> 현재 군대에서는, 군 관련 허위 기사나 인터넷에 유포된 기밀글들을 추려내기 위해, 각종 신문에서 군 관련 기사들을 일일히 오려 내고, 여러 사이트들을 캡처합니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등, 번거로운 작업들을 반복하고 있습니다. -그러다보니 놓치는 사항이 발생하거나 개인적인 편향이 보고서에 포함되는 등의 문제가 발생할 수 있습니다. +> 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대에게 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? > -> 저희 BTS (방탄수병단)은 이 모든 과정을 자동화시켰습니다. RISKOUT은 인공지능으로 유출된 기밀을 찾아주고, 허위기사를 판별하는 플랫폼입니다. 찾은 문제의 글은 사용자가 커스텀 가능한 맞춤형 보고서로 출력됩니다. -이를 통해 정확도 보장, 인력 감축, 속도 향상 등의 효과 를 얻게 됩니다. - +> 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. +그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. +> +> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자.

    :plate_with_cutlery: 기능 설명 (Features)

    **3가지 핵심기능** 은 다음과 같습니다. -* [**`💀 여론 현황 대시보드`**](https://riskout.ithosting.repl.co/) : [여론의 감정 상태](https://namu.wiki/w/%EC%97%AC%EB%A1%A0), [언론 보도](https://namu.wiki/w/%EC%96%B8%EB%A1%A0) 등을 시각화 시켜서 보여주는 대시보드입니다. +* [**`💀 위협 대시보드`**](https://riskout.ithosting.repl.co/): 언론 보도 현황 등을 시각화 시켜서 보여주는 대시보드입니다. * [**`😤 위협 탐지`**](https://riskout.ithosting.repl.co/) : [군사 기밀 유출](https://namu.wiki/w/%EA%B5%B0%EC%82%AC%EA%B8%B0%EB%B0%80), [허위 기사](https://namu.wiki/w/%EA%B0%80%EC%A7%9C%20%EB%89%B4%EC%8A%A4)를 탐지하여 시각화 해줍니다. * [**`📰 맞춤형 보고서 생성`**](https://riskout.ithosting.repl.co/) : 클릭 몇번으로 [보고서](https://namu.wiki/w/%EB%B3%B4%EA%B3%A0%EC%84%9C)를 커스텀 및 생성할 수 있습니다. -

    여론 현황 대시보드

    +

    위협 대시보드

    +> 오늘의 키워드, 기사 현황등 위협을 예측할 수 있을만한 요소들을 시각화하는 대시보드입니다.

    @@ -83,7 +84,7 @@ ### 오늘의 키워드 -> 여론 현황에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 오늘의 키워드에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. 각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 보여주는 [워드 클라우드](https://riskout.ithosting.repl.co)입니다. @@ -94,7 +95,7 @@ > 감정 통계에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. -각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어서 표현한 [막대 차트](https://riskout.ithosting.repl.co)입니다. +각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어서 표현한 막대 차트입니다. ![emopie1](https://user-images.githubusercontent.com/55467050/137932804-a974141b-6da4-4626-8c75-c90d64c1d8f9.PNG) @@ -104,7 +105,7 @@ > 오늘의 트렌드에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. -가장 많이 언급된 3가지 기사를 진짜, 가짜, 의심으로 판별하여 보여줍니다. +그날 가장 많이 언급된 3가지 기사를 선정하여 FactCheck를 통해 진실 추정, 중립 추정, 허위 추정으로 판별 및 분류하여 보여줍니다. ![trend](https://user-images.githubusercontent.com/55467050/137927004-f375f4ca-7548-494f-ac3d-caa087b6563d.PNG) @@ -127,9 +128,8 @@ ### 기밀 유출 탐지 + 허위 기사 탐지 -> 기사 변화량에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. - -[기밀 유출 현황](https://riskout.ithosting.repl.co) 및 [허위 기사](https://riskout.ithosting.repl.co)를 인공지능을 통해 분석하여 탐지해내는 페이지입니다. 인공지능은 탐지한 글들을 기반으로 2차적 검사를 실시하여 기밀어, 인물, 장소를 추출해냅니다. 추출한 항목들은 세부 분석을 위해 *커스텀 필터*로 제공됩니다. +> 탐지 현황에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +기밀 유출 현황 및 허위기사를 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 출처등을 제공합니다. ![detect](https://user-images.githubusercontent.com/55467050/137923976-61f54c5a-aa1a-4258-a27d-a95eb1620c48.gif) @@ -139,28 +139,22 @@ ### 개채 인식 필터(NER Filter) -> 개체 인식에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 개체 인식 필터에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. -기사들중 나라이름을 추출해 내어, 나라별로 특별한 이벤트가 있는지 지도로 보여줍니다. +ㅜ ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif) -

    맞춤형 보고서 생성

    - -> 개체 인식에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +

    자동 보고서 생성

    +> 보고서 생성에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다.

    - ![report_full](https://user-images.githubusercontent.com/55467050/137937761-929347ff-c8a5-4ac1-8608-bfa8da408e5d.PNG) - -* **기밀 유출 보고** : 기밀 유출 현황을 각종 수치로 시각화시킨 브리핑 보드. -* **허위 기사 보고** : 사용자가 선택한 허위 기사 탐지글들을 기반으로 제작된 AI 자동 요약본. -* **허위 기사 개요** : 타임라인으로 구분된 현재까지의 허위 기사 현황. -

    :zap: 프로젝트 사용법 (Getting Started)

    로그인 하신 후: @@ -239,21 +233,6 @@ 5. Move to ```~/WEB/backend/``` and run command ```chmod a+x web.sh``` 6. Run command ```./web.sh``` -## 🚚 로드맵(Road Map) - -RISKOUT에 새로운 기능을 보고 싶으시거나 직접 추가해보고 싶으시면 [이슈를 남겨주세요!](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/new) 아래는 저희가 걸어왔던, 그리고 앞으로 나아갈 계획 및 목표입니다: - -- [x] [SNS Data Crawling](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/115) -- [x] [News Crawling](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/64) -- [x] [Data Visualization](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/41) -- [x] [AI Extractive Summarization](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/1) -- [x] [Named-entity recognition](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/1) -- [x] [Sentiment Classifier](https://github.com/osamhack2021/ai_web_RISKOUT_BTS/issues/1) -- [ ] [100,000+ 웹사이트 크롤링 기능 구현]() -- [ ] [10,000+건의 위협 탐지 및 신고]() -- [ ] [대한민국 전군 RISKOUT 플랫폼 도입]() - -RISkOUT(리스크아웃)의 여정에 동참하고 싶으시다면 "Issue"를 남겨주세요.

    💁🏻‍♀️💁🏻‍♂️ 팀 정보 (Team Information)

    @@ -367,7 +346,7 @@ RISkOUT(리스크아웃)의 여정에 동참하고 싶으시다면 "Issue"를

    📜 저작권 및 사용권 정보 (Copyleft / End User License)

    -프로젝트 RISKOUT은 [MIT License](https://en.wikipedia.org/wiki/MIT_License) 를 따르고 있습니다. +프로젝트 RISKOUT은 MIT License를 따르고 있습니다.
    ![iOS 이미지](https://user-images.githubusercontent.com/55467050/137704748-135d4f74-bbf8-44ef-b366-e9f6f6fbb298.jpg) From 04d53adc04cb1d9520ba3aafa3f271776b6a979d Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 15:53:18 +0900 Subject: [PATCH 05/78] Update readme.md --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index b74fb350..42b0b7f6 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ # RISKOUT - All-in-One 국방 리스크 관리 플랫폼
    - +

     

    @@ -64,7 +64,7 @@ > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자. +> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생한 이유입니다.

    :plate_with_cutlery: 기능 설명 (Features)

    From 92aa56f5736b194fb5d6ec5e45104b3d71ae3ff8 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 15:55:25 +0900 Subject: [PATCH 06/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 42b0b7f6..c144bbff 100644 --- a/readme.md +++ b/readme.md @@ -64,7 +64,7 @@ > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생한 이유입니다. +> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다.

    :plate_with_cutlery: 기능 설명 (Features)

    From d08b01062a22d56413dcc6865a23ee26a032b372 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 15:56:06 +0900 Subject: [PATCH 07/78] Update readme.md --- readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/readme.md b/readme.md index c144bbff..e08c31b5 100644 --- a/readme.md +++ b/readme.md @@ -76,8 +76,6 @@

    위협 대시보드

    -> 오늘의 키워드, 기사 현황등 위협을 예측할 수 있을만한 요소들을 시각화하는 대시보드입니다. -

    From 331fc7e425b32d3316d71a487c85dde7b5aadabb Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:03:11 +0900 Subject: [PATCH 08/78] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index e08c31b5..1cd590b7 100644 --- a/readme.md +++ b/readme.md @@ -78,6 +78,7 @@

    위협 대시보드

    +

    ### 오늘의 키워드 From 3773af13d0c34200152cd038298a7fa70c0a0e52 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:08:07 +0900 Subject: [PATCH 09/78] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 1cd590b7..8745c224 100644 --- a/readme.md +++ b/readme.md @@ -95,6 +95,7 @@ > 감정 통계에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. 각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어서 표현한 막대 차트입니다. +![emopies](https://user-images.githubusercontent.com/55467050/138044572-2d646ec9-1055-43df-8d68-0055744e778a.gif) ![emopie1](https://user-images.githubusercontent.com/55467050/137932804-a974141b-6da4-4626-8c75-c90d64c1d8f9.PNG) From 93a429412f50d4eb66598eb55ffb0870077f53c5 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:11:46 +0900 Subject: [PATCH 10/78] Update readme.md --- readme.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/readme.md b/readme.md index 8745c224..ae354f1f 100644 --- a/readme.md +++ b/readme.md @@ -97,10 +97,6 @@ 각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어서 표현한 막대 차트입니다. ![emopies](https://user-images.githubusercontent.com/55467050/138044572-2d646ec9-1055-43df-8d68-0055744e778a.gif) -![emopie1](https://user-images.githubusercontent.com/55467050/137932804-a974141b-6da4-4626-8c75-c90d64c1d8f9.PNG) - -![emopie](https://user-images.githubusercontent.com/55467050/137927934-77f7da3a-a739-424c-b818-0548e87e3ca4.PNG) - ### 오늘의 트렌드 > 오늘의 트렌드에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. @@ -152,6 +148,7 @@ 사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다.

    +![report](https://user-images.githubusercontent.com/55467050/138045051-024e3bed-7502-4aa2-8eb0-e75cb574c0a3.gif) ![report_full](https://user-images.githubusercontent.com/55467050/137937761-929347ff-c8a5-4ac1-8608-bfa8da408e5d.PNG) From 8e8a641d1f1c88361168b2c1a860805f169b4f63 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:13:26 +0900 Subject: [PATCH 11/78] Update readme.md --- readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index ae354f1f..71756905 100644 --- a/readme.md +++ b/readme.md @@ -148,7 +148,10 @@ 사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다.

    -![report](https://user-images.githubusercontent.com/55467050/138045051-024e3bed-7502-4aa2-8eb0-e75cb574c0a3.gif) + + +![report](https://user-images.githubusercontent.com/55467050/138045273-d5312cdd-6842-492d-8bfe-c77a7a7b6f22.gif) + ![report_full](https://user-images.githubusercontent.com/55467050/137937761-929347ff-c8a5-4ac1-8608-bfa8da408e5d.PNG) From 2b5e1a81c8b196e24f1c068a0c01c2041eb3ef62 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:20:46 +0900 Subject: [PATCH 12/78] Update readme.md --- readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 71756905..fe0f580a 100644 --- a/readme.md +++ b/readme.md @@ -348,5 +348,8 @@ 프로젝트 RISKOUT은 MIT License를 따르고 있습니다. -
    ![iOS 이미지](https://user-images.githubusercontent.com/55467050/137704748-135d4f74-bbf8-44ef-b366-e9f6f6fbb298.jpg) +
    +

    + +

    From 08cb7a8d26c76ae99bb8e739f3a23b8057b97380 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 07:49:41 +0000 Subject: [PATCH 13/78] Fix error: contents.length --- .../DetectionStatus/DetectionTable.js | 83 +++++++++++-------- 1 file changed, 48 insertions(+), 35 deletions(-) diff --git a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js index c1a8f4cc..7eacd296 100644 --- a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js +++ b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js @@ -167,41 +167,54 @@ export default function DetectionTable({ showDetailModal, toggleScrap }) { - - {contents && - (rowsPerPage > 0 - ? contents.slice( - page * rowsPerPage, - page * rowsPerPage + rowsPerPage - ) - : contents - ).map((article, id) => ( - - ))} - {emptyRows > 0 && ( - - - - )} - - - - - - + {contents || isDone ? ( + <> + + {(rowsPerPage > 0 + ? contents.slice( + page * rowsPerPage, + page * rowsPerPage + rowsPerPage + ) + : contents + ).map((article, id) => ( + + ))} + {emptyRows > 0 && ( + + + + )} + + + + + + + + ) : ( + + + + 현재 데이터가 존재하지 않습니다. + + + + + )} ); From f0311c4b9e52e1e8c1c99d525cf376eaade08c14 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:57:25 +0900 Subject: [PATCH 14/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index fe0f580a..4d29dbea 100644 --- a/readme.md +++ b/readme.md @@ -59,7 +59,7 @@

    :monocle_face: 프로젝트 소개

    -> 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대에게 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? +> 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대의 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? > > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. From 95eacc31b4566d5f386290267eb645a1c29946b0 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:59:13 +0900 Subject: [PATCH 15/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 4d29dbea..d35c9e67 100644 --- a/readme.md +++ b/readme.md @@ -64,7 +64,7 @@ > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 찾아주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. +> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 식별해주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다.

    :plate_with_cutlery: 기능 설명 (Features)

    From f408c593c9e20dac8600e1e5e9f341d9cebe5db5 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 08:10:24 +0000 Subject: [PATCH 16/78] Press enter can do submit! --- .../src/components/Modal/LoginModal.js | 126 +++++++++--------- 1 file changed, 65 insertions(+), 61 deletions(-) diff --git a/WEB(FE)/frontend/src/components/Modal/LoginModal.js b/WEB(FE)/frontend/src/components/Modal/LoginModal.js index 7ea5912a..fe0e7205 100644 --- a/WEB(FE)/frontend/src/components/Modal/LoginModal.js +++ b/WEB(FE)/frontend/src/components/Modal/LoginModal.js @@ -34,6 +34,30 @@ const LoginModal = (props) => { setUserPassword(e.target.value); }; + const onSubmit = (e) => { + e.preventDefault(); + fetch('/api/user/login/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data), + }) + .then((res) => res.json()) + .then((json) => { + if (json.token) { + props.userHasAuthenticated(true, data.username, json.token); + alert('환영합니다.' + username + '님.'); + history.push('/presstrends'); + props.setModal(true); + console.log(json); + } else { + alert('아이디 또는 비밀번호를 확인해주세요.'); + } + }) + .catch((error) => alert(error)); + }; + const paperStyle = { padding: '60px 68px 40px', width: 450, @@ -57,69 +81,49 @@ const LoginModal = (props) => {

    로그인

    - - - - - - - - {/* */} - - - - + + + + + + {/* */} + + + + + From 31b1b483a3875b1dc56de3fd238a5e91a1f543a3 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 08:11:20 +0000 Subject: [PATCH 17/78] T o o M a n y P r o b l e m --- WEB(FE)/frontend/src/pages/RiskReport.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WEB(FE)/frontend/src/pages/RiskReport.js b/WEB(FE)/frontend/src/pages/RiskReport.js index 6d818c22..e6e11c47 100644 --- a/WEB(FE)/frontend/src/pages/RiskReport.js +++ b/WEB(FE)/frontend/src/pages/RiskReport.js @@ -30,12 +30,12 @@ const RiskReport = (props) => { const searchUrl = '/api/nlp/report/'; const exampleSearchUrl = '/static/ReportData.example.json'; async function fetchReport() { + setPending(true); if (process.env.REACT_APP_USE_STATIC_RESPONSE == 'True') { const response = await client.get(exampleSearchUrl); setData(response.data); setPending(false); } else { - setPending(true); const response = await client.post(searchUrl, { articleIds: getCart().length ? getCart() : [30, 40, 50], period: 24, @@ -46,7 +46,6 @@ const RiskReport = (props) => { } } fetchReport(); - fetchReport(); }, []); const pdfExportComponent = useRef(null); From 90ef2958462fb79bf50df3ff406a85e836d64123 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 08:29:27 +0000 Subject: [PATCH 18/78] Client --- WEB(FE)/frontend/src/pages/RiskReport.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/WEB(FE)/frontend/src/pages/RiskReport.js b/WEB(FE)/frontend/src/pages/RiskReport.js index f262cc91..4ea5ecf0 100644 --- a/WEB(FE)/frontend/src/pages/RiskReport.js +++ b/WEB(FE)/frontend/src/pages/RiskReport.js @@ -1,7 +1,6 @@ import { useState, useEffect, useRef } from 'react'; import { Box, Grid, Typography, Skeleton, Divider } from '@mui/material'; -// import client from '../lib/api/client'; -import axios from 'axios' +import client from '../lib/api/client'; import '../css/fonts.css'; import ExclusiveSelect from '../components/RiskReport/ExclusiveSelect'; @@ -40,10 +39,10 @@ const RiskReport = (props) => { articleIds: getCart().length ? getCart() : [30, 40, 50], period: 24, time: new Date().toTimeString(), // "uniqueness parameter" - }) + }); await setData(data.data); await setPending(false); - } + }; loadData(); }, []); @@ -161,7 +160,9 @@ const RiskReport = (props) => { - {data.isDone ? getLineBreakText(data.overview) : '현재 데이터가 존재하지 않습니다.'} + {data.isDone + ? getLineBreakText(data.overview) + : '현재 데이터가 존재하지 않습니다.'} From f10cb116d9014189c8e8c73908fe1df9e0492f89 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:03:25 +0900 Subject: [PATCH 19/78] Update readme.md --- readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/readme.md b/readme.md index d35c9e67..d2617534 100644 --- a/readme.md +++ b/readme.md @@ -77,7 +77,6 @@

    위협 대시보드

    -

    From fe89a34d4a7b65021798bf4f2b99e66b215333be Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:12:32 +0900 Subject: [PATCH 20/78] Update readme.md --- readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/readme.md b/readme.md index d2617534..77ab88b6 100644 --- a/readme.md +++ b/readme.md @@ -87,6 +87,7 @@ 각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 보여주는 [워드 클라우드](https://riskout.ithosting.repl.co)입니다. ![words](https://user-images.githubusercontent.com/55467050/137931048-52ce6c3e-ca33-4845-9af4-b282a3ecc6c5.PNG) +![cloud](https://user-images.githubusercontent.com/55467050/138074003-c07d08ae-145a-44d6-84d7-4aeb85e1a7cb.gif) ### 감정 통계 차트 @@ -136,8 +137,6 @@ > 개체 인식 필터에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. -ㅜ - ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif) From fffddc78fa915f5921292f0a48c6228b7e771760 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:14:23 +0900 Subject: [PATCH 21/78] Update readme.md --- readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/readme.md b/readme.md index 77ab88b6..1b32c501 100644 --- a/readme.md +++ b/readme.md @@ -87,8 +87,6 @@ 각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 보여주는 [워드 클라우드](https://riskout.ithosting.repl.co)입니다. ![words](https://user-images.githubusercontent.com/55467050/137931048-52ce6c3e-ca33-4845-9af4-b282a3ecc6c5.PNG) -![cloud](https://user-images.githubusercontent.com/55467050/138074003-c07d08ae-145a-44d6-84d7-4aeb85e1a7cb.gif) - ### 감정 통계 차트 From accc49481fcf9771f24d80f90c56c66e0474197e Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:18:47 +0900 Subject: [PATCH 22/78] Update readme.md --- readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 1b32c501..d72da503 100644 --- a/readme.md +++ b/readme.md @@ -2,10 +2,9 @@ # RISKOUT - All-in-One 국방 리스크 관리 플랫폼
    - +

     

    - From fc6851f4160f7a90b72ee07655144f7bc5c18094 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:19:11 +0900 Subject: [PATCH 23/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index d72da503..f89d4d28 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ -# RISKOUT - All-in-One 국방 리스크 관리 플랫폼 +# RISKOUT - 국방 리스크 관리 플랫폼
    From d7ed539c2b4a5bf0aa6329f00fb64ff73aaa21c1 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:24:59 +0900 Subject: [PATCH 24/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f89d4d28..1854e5dc 100644 --- a/readme.md +++ b/readme.md @@ -23,7 +23,7 @@ ### Quick Links - + From 6daef8c120a4126baf071cd245027edf87fd2518 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:27:01 +0900 Subject: [PATCH 25/78] Create readme.md --- readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/readme.md b/readme.md index 1854e5dc..6c6aa60f 100644 --- a/readme.md +++ b/readme.md @@ -22,16 +22,16 @@ ### Quick Links - - + + - - + +
    From 95c088aee85ffaf6ba4951e1c87196356cca606c Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:28:16 +0900 Subject: [PATCH 26/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 6c6aa60f..5d888e65 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ - + From 1c562ed16c77a96eff9b8246ba09ff700892fd6e Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:29:13 +0900 Subject: [PATCH 27/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 5d888e65..e5351711 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ - + From 55fb42521162486374f238d5cb29d58925e26ab6 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:30:15 +0900 Subject: [PATCH 28/78] Update readme.md --- readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index e5351711..33018c3a 100644 --- a/readme.md +++ b/readme.md @@ -40,12 +40,12 @@ ## :book: 목차 (Table of Contents)
      -
    1. ➤ 프로젝트 소개 (Intro)
    2. -
    3. ➤ 기능 설명 (Features)
    4. + ➤ 프로젝트 소개 (Intro) + ➤ 기능 설명 (Features)
    5. ➤ 컴퓨터 구성 / 필수 조건 안내 (Prequisites)
    6. ➤ 기술 스택 (Techniques Used)
    7. From 94fbaf5b9fe8a9f773379e33c39de4f3acd6a5a1 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:38:29 +0900 Subject: [PATCH 29/78] Update readme.md --- readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index 33018c3a..e5351711 100644 --- a/readme.md +++ b/readme.md @@ -40,12 +40,12 @@ ## :book: 목차 (Table of Contents)
        - ➤ 프로젝트 소개 (Intro) - ➤ 기능 설명 (Features) +
      1. ➤ 프로젝트 소개 (Intro)
      2. +
      3. ➤ 기능 설명 (Features)
      4. ➤ 컴퓨터 구성 / 필수 조건 안내 (Prequisites)
      5. ➤ 기술 스택 (Techniques Used)
      6. From 49767ba0a9ac00a6ff9ba0c8240f7747597f9a86 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:49:30 +0900 Subject: [PATCH 30/78] Update readme.md --- readme.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index e5351711..e723dfb5 100644 --- a/readme.md +++ b/readme.md @@ -43,7 +43,7 @@
      7. ➤ 프로젝트 소개 (Intro)
      8. ➤ 기능 설명 (Features)
      9. @@ -118,8 +118,7 @@ ![num_articles](https://user-images.githubusercontent.com/55467050/137926297-1c4b6417-4507-49e1-8f94-09cde4b437f4.PNG) - -### 기밀 유출 탐지 + 허위 기사 탐지 +

        위협 탐지

        > 탐지 현황에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. 기밀 유출 현황 및 허위기사를 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 출처등을 제공합니다. From e35caf6e91a81f55c92298f7c934c3f14b1cbdd9 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:55:24 +0900 Subject: [PATCH 31/78] Update readme.md --- readme.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index e723dfb5..74ee0c23 100644 --- a/readme.md +++ b/readme.md @@ -182,10 +182,13 @@ ![techstack](https://user-images.githubusercontent.com/55467050/136777598-e5134090-7747-4b5a-9b08-57c111521d6b.PNG) ### AI +| Model Accuracy | Train | Validation | Test | +|----------------|-------|------------|------| +| LSTM | 0.9774 | 0.98381 | 0.7544 | +| SenCNN | 0.9624 | 0.8016 | 0.7827 | +| BERT | 0.9662 | 0.8299 | 0.8070 | -- [Pytorch](https://pytorch.org/) 라이브러리를 통한 딥러닝 빌드: - - [`Transformers`](https://huggingface.co/transformers/) — NLP모델의 아키텍처 제공. - - [`FastAPI`](https://fastapi.tiangolo.com/) — AI 기능 API 구현. +- 세 모델 전부 Early Stopping 적용 - [Colab](https://colab.research.google.com/)으로 AI 모델 학습: - [`KoBERT`](https://github.com/SKTBrain/KoBERT) — 감성분석, 가짜뉴스판별, 보고서요약에 사용. - [`DistilKoBERT`](https://github.com/monologg/DistilKoBERT) — Named Entity Recognition(개채명인식)에 사용. @@ -194,6 +197,9 @@ - [`Dacon 문서요약`](https://dacon.io/competitions/official/235671/data) — 한국어 문서 추출요약에 사용한 데이터셋. - [`SNU Factcheck`](https://factcheck.snu.ac.kr/) — 가짜뉴스 판별에 사용한 데이터셋. - [`Naver NLP Challenge 2018`](https://github.com/monologg/naver-nlp-challenge-2018) — Named Entity Recognition(개채명인식)에 사용한 데이터셋. +- [Pytorch](https://pytorch.org/) 라이브러리를 통한 딥러닝 빌드: + - [`Transformers`](https://huggingface.co/transformers/) — NLP모델의 아키텍처 제공. + - [`FastAPI`](https://fastapi.tiangolo.com/) — AI 기능 API 구현. ### Backend From 1636ce31599be5290cace798ba50ca3ed38fd484 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 19:59:15 +0900 Subject: [PATCH 32/78] Update readme.md --- readme.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/readme.md b/readme.md index 74ee0c23..ba3e7da3 100644 --- a/readme.md +++ b/readme.md @@ -182,13 +182,6 @@ ![techstack](https://user-images.githubusercontent.com/55467050/136777598-e5134090-7747-4b5a-9b08-57c111521d6b.PNG) ### AI -| Model Accuracy | Train | Validation | Test | -|----------------|-------|------------|------| -| LSTM | 0.9774 | 0.98381 | 0.7544 | -| SenCNN | 0.9624 | 0.8016 | 0.7827 | -| BERT | 0.9662 | 0.8299 | 0.8070 | - -- 세 모델 전부 Early Stopping 적용 - [Colab](https://colab.research.google.com/)으로 AI 모델 학습: - [`KoBERT`](https://github.com/SKTBrain/KoBERT) — 감성분석, 가짜뉴스판별, 보고서요약에 사용. - [`DistilKoBERT`](https://github.com/monologg/DistilKoBERT) — Named Entity Recognition(개채명인식)에 사용. From 52e8bb1123a008fab5be13495e45ad824233c776 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:00:13 +0900 Subject: [PATCH 33/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index ba3e7da3..7d4c7250 100644 --- a/readme.md +++ b/readme.md @@ -47,10 +47,10 @@
      10. 위협 탐지
      11. 자동 보고서 생성
      12. +
      13. ➤ 프로젝트 사용법 (Getting Started)
      14. ➤ 컴퓨터 구성 / 필수 조건 안내 (Prequisites)
      15. ➤ 기술 스택 (Techniques Used)
      16. ➤ 설치 안내 (Installation Process)
      17. -
      18. ➤ 프로젝트 사용법 (Getting Started)
      19. ➤ 팀 정보 (Team Information)
      20. ➤ 저작권 및 사용권 정보 (Copyleft / End User License)
      From 26b4561a4e872f72050a1b8a847f539c2c718d5c Mon Sep 17 00:00:00 2001 From: dev-taewon-kim <85913822+dev-taewon-kim@users.noreply.github.com> Date: Wed, 20 Oct 2021 11:00:14 +0000 Subject: [PATCH 34/78] =?UTF-8?q?*=20=EC=98=A4=EB=8A=98=EC=9D=98=20?= =?UTF-8?q?=EB=89=B4=EC=8A=A4=EB=8A=94=20=EC=A0=84=EB=B6=80=20=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=EB=A7=81=20=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB(BE)/analyzer/analyzer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WEB(BE)/analyzer/analyzer.py b/WEB(BE)/analyzer/analyzer.py index a19f84ed..3927f69c 100644 --- a/WEB(BE)/analyzer/analyzer.py +++ b/WEB(BE)/analyzer/analyzer.py @@ -312,7 +312,7 @@ def main(): if tup[9] not in date_list: date_list.append(tup[9]) - for date in date_list: + for date in date_list[:len(date_list) - 1]: cur.execute("SELECT * FROM CrawlContents WHERE isAnalyzed = 0 AND category = 'news' AND created_at = ?", (date,)) ranked_list = dataRanker(cur.fetchall()) @@ -321,7 +321,8 @@ def main(): cur.execute("UPDATE CrawlContents SET isAnalyzed = 1 WHERE isAnalyzed = 0 AND category = 'news' AND created_at = ?", (date,)) conn.commit() - cur.execute("SELECT * FROM CrawlContents WHERE isAnalyzed = 0") # news는 이미 analyzed 되었기 때문에 sns와 community만 남는다 + # 오늘 이전의 news는 이미 analyzed 되었기 때문에 "크롤링 시점 오늘 뉴스 전부", sns, community가 남는다 + cur.execute("SELECT * FROM CrawlContents WHERE isAnalyzed = 0") important_data_list.extend(cur.fetchall()) From d14d84528c91d162486a6d81c26e5f007309c77b Mon Sep 17 00:00:00 2001 From: dev-taewon-kim <85913822+dev-taewon-kim@users.noreply.github.com> Date: Wed, 20 Oct 2021 11:00:33 +0000 Subject: [PATCH 35/78] =?UTF-8?q?*=20=ED=81=AC=EB=A1=A4=EB=A7=81=20?= =?UTF-8?q?=EB=B3=B8=EB=AC=B8=20=EA=B8=B8=EC=9D=B4=20=EC=A0=9C=ED=95=9C=20?= =?UTF-8?q?=EC=99=84=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB(BE)/crawler/crawler/model/naver/NaverNewsSite.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WEB(BE)/crawler/crawler/model/naver/NaverNewsSite.py b/WEB(BE)/crawler/crawler/model/naver/NaverNewsSite.py index 579aef9d..969e2206 100644 --- a/WEB(BE)/crawler/crawler/model/naver/NaverNewsSite.py +++ b/WEB(BE)/crawler/crawler/model/naver/NaverNewsSite.py @@ -75,7 +75,7 @@ def get_articleID(self, contents_url): return article_id def contentCheck(self, content): - if(len(content.body) < 800 or len(content.body) > 2000): + if(len(content.body) < 500 or len(content.body) > 2000): raise length_error return From d547925f066c8a953eadeb348a2b6643873cbea6 Mon Sep 17 00:00:00 2001 From: dev-taewon-kim <85913822+dev-taewon-kim@users.noreply.github.com> Date: Wed, 20 Oct 2021 11:00:57 +0000 Subject: [PATCH 36/78] =?UTF-8?q?*=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85?= =?UTF-8?q?=20=ED=81=B4=EB=A6=AD=20=EC=8B=9C=20alert=20=EB=AC=B8=EA=B5=AC?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB(FE)/frontend/src/components/Modal/LoginModal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WEB(FE)/frontend/src/components/Modal/LoginModal.js b/WEB(FE)/frontend/src/components/Modal/LoginModal.js index f76adb21..fe8abb6e 100644 --- a/WEB(FE)/frontend/src/components/Modal/LoginModal.js +++ b/WEB(FE)/frontend/src/components/Modal/LoginModal.js @@ -52,7 +52,7 @@ const LoginModal = (props) => { }; const onClick = () => { - alert('데모 버전에서는 제공하지 않는 기능입니다') + alert('베타 버전은 사전에 승인된 인원만 사용 가능합니다.') }; const fetchLoginApi = (e) => { From 7ea28537f789867cd3ec3cc08dfb1929328f61f3 Mon Sep 17 00:00:00 2001 From: dev-taewon-kim <85913822+dev-taewon-kim@users.noreply.github.com> Date: Wed, 20 Oct 2021 11:01:09 +0000 Subject: [PATCH 37/78] =?UTF-8?q?*=20Snackbar=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB(FE)/frontend/src/pages/DetectionStatus.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WEB(FE)/frontend/src/pages/DetectionStatus.js b/WEB(FE)/frontend/src/pages/DetectionStatus.js index 86fe4852..61301c62 100644 --- a/WEB(FE)/frontend/src/pages/DetectionStatus.js +++ b/WEB(FE)/frontend/src/pages/DetectionStatus.js @@ -67,7 +67,7 @@ export default function DetectionStatus() { } else { removeCart(_id); message = article.title ? article.title : 'Twitter Article'; - message = 'Removed article | ' + article.title; + message = 'Removed article | ' + message; variant = 'default'; } enqueueSnackbar(message, { From 8160a57c8c0a00c32726b1a00339aa2d6c0b55ed Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:01:18 +0900 Subject: [PATCH 38/78] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 7d4c7250..799c86ae 100644 --- a/readme.md +++ b/readme.md @@ -341,6 +341,7 @@ 프로젝트 RISKOUT은 MIT License를 따르고 있습니다. +

      From 1aaa9fd3586332137aa3d686aa6c8f7d47631deb Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:02:10 +0900 Subject: [PATCH 39/78] Create README.md --- AI(BE)/riskout/extractive/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 AI(BE)/riskout/extractive/README.md diff --git a/AI(BE)/riskout/extractive/README.md b/AI(BE)/riskout/extractive/README.md new file mode 100644 index 00000000..79022b15 --- /dev/null +++ b/AI(BE)/riskout/extractive/README.md @@ -0,0 +1,10 @@ +Extractive Summarization +======================== + +## Gensim summarizer? +- Summarizing is based on ranks of text sentences using a variation of the TextRank algorithm. + + +## References +- [RaRe-Technologies/gensim](https://github.com/RaRe-Technologies/gensim) + - [Variations of the Similarity Function of TextRank for Automated Summarization, 2016](https://arxiv.org/abs/1602.03606) From a342d05c493b1fb206c6c4c3644abe12337d343f Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:02:37 +0900 Subject: [PATCH 40/78] Create README.md --- AI(BE)/riskout/fakenews/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 AI(BE)/riskout/fakenews/README.md diff --git a/AI(BE)/riskout/fakenews/README.md b/AI(BE)/riskout/fakenews/README.md new file mode 100644 index 00000000..2293a8c0 --- /dev/null +++ b/AI(BE)/riskout/fakenews/README.md @@ -0,0 +1,19 @@ +Fake News Classifier +======================== +## Model +| Model Accuracy | Train | Validation | Test | +|----------------|-------|------------|------| +| LSTM | 0.9774 | 0.98381 | 0.7544 | +| SenCNN | 0.9624 | 0.8016 | 0.7827 | +| BERT | 0.9662 | 0.8299 | 0.8070 | + +- 세 개 모델 모두 Early Stopping 을 적용한 결과입니다. + +## Dataset +데이터셋은 [SNU factcheck](https://factcheck.snu.ac.kr/)를 크롤링하여 사실, 거짓으로 라벨링하였음. +거짓 데이터셋의 양이 더 많아서 네이버 뉴스에서 추가로 데이터를 모아 두 라벨링된 데이터의 크기가 같게 함. + +## References +- [A Study on Korean Fake news Detection Model Using Word Embedding, 2020](https://www.koreascience.or.kr/article/CFKO202022449680088.pdf) +- [Research Analysis in Automatic Fake News Detection, 2019](http://hiai.co.kr/wp-content/uploads/2019/12/%EB%85%BC%EB%AC%B8%EC%A6%9D%EB%B9%99_2019_02.pdf) + From 547a28a480ee4ddf23ab41369e0d70cb352313d2 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:12:53 +0900 Subject: [PATCH 41/78] Update readme.md --- readme.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/readme.md b/readme.md index 799c86ae..670e07be 100644 --- a/readme.md +++ b/readme.md @@ -60,18 +60,18 @@ > 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대의 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? > -> 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리하여 대응팀한테 넘기는 등 고된 작업들을 반복하고 계십니다. -그러다보니 놓치는 일이 발생하거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. +> 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 계십니다. +그러다보니 놓치는 일이 발생하거나, 대응이 늦어지거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위글등의 악성글들을 자동으로 식별해주고 정리해주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. +> 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있도록 도와주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다.

      :plate_with_cutlery: 기능 설명 (Features)

      **3가지 핵심기능** 은 다음과 같습니다. -* [**`💀 위협 대시보드`**](https://riskout.ithosting.repl.co/): 언론 보도 현황 등을 시각화 시켜서 보여주는 대시보드입니다. -* [**`😤 위협 탐지`**](https://riskout.ithosting.repl.co/) : [군사 기밀 유출](https://namu.wiki/w/%EA%B5%B0%EC%82%AC%EA%B8%B0%EB%B0%80), [허위 기사](https://namu.wiki/w/%EA%B0%80%EC%A7%9C%20%EB%89%B4%EC%8A%A4)를 탐지하여 시각화 해줍니다. -* [**`📰 맞춤형 보고서 생성`**](https://riskout.ithosting.repl.co/) : 클릭 몇번으로 [보고서](https://namu.wiki/w/%EB%B3%B4%EA%B3%A0%EC%84%9C)를 커스텀 및 생성할 수 있습니다. +* [**`💀 위협 대시보드`**](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a): 여론의 감정 상태, 언론 보도 현황등을 시각화해주는 대시보드입니다. +* [**`😤 위협 탐지`**](https://riskout.ithosting.repl.co/) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지 입니다. +* [**`📰 맞춤형 보고서 생성`**](https://riskout.ithosting.repl.co/) : 클릭 몇번만으로 커스텀 가능한 위협 보고서를 자동으로 생성해줍니다.

      위협 대시보드

      From fca277a5b9b7c298039b294ae0c48e4efeccee0a Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:31:59 +0900 Subject: [PATCH 42/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 670e07be..79d3a82c 100644 --- a/readme.md +++ b/readme.md @@ -26,7 +26,7 @@ - + From 73956e201c524f7c383840cb40088b0b99e03a04 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:34:40 +0900 Subject: [PATCH 43/78] Update readme.md --- readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index 79d3a82c..36a07300 100644 --- a/readme.md +++ b/readme.md @@ -45,7 +45,7 @@
    8. ➤ 프로젝트 사용법 (Getting Started)
    9. ➤ 컴퓨터 구성 / 필수 조건 안내 (Prequisites)
    10. @@ -70,8 +70,8 @@ **3가지 핵심기능** 은 다음과 같습니다. * [**`💀 위협 대시보드`**](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a): 여론의 감정 상태, 언론 보도 현황등을 시각화해주는 대시보드입니다. -* [**`😤 위협 탐지`**](https://riskout.ithosting.repl.co/) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지 입니다. -* [**`📰 맞춤형 보고서 생성`**](https://riskout.ithosting.repl.co/) : 클릭 몇번만으로 커스텀 가능한 위협 보고서를 자동으로 생성해줍니다. +* [**`😤 위협 탐지`**](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지 입니다. +* [**`📰 보고서 생성`**](https://navycert.notion.site/2726ca50f1ac4d0aae28792aa8ae117e) : 클릭 몇번만으로 커스텀 가능한 위협 보고서를 자동으로 생성해줍니다.

      위협 대시보드

      From a1404a0aeb4e9ab16f6a709d6073f58e6a5ee77f Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:52:06 +0900 Subject: [PATCH 44/78] Update readme.md --- readme.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/readme.md b/readme.md index 36a07300..d1c408f7 100644 --- a/readme.md +++ b/readme.md @@ -81,22 +81,23 @@ ### 오늘의 키워드 -> 오늘의 키워드에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 오늘의 키워드에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 보여주는 [워드 클라우드](https://riskout.ithosting.repl.co)입니다. +각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 시각화한 워드 클라우드 입니다. ![words](https://user-images.githubusercontent.com/55467050/137931048-52ce6c3e-ca33-4845-9af4-b282a3ecc6c5.PNG) ### 감정 통계 차트 -> 감정 통계에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 감정 통계에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. + +각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어 표현한 차트들 입니다. -각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어서 표현한 막대 차트입니다. ![emopies](https://user-images.githubusercontent.com/55467050/138044572-2d646ec9-1055-43df-8d68-0055744e778a.gif) ### 오늘의 트렌드 -> 오늘의 트렌드에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 오늘의 트렌드에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. 그날 가장 많이 언급된 3가지 기사를 선정하여 FactCheck를 통해 진실 추정, 중립 추정, 허위 추정으로 판별 및 분류하여 보여줍니다. @@ -104,24 +105,24 @@ ### 나라별 이벤트 -> 나라별 이벤트에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 나라별 이벤트에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -기사들중 나라이름을 추출해 내어, 나라별로 특별한 이벤트가 있는지 지도로 보여줍니다. +국제 기사들을 분석해 국가별 이벤트 트래픽을 보여주는 지도입니다. ![events](https://user-images.githubusercontent.com/55467050/137927295-facce426-7fab-44a5-8dc3-e7f02f850586.PNG) ### 기사 변화량 -> 기사 변화량에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 기사 변화량에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -최근 기사량과 대조하여 급격하게 기사량의 변화가 있었는지 보여주는 기사 변화량 차트입니다. +최근 기사량들을 대조하여 기사량의 변화도를 시각화한 차트입니다. ![num_articles](https://user-images.githubusercontent.com/55467050/137926297-1c4b6417-4507-49e1-8f94-09cde4b437f4.PNG)

      위협 탐지

      -> 탐지 현황에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. -기밀 유출 현황 및 허위기사를 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 출처등을 제공합니다. +> 탐지 현황에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. +기밀 유출 및 허위기사등의 악성글들을 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 출처등을 제공합니다. ![detect](https://user-images.githubusercontent.com/55467050/137923976-61f54c5a-aa1a-4258-a27d-a95eb1620c48.gif) From dc7cb6403e1506c209fe4c92167da9155f9104dd Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 20:58:53 +0900 Subject: [PATCH 45/78] Update readme.md --- readme.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/readme.md b/readme.md index d1c408f7..cccd4c16 100644 --- a/readme.md +++ b/readme.md @@ -132,24 +132,22 @@ ### 개채 인식 필터(NER Filter) -> 개체 인식 필터에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 개체 인식 필터에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif) -

      자동 보고서 생성

      -> 보고서 생성에 대한 세부적인 내용은 [여기](https://riskout.ithosting.repl.co)에서 확인하실 수 있습니다. +> 보고서 생성에 대한 세부적인 내용은 [여기](https://navycert.notion.site/2726ca50f1ac4d0aae28792aa8ae117e)에서 확인하실 수 있습니다. 사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다.

      - ![report](https://user-images.githubusercontent.com/55467050/138045273-d5312cdd-6842-492d-8bfe-c77a7a7b6f22.gif) - ![report_full](https://user-images.githubusercontent.com/55467050/137937761-929347ff-c8a5-4ac1-8608-bfa8da408e5d.PNG) +

      :zap: 프로젝트 사용법 (Getting Started)

      로그인 하신 후: @@ -161,7 +159,7 @@ *축하해요!* *RISKOUT*의 유저가 되셨습니다. 이제 사용하실 수 있습니다! 🎉 -- 📺 Full 영상: https://riskout.ithosting.repl.co +- 📺 Full 영상: https://www.youtube.com/watch?v=Lwg-OQIIvGA

      :fork_and_knife: 컴퓨터 구성 / 필수 조건 안내 (Prerequisites)

      :earth_asia: Browser

      @@ -342,6 +340,7 @@ 프로젝트 RISKOUT은 MIT License를 따르고 있습니다. +


      From ec38c302d0b1f0c809242b1d5d5567698e22ce49 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:04:55 +0900 Subject: [PATCH 46/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index cccd4c16..efde3ce9 100644 --- a/readme.md +++ b/readme.md @@ -61,7 +61,7 @@ > 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대의 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? > > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 계십니다. -그러다보니 놓치는 일이 발생하거나, 대응이 늦어지거나, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. +그러다보니 놓치는 일이 발생하거나, 대응이 늦어지는 일이 발생할 수 있습니다. 게다가, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > > 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있도록 도와주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. From 8504bb0d9d9266eddbc3e3752ad35e265194f17f Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:10:36 +0900 Subject: [PATCH 47/78] Update readme.md --- readme.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index efde3ce9..167e639c 100644 --- a/readme.md +++ b/readme.md @@ -67,7 +67,7 @@

      :plate_with_cutlery: 기능 설명 (Features)

      -**3가지 핵심기능** 은 다음과 같습니다. +**3가지 핵심기능**은 다음과 같습니다. * [**`💀 위협 대시보드`**](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a): 여론의 감정 상태, 언론 보도 현황등을 시각화해주는 대시보드입니다. * [**`😤 위협 탐지`**](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지 입니다. @@ -122,12 +122,10 @@

      위협 탐지

      > 탐지 현황에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. -기밀 유출 및 허위기사등의 악성글들을 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 출처등을 제공합니다. - -![detect](https://user-images.githubusercontent.com/55467050/137923976-61f54c5a-aa1a-4258-a27d-a95eb1620c48.gif) - +기밀 유출 및 허위기사등의 악성글들을 인공지능을 통해 자동으로 분석하여 탐지합니다. 이후 빠르게 대응할수 있도록 요약된 내용 및 글의 출처 등을 제공합니다. +![detect](https://user-images.githubusercontent.com/55467050/137923976-61f54c5a-aa1a-4258-a27d-a95eb1620c48.gif) ### 개채 인식 필터(NER Filter) From 8224d2e96e49119a3565f4da84ce953bdd863772 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:17:08 +0900 Subject: [PATCH 48/78] Update readme.md --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 167e639c..f6b69ebe 100644 --- a/readme.md +++ b/readme.md @@ -128,10 +128,12 @@ ![detect](https://user-images.githubusercontent.com/55467050/137923976-61f54c5a-aa1a-4258-a27d-a95eb1620c48.gif) -### 개채 인식 필터(NER Filter) +### 개체 인식 필터(NER Filter) > 개체 인식 필터에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. +개체명 인식(Named Entity Recognition) 기술로 사람, 조직, 시간 등의 유형들을 인식, 보다 세부적인 분석을 도와주는 검색 필터를 제공합니다. + ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif)

      자동 보고서 생성

      From fdbe7731cb7fef13dde82b1169784ca3763faa8a Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:17:54 +0900 Subject: [PATCH 49/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f6b69ebe..b0696cd1 100644 --- a/readme.md +++ b/readme.md @@ -132,7 +132,7 @@ > 개체 인식 필터에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. -개체명 인식(Named Entity Recognition) 기술로 사람, 조직, 시간 등의 유형들을 인식, 보다 세부적인 분석을 도와주는 검색 필터를 제공합니다. +개체명 인식(Named Entity Recognition) 기술로 사람, 조직, 시간 등의 유형들을 인식, 보다 세부적인 분석을 도와주는 검색 필터로 제공합니다. ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif) From 753f12449f990912d6793494d7650908a4149aaa Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:20:10 +0900 Subject: [PATCH 50/78] Update readme.md --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index b0696cd1..ac9bca6f 100644 --- a/readme.md +++ b/readme.md @@ -132,13 +132,14 @@ > 개체 인식 필터에 대한 세부적인 내용은 [여기](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d)에서 확인하실 수 있습니다. -개체명 인식(Named Entity Recognition) 기술로 사람, 조직, 시간 등의 유형들을 인식, 보다 세부적인 분석을 도와주는 검색 필터로 제공합니다. +개체명 인식(Named Entity Recognition) 기술로 사람, 조직, 시간 등의 유형들을 추출, 보다 세부적인 분석을 할 수 있게 도와주는 검색 필터로 제공합니다. ![ner](https://user-images.githubusercontent.com/55467050/137922056-ff4942aa-feba-4a8d-b1c0-76106321b10f.gif)

      자동 보고서 생성

      > 보고서 생성에 대한 세부적인 내용은 [여기](https://navycert.notion.site/2726ca50f1ac4d0aae28792aa8ae117e)에서 확인하실 수 있습니다. + 사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다.

      From f3bc0938c23ae083b8506e00ee01c10670d64472 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:21:43 +0900 Subject: [PATCH 51/78] Update readme.md --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index ac9bca6f..337ae834 100644 --- a/readme.md +++ b/readme.md @@ -184,12 +184,12 @@ ### AI - [Colab](https://colab.research.google.com/)으로 AI 모델 학습: - [`KoBERT`](https://github.com/SKTBrain/KoBERT) — 감성분석, 가짜뉴스판별, 보고서요약에 사용. - - [`DistilKoBERT`](https://github.com/monologg/DistilKoBERT) — Named Entity Recognition(개채명인식)에 사용. + - [`DistilKoBERT`](https://github.com/monologg/DistilKoBERT) — Named Entity Recognition(개체명인식)에 사용. - 사용한 데이터셋: - [`Naver-nsmc`](https://github.com/e9t/nsmc) — 감성분석모델에 사용한 데이터셋. - [`Dacon 문서요약`](https://dacon.io/competitions/official/235671/data) — 한국어 문서 추출요약에 사용한 데이터셋. - [`SNU Factcheck`](https://factcheck.snu.ac.kr/) — 가짜뉴스 판별에 사용한 데이터셋. - - [`Naver NLP Challenge 2018`](https://github.com/monologg/naver-nlp-challenge-2018) — Named Entity Recognition(개채명인식)에 사용한 데이터셋. + - [`Naver NLP Challenge 2018`](https://github.com/monologg/naver-nlp-challenge-2018) — Named Entity Recognition(개체명인식)에 사용한 데이터셋. - [Pytorch](https://pytorch.org/) 라이브러리를 통한 딥러닝 빌드: - [`Transformers`](https://huggingface.co/transformers/) — NLP모델의 아키텍처 제공. - [`FastAPI`](https://fastapi.tiangolo.com/) — AI 기능 API 구현. From 713f34c7f960fcd2a5d9263dac538f16b2e1518c Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:28:59 +0900 Subject: [PATCH 52/78] Update readme.md --- readme.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/readme.md b/readme.md index 337ae834..84490ce5 100644 --- a/readme.md +++ b/readme.md @@ -33,6 +33,11 @@ + + + + +
    --- From e8b363c8116b107fe94968a68237bdda5180563d Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:29:25 +0900 Subject: [PATCH 53/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 84490ce5..6eaa3425 100644 --- a/readme.md +++ b/readme.md @@ -35,7 +35,7 @@ - +
    From 7e47292543092c416e0aa944250cb32ffa984e3f Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:45:51 +0900 Subject: [PATCH 54/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 6eaa3425..e9ce779d 100644 --- a/readme.md +++ b/readme.md @@ -31,7 +31,7 @@ - + From fb5aaf108c72202004b9eafa4b6769b051db91ee Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:47:31 +0900 Subject: [PATCH 55/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index e9ce779d..533175f6 100644 --- a/readme.md +++ b/readme.md @@ -31,7 +31,7 @@ - + From 560ee53c8f1f90c181669482a21338a6f4ca621b Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 22:55:42 +0900 Subject: [PATCH 56/78] Update readme.md --- readme.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/readme.md b/readme.md index 533175f6..02a8c02d 100644 --- a/readme.md +++ b/readme.md @@ -217,19 +217,25 @@

    :file_folder: 설치 안내 (Installation Process)

    -#### Analyzer -1. ```~/WEB/NLP/```로 이동합니다. -2. run command ```docker-compose up``` -3. Move to ```~/WEB/backend/``` and run command ```chmod a+x analyzer.sh``` -4. Run command ```./analyzer.sh``` - -#### Django -1. Move to ```~/WEB/backend/``` and run command ```cp web-docker-env-example web-docker-env``` -2. Edit ```web-docker-env``` with your own credentials. -3. Move to ```~/WEB/backend/drf/``` and run command ```cp secrets.example.json secrets.json``` -4. Edit ```secrets.json``` with your own credentials. -5. Move to ```~/WEB/backend/``` and run command ```chmod a+x web.sh``` -6. Run command ```./web.sh``` + + + +> **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. + + +```bash +1. git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS +2. **secret 파일들 작성** +3. ./run.sh +4. http://localhost:8002 접속 +``` + + + + + + +

    💁🏻‍♀️💁🏻‍♂️ 팀 정보 (Team Information)

    From 18ab7fd1d2ddbdbf763a8bdb1c9c26ee0b238b51 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 13:59:22 +0000 Subject: [PATCH 57/78] Fix conflict errors --- WEB(BE)/crawler/crawler/database.db-journal | Bin 8720 -> 0 bytes .../static/{ => data}/ReportData.example.json | 1 + .../static/{ => data}/SecretData.example.json | 0 .../DetectionStatus/DetectionTable.js | 6 +-- WEB(FE)/frontend/src/hooks/useSearch.js | 41 +++++++++--------- .../frontend/src/lib/api/searchDetected.js | 4 +- WEB(FE)/frontend/src/pages/RiskReport.js | 33 ++++++++------ 7 files changed, 45 insertions(+), 40 deletions(-) delete mode 100644 WEB(BE)/crawler/crawler/database.db-journal rename WEB(FE)/frontend/public/static/{ => data}/ReportData.example.json (99%) rename WEB(FE)/frontend/public/static/{ => data}/SecretData.example.json (100%) diff --git a/WEB(BE)/crawler/crawler/database.db-journal b/WEB(BE)/crawler/crawler/database.db-journal deleted file mode 100644 index 45ef1492c05b3b3bcb69df01df252b6313366d6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8720 zcmeI$dytOT9S899y6tm2&vCy7?-E&?b&dNitj${DmSx>9YpoZ{u8rMyZI-w^*B=!T zL{v}_6+w-tQ5989Wh<(pMpe|PimIxrF)C`*==ax7CX+-ae>d|!V?MLHXYHKx{e90f zix6KtmB~x)2@%;TL=}9o<`)ZzkG{(ZRH=@kXKU#=V`PVVpgvQ#)!)@M^{Kk3K2c}X z$LhHHP#sb4tNrRdwM)IDwy2G2om#C{sHMtNi&TY*t70`v#ncovL5)_~YKY2G{Z${; zO?6ahs+DT48mT%;sw5S$AJ}*8TlRJPiha>OXP>rD*p>DX`=Gtg-feHUx7Zu(wf0JT zneEvN?Q(mrJ=>1ix%N1Fq&?KmveWHeb{D(7ooctVo7xTRTDECdmyhIqc}L!q*W_h+ zL7tVTUb#zdlbhvwxkj##BptaxmdRpSAoJxUIYws7!7@|!l|5u9*;b~= zWZ6X4lS=Bcs`b#iXWh1LSXZq})_LoUb<#R!ePA83_FH?b9oANBleNxTWi7V?Yq3>f zm0CsC3@gu?V2!edTZ60&tB=*q>S(1|t*qu&Bdd-jtt2aAJ}~c^x6JG274xEb&OB|N zFe}X?=0S6xx!c@sZZS8QYt5DBGSf2`n&swPbG8{XbIoz)NOP!}Wu}|G%r0hoGu3Qq zHZ>cVwM^5jZagyX8+VMG#x>)zaltrioHC9ZM~%bA0b{SR%h+aYHr5+!j1>kMj0j4`r}!A7Rh*XUt%GTIs`MzYbwsAnicH>&Cn^?Ukl{f2&3zoehn&*&%h zWBLdBA$`BTN8h1u)i>$u^i}$DJvJE9%b_G!Dd?b;S?gSJ*%sV&nyZJ}1K z&DCaWF)ddcr;XHxYFYoS>38`yCeD^fAdx^Kf&Z@rBJa|C{Q9t+D&RJH32vo%@NJ62 zEmR8Mq7t~7=E6<%BHT!G;07v!Z&D##PqX1Vng!pWnQ$%5fUnbZxSC>c73IU%XewMu zdGJ-50$-uYa5+ta%V;88N)sT_co@()=+hYJ(P-$>DCkfQTtXw^Vj2M#Q8rviFTj^+ zI9x!(UY7^Or79F>IlbE2RN46!73U($7 zb|MpYBm;IJ4YsEw*p6zzw#2_xwxMb;jjF<@3ID2yq*4U7Ce%BU5-x^Mg^OUza3O3F za*L8fZc#Mk7BvscVY86C)HE!EjYDo!qmWzFFyt0B2#aC;kh@ebxl46I?o#cL zyHqPIfHgzzj|zF#GUSCR1;@=^rAnu3AU;HaX=Hgz6gvDne@)7?GaCUJgz^TPQ0-RLb z46uK3BS446--1c-uK_wNt_A3@_)CBei>m=TEdCsfg;#qz_=fzA zfcc730T3Vi$XuNCk+%4a&$~V0BW>|(A8Cu@KGGH+`N&xu^LgjL@`uAp9|?;OectC$ z9|?vW=&;3kz*vG9AKl3x-As=@~yzk@gh=YDV_*1_xJmBL7iJ$m< zy8Zss@W*}>?)96(_k7NIkB@GP-9Df3M}9-N%QxXpk2BxlpIzWw}g1pU$nH zYMIB4TIxk1dEBee{2VJzylqhtcfwSF?aF)v_EpT~nGhA-b zbeH=Rb8+{@G$#)89Zqm$2mjc zSch9Q#^Dx?a=1k!9o$ec!r}hB;BbG2Ih_AchdVRG=?4cpyz@a0XFJg0B(oe&a)86T z&2*yhIfs+%<1~Z49d1r9hnv&WsRw&Fd`G%FoO3s)7VPR&g|+ z)`s&=3g6pS9P*Q+K}$Yf3vN_07b?nqYR(mE$~WK%j=l*e+?WGy)B!Z) zkn3}s>T!+ga*OJ4iE49)YH|5%^4^sMwgn_t-ZFrJm$T4nfTZf62G6BBAEFxfrfQ@z z+4~3|L`G&0DTv3S(~C=r^5W4>_#dE1MD&YB@mF?Xc_+T-^M?=5Kj!m?KmV2oKcijW z^Sr%?yHUXfM!&SwI{K9-UJx&gMRPL8=Ct|BN_1vP zZ2IF@3W{btej)#V+xdpYym)LzaY@DFSEm&hF<2Q@*d=l}o! diff --git a/WEB(FE)/frontend/public/static/ReportData.example.json b/WEB(FE)/frontend/public/static/data/ReportData.example.json similarity index 99% rename from WEB(FE)/frontend/public/static/ReportData.example.json rename to WEB(FE)/frontend/public/static/data/ReportData.example.json index 206e3479..5cc20751 100644 --- a/WEB(FE)/frontend/public/static/ReportData.example.json +++ b/WEB(FE)/frontend/public/static/data/ReportData.example.json @@ -1,6 +1,7 @@ { "overview": "북한 대외선전매체 우리민족끼리 와 통일의 메아리, 조선의 오늘 은 각각 김정은 집권 10년을 기념하는 특별 웹페이지를 신설하고 홈페이지 첫 화면에 연결 배너를 띄웠다.", "period": 24, + "isDone": true, "briefingGraphData": { "secretsCount": 52, "fakeNewsCount": 4, diff --git a/WEB(FE)/frontend/public/static/SecretData.example.json b/WEB(FE)/frontend/public/static/data/SecretData.example.json similarity index 100% rename from WEB(FE)/frontend/public/static/SecretData.example.json rename to WEB(FE)/frontend/public/static/data/SecretData.example.json diff --git a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js index 7eacd296..8618b347 100644 --- a/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js +++ b/WEB(FE)/frontend/src/components/DetectionStatus/DetectionTable.js @@ -12,7 +12,6 @@ import { TablePagination, TableFooter, Typography, - LinearProgress, } from '@mui/material'; import SecretsTableRow from './SecretsTableRow'; import { searchState, useContents } from '../../atoms/searchState'; @@ -179,9 +178,8 @@ export default function DetectionTable({ showDetailModal, toggleScrap }) { ).map((article, id) => ( ))} {emptyRows > 0 && ( diff --git a/WEB(FE)/frontend/src/hooks/useSearch.js b/WEB(FE)/frontend/src/hooks/useSearch.js index 9182b08d..282afce2 100644 --- a/WEB(FE)/frontend/src/hooks/useSearch.js +++ b/WEB(FE)/frontend/src/hooks/useSearch.js @@ -27,29 +27,28 @@ export default function useSeacrh() { alert('로그인이 필요한 화면 입니다.'); history.push('/login'); } else { - fetch('/api/nlp/analyze/', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Authorization: `Token ${token}`, - }, - body: JSON.stringify(data), - }) - .then((res) => res.json()) - .then((json) => { - console.log('=========[api/nlp/analyze/]========'); - console.log(json); + if (process.env.REACT_APP_USE_STATIC_RESPONSE == 'True') { + const searchUrl = `/static/SecretData.example.json`; + client.get(searchUrl).then((data) => { + setSearchList(data.data); + console.log('야효', data.data); }); + } else { + fetch('/api/nlp/analyze/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Token ${token}`, + }, + body: JSON.stringify(data), + }) + .then((res) => res.json()) + .then((json) => { + console.log('=========[api/nlp/analyze/]========'); + console.log(json); + }); + } } - - const searchUrl = `/static/SecretData.example.json`; - async function fetchSearch() { - client.get(searchUrl).then((data) => { - setSearchList(data.data); - console.log(data.data); - }); - } - fetchSearch(); }, [filterList]); } diff --git a/WEB(FE)/frontend/src/lib/api/searchDetected.js b/WEB(FE)/frontend/src/lib/api/searchDetected.js index bc6b8945..e745ac42 100644 --- a/WEB(FE)/frontend/src/lib/api/searchDetected.js +++ b/WEB(FE)/frontend/src/lib/api/searchDetected.js @@ -1,5 +1,5 @@ // import client from './client'; -import axios from 'axios' +import axios from 'axios'; export async function searchDetected(params) { const formatted = { @@ -16,7 +16,7 @@ export async function searchDetected(params) { }); const requestUrl = process.env.REACT_APP_USE_STATIC_RESPONSE == 'True' - ? `/static/SecretData.example.json` + ? `/static/data/SecretData.example.json` : `/api/nlp/analyze/`; const requestMethod = process.env.REACT_APP_USE_STATIC_RESPONSE == 'True' diff --git a/WEB(FE)/frontend/src/pages/RiskReport.js b/WEB(FE)/frontend/src/pages/RiskReport.js index 4ea5ecf0..d14c87b9 100644 --- a/WEB(FE)/frontend/src/pages/RiskReport.js +++ b/WEB(FE)/frontend/src/pages/RiskReport.js @@ -28,20 +28,27 @@ const RiskReport = (props) => { useEffect(() => { const loadData = async () => { - const searchUrl = '/api/nlp/report/'; - client.post(searchUrl, { - articleIds: getCart().length ? getCart() : [30, 40, 50], - period: 24, - time: new Date().toTimeString(), // "uniqueness parameter" - }); + if (process.env.REACT_APP_USE_STATIC_RESPONSE == 'True') { + const searchUrl = `/static/data/ReportData.example.json`; + const response = await client.get(searchUrl); + setData(response.data); + setPending(false); + } else { + const searchUrl = '/api/nlp/report/'; + client.post(searchUrl, { + articleIds: getCart().length ? getCart() : [30, 40, 50], + period: 24, + time: new Date().toTimeString(), // "uniqueness parameter" + }); - const data = await client.post(searchUrl, { - articleIds: getCart().length ? getCart() : [30, 40, 50], - period: 24, - time: new Date().toTimeString(), // "uniqueness parameter" - }); - await setData(data.data); - await setPending(false); + const data = await client.post(searchUrl, { + articleIds: getCart().length ? getCart() : [30, 40, 50], + period: 24, + time: new Date().toTimeString(), // "uniqueness parameter" + }); + await setData(data.data); + await setPending(false); + } }; loadData(); }, []); From 4e0a678ff46d0a696502ac0a63e98f8245fca0a3 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:01:34 +0900 Subject: [PATCH 58/78] Update readme.md --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 02a8c02d..9b4c625c 100644 --- a/readme.md +++ b/readme.md @@ -223,9 +223,11 @@ > **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. +먼저, **node.js**, **yarn**, **docker**, 그리고 **docker-compose**를 다운로드하세요. **node.js**는 버전 `14.x`이상이어야 합니다. + ```bash 1. git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS -2. **secret 파일들 작성** +2. *secret 파일들 작성* 3. ./run.sh 4. http://localhost:8002 접속 ``` From 233c4fff94a01dde5ddc1d25b6ff87a74c77d021 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:02:47 +0900 Subject: [PATCH 59/78] Update readme.md --- readme.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index 9b4c625c..8aeeb8bb 100644 --- a/readme.md +++ b/readme.md @@ -218,16 +218,13 @@

    :file_folder: 설치 안내 (Installation Process)

    - +먼저, **node.js**, **yarn**, **docker**, 그리고 **docker-compose**를 다운로드하세요. **node.js**는 버전 `14.x`이상이어야 합니다. > **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. - -먼저, **node.js**, **yarn**, **docker**, 그리고 **docker-compose**를 다운로드하세요. **node.js**는 버전 `14.x`이상이어야 합니다. - ```bash 1. git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS -2. *secret 파일들 작성* +2. 'secret 파일들 작성' 3. ./run.sh 4. http://localhost:8002 접속 ``` From c9db54e5253c4bcbca77149464e0b37fd25abe8d Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:06:14 +0900 Subject: [PATCH 60/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 8aeeb8bb..418ce1a5 100644 --- a/readme.md +++ b/readme.md @@ -224,7 +224,7 @@ ```bash 1. git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS -2. 'secret 파일들 작성' +2. __secret 파일들 작성__ 3. ./run.sh 4. http://localhost:8002 접속 ``` From 1f9a1e310edf4849a297d37d5be3948dfa9ca4e1 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:15:55 +0900 Subject: [PATCH 61/78] Update readme.md --- readme.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/readme.md b/readme.md index 418ce1a5..24690be4 100644 --- a/readme.md +++ b/readme.md @@ -223,17 +223,15 @@ > **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. ```bash -1. git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS -2. __secret 파일들 작성__ -3. ./run.sh -4. http://localhost:8002 접속 +git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS ``` +**Secret 파일들**을 작성합니다. +```bash +./run.sh +``` - - - - +[http://localhost:8002](http://localhost:8002)로 접속합니다. From f18389536adca9ac6f234039c47271626ed49e01 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:21:14 +0900 Subject: [PATCH 62/78] Update readme.md --- readme.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 24690be4..2380be97 100644 --- a/readme.md +++ b/readme.md @@ -220,13 +220,15 @@ 먼저, **node.js**, **yarn**, **docker**, 그리고 **docker-compose**를 다운로드하세요. **node.js**는 버전 `14.x`이상이어야 합니다. -> **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. - +프로젝트를 Clone 합니다. ```bash git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS ``` + **Secret 파일들**을 작성합니다. +> **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. +프로젝트를 빌드 및 실행합니다. ```bash ./run.sh ``` From d28b048a8b6c2a040e413458945274a154447821 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:24:41 +0900 Subject: [PATCH 63/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 2380be97..bb615b88 100644 --- a/readme.md +++ b/readme.md @@ -226,7 +226,7 @@ git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS ``` **Secret 파일들**을 작성합니다. -> **Secret 파일 작성**에 관해서는 [여기서](https://github.com/create-go-app/cli/tree/v2) 확인하세요. +> **Secret 파일 작성**에 관해서는 [여기서](https://navycert.notion.site/851fa5b94b874ddbbd12652ad3a81542) 확인하세요. 프로젝트를 빌드 및 실행합니다. ```bash From f4136ca73f0dfb3e5210b985420cad35faf66e79 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:26:00 +0900 Subject: [PATCH 64/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index bb615b88..5c166220 100644 --- a/readme.md +++ b/readme.md @@ -220,7 +220,7 @@ 먼저, **node.js**, **yarn**, **docker**, 그리고 **docker-compose**를 다운로드하세요. **node.js**는 버전 `14.x`이상이어야 합니다. -프로젝트를 Clone 합니다. +프로젝트를 **Clone** 합니다. ```bash git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS ``` From 097f67e3c773f660f70a2e57fb1657922fc8b46b Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:28:43 +0900 Subject: [PATCH 65/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 5c166220..3bfc926d 100644 --- a/readme.md +++ b/readme.md @@ -234,7 +234,7 @@ git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS ``` [http://localhost:8002](http://localhost:8002)로 접속합니다. - +

    💁🏻‍♀️💁🏻‍♂️ 팀 정보 (Team Information)

    From 1ac36543f823b369d9251bffcda4fb675451b6c4 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:30:10 +0900 Subject: [PATCH 66/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 3bfc926d..be37c187 100644 --- a/readme.md +++ b/readme.md @@ -145,7 +145,7 @@ > 보고서 생성에 대한 세부적인 내용은 [여기](https://navycert.notion.site/2726ca50f1ac4d0aae28792aa8ae117e)에서 확인하실 수 있습니다. -사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF등으로 출력가능합니다. +사용자가 확인한 위협들을 클릭 몇번만으로 자동으로 정돈 및 요약하여 보고서의 형태로 생성해줍니다. 생성된 보고서는 PDF로 출력가능합니다.

    From 555c3f0236348167d3eb8967af9de3c93cca45f6 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:31:55 +0900 Subject: [PATCH 67/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index be37c187..03c2e347 100644 --- a/readme.md +++ b/readme.md @@ -68,7 +68,7 @@ > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 대응이 늦어지는 일이 발생할 수 있습니다. 게다가, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있도록 도와주는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. +> 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다.

    :plate_with_cutlery: 기능 설명 (Features)

    From 5d6b6d4f8dd4db689bc9ca7f0f8a2e8eca8a8e6e Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:32:48 +0900 Subject: [PATCH 68/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 03c2e347..12973dfc 100644 --- a/readme.md +++ b/readme.md @@ -68,7 +68,7 @@ > 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 계십니다. 그러다보니 놓치는 일이 발생하거나, 대응이 늦어지는 일이 발생할 수 있습니다. 게다가, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > -> 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. +> 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다.

    :plate_with_cutlery: 기능 설명 (Features)

    From b9a5b8c0eba9ccf7d428296dd70d39100de5aa4f Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:33:12 +0900 Subject: [PATCH 69/78] Create readme.md From 3032dfa1a49b00c1838aa76d98dc2d8b6d794921 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:33:54 +0900 Subject: [PATCH 70/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 12973dfc..24aabbf4 100644 --- a/readme.md +++ b/readme.md @@ -75,7 +75,7 @@ **3가지 핵심기능**은 다음과 같습니다. * [**`💀 위협 대시보드`**](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a): 여론의 감정 상태, 언론 보도 현황등을 시각화해주는 대시보드입니다. -* [**`😤 위협 탐지`**](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지 입니다. +* [**`😤 위협 탐지`**](https://navycert.notion.site/503f48a54cfb451a8074ed904140538d) : 군사 기밀 유출, 허위 기사 등의 악성글을 자동으로 탐지분석해주는 위협 탐지페이지 입니다. * [**`📰 보고서 생성`**](https://navycert.notion.site/2726ca50f1ac4d0aae28792aa8ae117e) : 클릭 몇번만으로 커스텀 가능한 위협 보고서를 자동으로 생성해줍니다. From f03f66c583bb561b148f1873284b4d11cd2ee9c0 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:33:57 +0900 Subject: [PATCH 71/78] Create readme.md From 9398c9ce20a2f30c57479250b264df25a916365d Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:35:27 +0900 Subject: [PATCH 72/78] Update readme.md --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 24aabbf4..dece56ce 100644 --- a/readme.md +++ b/readme.md @@ -88,7 +88,7 @@ > 오늘의 키워드에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 시각화한 워드 클라우드 입니다. +각종 기사글, 게시판 등의 커뮤니티 사이트들을 기반으로 언급 비중이 놓은 단어들을 시각화한 워드 클라우드입니다. ![words](https://user-images.githubusercontent.com/55467050/137931048-52ce6c3e-ca33-4845-9af4-b282a3ecc6c5.PNG) @@ -96,7 +96,7 @@ > 감정 통계에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어 표현한 차트들 입니다. +각종 SNS 및 커뮤니티 사이트들을 기반으로 여론의 감정 상태를 분석하여 positive, neutral, negative로 나누어 표현한 차트들입니다. ![emopies](https://user-images.githubusercontent.com/55467050/138044572-2d646ec9-1055-43df-8d68-0055744e778a.gif) From 9a7b9d0048f46ecabcc31fb2af49cc036eea4471 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:37:17 +0900 Subject: [PATCH 73/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index dece56ce..e347fd8e 100644 --- a/readme.md +++ b/readme.md @@ -65,7 +65,7 @@ > 군대에게는 여러 risk(위협)들이 존재합니다. 스파이, 해커, 테러리스트 등의 외부적인 위협들도 존재하지만, 시스템이 잘 구축된 현재의 군대의 실질적인 위협은 군사 기밀 유출, 허위 기사, 악성 게시글 등의 내부적인 위협들입니다. 그럼 군대는 이런 내부 위협들을 어떻게 식별하고 관리할까요? > -> 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 계십니다. +> 담당 부서에서 근무하고 있는 동기병에 따르면, 현재 군대에서는 인터넷에 유출된 기밀글들 및 허위 기사등의 악성글을 추려내기 위해 24시간동안 여러 포털 사이트에서 무한정 검색 및 캡처하고 각종 신문에서 군 관련 기사들을 일일히 오려냅니다. 모은 자료들은 사람이 하나하나 읽어보면서 문제가 될 글들을 식별하고, 보고서로 정리해서 대응팀한테 넘기는 등 번거로운 작업들을 반복하고 있습니다. 그러다보니 놓치는 일이 발생하거나, 대응이 늦어지는 일이 발생할 수 있습니다. 게다가, 개개인의 판단으로는 허위 기사등을 정확하게 식별하지 못할 수 있습니다. > > 그래서 생각했습니다. 군사 기밀 및 허위기사등의 악성글들을 자동으로 식별하고 관리 할 수 있는 All-in-One 플랫폼을 만들어보자. RISKOUT이 탄생하게 된 이유입니다. From 5aaa7b045e88d683dfcfddb261e5374b5f02c98b Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:40:18 +0900 Subject: [PATCH 74/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index e347fd8e..852cd571 100644 --- a/readme.md +++ b/readme.md @@ -235,7 +235,7 @@ git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS [http://localhost:8002](http://localhost:8002)로 접속합니다.
    - +이제 사용하실 수 있습니다! 🎉

    💁🏻‍♀️💁🏻‍♂️ 팀 정보 (Team Information)

    From b1f7a36b6d7231c767d199ff770b0e243288d123 Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:41:07 +0900 Subject: [PATCH 75/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 852cd571..18995f2e 100644 --- a/readme.md +++ b/readme.md @@ -104,7 +104,7 @@ > 오늘의 트렌드에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -그날 가장 많이 언급된 3가지 기사를 선정하여 FactCheck를 통해 진실 추정, 중립 추정, 허위 추정으로 판별 및 분류하여 보여줍니다. +그날 가장 많이 언급된 기사들을 선정하여 FactCheck를 통해 진실 추정, 중립 추정, 허위 추정으로 판별 및 분류하여 보여줍니다. ![trend](https://user-images.githubusercontent.com/55467050/137927004-f375f4ca-7548-494f-ac3d-caa087b6563d.PNG) From e2586d657726b58b4a4be4e1409440cca5fe6f8e Mon Sep 17 00:00:00 2001 From: Minseok Lee <55467050+mslee300@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:41:33 +0900 Subject: [PATCH 76/78] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 18995f2e..734725d2 100644 --- a/readme.md +++ b/readme.md @@ -235,6 +235,7 @@ git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS [http://localhost:8002](http://localhost:8002)로 접속합니다.
    + 이제 사용하실 수 있습니다! 🎉

    💁🏻‍♀️💁🏻‍♂️ 팀 정보 (Team Information)

    From ea303bb06ace3354979b8a5dbe0020908956763a Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:44:28 +0900 Subject: [PATCH 77/78] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 734725d2..434c762d 100644 --- a/readme.md +++ b/readme.md @@ -120,7 +120,7 @@ > 기사 변화량에 대한 세부적인 내용은 [여기](https://navycert.notion.site/4a6b066671cc44e78ca5be32b29aa72a)에서 확인하실 수 있습니다. -최근 기사량들을 대조하여 기사량의 변화도를 시각화한 차트입니다. +최근 기사량들을 대조하여 기사량의 변화를 시각화한 차트입니다. ![num_articles](https://user-images.githubusercontent.com/55467050/137926297-1c4b6417-4507-49e1-8f94-09cde4b437f4.PNG) From f251fcf84456a4db8a4b74020c93689274de0547 Mon Sep 17 00:00:00 2001 From: PFF <50140505+playff@users.noreply.github.com> Date: Wed, 20 Oct 2021 14:55:51 +0000 Subject: [PATCH 78/78] Fix fetch error and clear --- WEB(BE)/drf/secrets.example.json | 18 +++++++++--------- WEB(FE)/frontend/src/hooks/useSearch.js | 3 --- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/WEB(BE)/drf/secrets.example.json b/WEB(BE)/drf/secrets.example.json index a6ff942e..f6565392 100644 --- a/WEB(BE)/drf/secrets.example.json +++ b/WEB(BE)/drf/secrets.example.json @@ -1,11 +1,11 @@ { - "SECRET_KEY": "asdfasdfasdfasdf", - "DEBUG": "True", - "ALLOWED_HOSTS": ["localhost", "http://localhost:3000"], - "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", - "EMAIL_HOST": "smtp.googlemail.com", - "EMAIL_USE_TLS": "True", - "EMAIL_PORT": 587, - "EMAIL_HOST_USER": "your.email@example.com", - "EMAIL_HOST_PASSWORD": "asdfasdfasdf*" + "SECRET_KEY": "asdfasdfasdfasdf", + "DEBUG": "False", + "ALLOWED_HOSTS": ["localhost", "http://localhost:3000"], + "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", + "EMAIL_HOST": "smtp.googlemail.com", + "EMAIL_USE_TLS": "True", + "EMAIL_PORT": 587, + "EMAIL_HOST_USER": "your.email@example.com", + "EMAIL_HOST_PASSWORD": "asdfasdfasdf*" } diff --git a/WEB(FE)/frontend/src/hooks/useSearch.js b/WEB(FE)/frontend/src/hooks/useSearch.js index 282afce2..a4213d66 100644 --- a/WEB(FE)/frontend/src/hooks/useSearch.js +++ b/WEB(FE)/frontend/src/hooks/useSearch.js @@ -31,7 +31,6 @@ export default function useSeacrh() { const searchUrl = `/static/SecretData.example.json`; client.get(searchUrl).then((data) => { setSearchList(data.data); - console.log('야효', data.data); }); } else { fetch('/api/nlp/analyze/', { @@ -44,11 +43,9 @@ export default function useSeacrh() { }) .then((res) => res.json()) .then((json) => { - console.log('=========[api/nlp/analyze/]========'); console.log(json); }); } } - fetchSearch(); }, [filterList]); }