Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
790be14
chore: uninstall next router plugin
tacowasabii Oct 12, 2024
eb66087
feat: route 방식 변경
tacowasabii Oct 12, 2024
f4def96
chore: prettier
tacowasabii Oct 14, 2024
4bc3621
chore: path alias 수정
tacowasabii Oct 14, 2024
e33458d
chore: svgr
tacowasabii Oct 14, 2024
4b9fb1e
chore: custom style
tacowasabii Oct 14, 2024
a1f088a
feat: svg
tacowasabii Oct 14, 2024
32bd8d9
feat: 회원가입 퍼블리싱
tacowasabii Oct 14, 2024
2b1608f
feat: svg 수정
tacowasabii Oct 14, 2024
127cf3a
Merge pull request #2 from The-Monitor-Dev/feature/#1
tacowasabii Oct 14, 2024
42372fd
chore: install twMerge
tacowasabii Oct 14, 2024
867da87
feat: input Component
tacowasabii Oct 14, 2024
ce79835
feat: button component
tacowasabii Oct 14, 2024
4b7b575
Merge pull request #4 from The-Monitor-Dev/feature/#3
tacowasabii Oct 15, 2024
fb2c7c5
Merge branch 'main' into feature/#5
tacowasabii Oct 15, 2024
345eb20
Merge pull request #6 from The-Monitor-Dev/feature/#5
tacowasabii Oct 15, 2024
2b358c5
feat: svg
tacowasabii Oct 15, 2024
dba557b
feat: svg
tacowasabii Oct 15, 2024
9fcaa62
feat: 비밀번호 조건 컴포넌트
tacowasabii Oct 15, 2024
00c915a
feat: input 컴포넌트 에러 스타일 추가
tacowasabii Oct 15, 2024
a7531bf
feat: 회원가입 폼
tacowasabii Oct 15, 2024
4528c43
rename: 라우트 변경
tacowasabii Oct 16, 2024
3a81c6e
Merge pull request #8 from The-Monitor-Dev/feature/#7
tacowasabii Oct 16, 2024
efcfd29
docs: update README
tacowasabii Oct 16, 2024
8deae64
feat: find password page
tacowasabii Oct 16, 2024
a7ff7cb
refactor: type
tacowasabii Oct 16, 2024
7e1053f
feat: signin page
tacowasabii Oct 16, 2024
15d07c3
Merge pull request #11 from The-Monitor-Dev/feature/#10
tacowasabii Oct 16, 2024
ae83d9e
style: text color
tacowasabii Oct 16, 2024
2e4d82b
feat: find password page
tacowasabii Oct 16, 2024
036f5a1
feat: add asset commit type
tacowasabii Oct 16, 2024
7d550dc
docs: update README
tacowasabii Oct 16, 2024
e4104d7
Merge pull request #13 from The-Monitor-Dev/feature/#12
tacowasabii Oct 16, 2024
b03c38a
style: text color
tacowasabii Oct 16, 2024
b9cb7e8
feat: 에러로직 수정
tacowasabii Oct 16, 2024
1ce8712
Merge pull request #14 from The-Monitor-Dev/feature/#12
tacowasabii Oct 16, 2024
9a83ae4
fix: file name
tacowasabii Oct 16, 2024
cb6b758
Merge pull request #17 from The-Monitor-Dev/bugfix/#16
tacowasabii Oct 16, 2024
689d7df
chore: vercel.json
tacowasabii Oct 16, 2024
8854954
Merge pull request #19 from The-Monitor-Dev/chore/#18
tacowasabii Oct 16, 2024
8316b7d
chore: gitignore add env
tacowasabii Oct 18, 2024
714d0de
style: 스타일 수정
tacowasabii Oct 18, 2024
2c429b8
feat: api 세팅
tacowasabii Oct 18, 2024
89fd52d
feat: format time util
tacowasabii Oct 18, 2024
2ac4d95
rename: 파일 이름 수정
tacowasabii Oct 18, 2024
1e28cae
feat: 계정 관련 api
tacowasabii Oct 18, 2024
2bc74db
type: api response type
tacowasabii Oct 18, 2024
c865484
feat: 계정 관련 api 훅
tacowasabii Oct 18, 2024
bfb5ade
feat: password validation hook
tacowasabii Oct 18, 2024
2b6cb34
feat: email confirmation hook
tacowasabii Oct 18, 2024
3003b4a
refactor: 이메일 유효성 검증 시점 변경
tacowasabii Oct 18, 2024
fa4a753
feat: 회원가입 api 연결
tacowasabii Oct 18, 2024
55db268
feat: 로그인 api 연결
tacowasabii Oct 18, 2024
e74a49e
refactor: 버튼 이름 수정
tacowasabii Oct 18, 2024
128d909
refactor: 변수 명 변경
tacowasabii Oct 18, 2024
a932bb5
refactor: 태그 수정
tacowasabii Oct 18, 2024
e51b0d9
docs: update README
tacowasabii Oct 18, 2024
95df6e7
chore: refactor api path
tacowasabii Oct 18, 2024
c75ce96
remove: app directory
tacowasabii Oct 18, 2024
37ab494
Merge pull request #20 from The-Monitor-Dev/feature/#15
tacowasabii Oct 18, 2024
83c2e83
[Feature/#21] 비밀번호 찾기 페이지 완성 (#22)
tacowasabii Oct 21, 2024
3e3533b
[Feature/#9] 대시보드 페이지 퍼블리싱 (#23)
Sohyunnnn Oct 26, 2024
7028c9b
[Feature/#26] 로그인, 회원가입 버튼 및 로고 라우팅 기능 추가 (#27)
tacowasabii Oct 29, 2024
9c6cb55
[Feature/#28] 사이드 메뉴 컴포넌트 (#29)
tacowasabii Nov 1, 2024
4c2183a
[Feature/#24] 고객사 정보 추가 모달 구현 (#25)
Sohyunnnn Nov 3, 2024
f73e4d2
[Feature/#30] 모니터링 페이지 퍼블리싱 (#31)
tacowasabii Nov 4, 2024
fdec225
[Feature/#33] 고객사 수정 모달 퍼블리싱 및 기타 모달 퍼블리싱 (#34)
Sohyunnnn Nov 9, 2024
245bb8c
[style/#36] 대시보드 페이지 스타일 수정 (#37)
Sohyunnnn Nov 10, 2024
e74dc4f
[Refactor/#38] 리뷰 피드백 반영 및 모니터링 페이지 수정 (#39)
tacowasabii Nov 10, 2024
4a05661
[Feature/#35] 보고서 편집 페이지 퍼블리싱 (#41)
tacowasabii Nov 16, 2024
d577c9c
[Feature/#43] 404 페이지 (#44)
tacowasabii Nov 16, 2024
3e8a9ed
[Feature/#45] 보고서 관리 페이지 퍼블리싱 (#46)
tacowasabii Nov 17, 2024
9537120
[Feature/#47] 메일 전송 모달 (#48)
tacowasabii Nov 17, 2024
153aa0f
[Feature/#49] 보고서 편집 페이지 퍼블리싱 (#50)
tacowasabii Nov 18, 2024
a336865
[Refactor/#40] 대시보드 페이지 리팩토링 (#51)
Sohyunnnn Nov 20, 2024
e8650ae
[Feature/#53] 고객사 없을 때 페이지 퍼블리싱 (#54)
Sohyunnnn Nov 23, 2024
6e7a2f3
[Feature/#42] 모니터링, 보고서 api 연결 (#56)
tacowasabii Nov 23, 2024
62c57f0
[Feature/#55] 모니터링 설정 페이지 퍼블리싱 (#58)
Sohyunnnn Nov 23, 2024
e911b2f
[Feature/#52] 대시보드 api 연동 (#59)
Sohyunnnn Nov 25, 2024
e903070
[Feature/#57] 보고서 관리 api 연결 (#62)
tacowasabii Nov 26, 2024
16e21c3
hotfix: delete unused import
tacowasabii Nov 26, 2024
1959b4b
[Feature/#60] 키워드 설정 페이지 api 연결 (#61)
Sohyunnnn Nov 26, 2024
0e9d979
[Refactor/#65] 검색바 로직 수정 (#66)
tacowasabii Nov 26, 2024
d406131
[Feature/#64] 고객사 조회 api 연결 및 로딩 처리 구현 (#67)
Sohyunnnn Nov 26, 2024
252a424
[Feature/#63] 보고서 생성 api 연결 (#69)
tacowasabii Nov 27, 2024
8821a2c
[Refactor/#70] Client 이미지 업로드 엔드포인트 수정 (#71)
tacowasabii Nov 27, 2024
36fc20f
[Feature/#68] 랜딩 페이지 구현 및 푸터 구현 (#73)
Sohyunnnn Nov 27, 2024
8105292
[Feature/#72] 보고서 편집 페이지 api 연결 (#75)
tacowasabii Nov 27, 2024
91baf68
[Hotfix/#76] 버그 수정 (#77)
tacowasabii Nov 27, 2024
352738a
[HotFix/#78] import 경로 변경 (#79)
tacowasabii Nov 27, 2024
dc6c26c
[Refactor/#74] 대시보드 및 키워드 설정 페이지 리팩토링 (#80)
Sohyunnnn Nov 28, 2024
d440ab9
[Style/#83] 랜딩페이지 스타일 수정 (#84)
Sohyunnnn Nov 28, 2024
8aa606a
[Refactor/#82] 고객사 모달 리팩토링 및 기타 스타일 수정 (#85)
Sohyunnnn Nov 28, 2024
4611585
[Feature/#72] 보고서 페이지 api 연결 (#86)
tacowasabii Nov 28, 2024
df58f0b
[Hotfix] 충돌 해결 (#88)
tacowasabii Nov 28, 2024
9f976a5
[Hotfix] (#90)
tacowasabii Nov 28, 2024
8bb92e2
docs: update readme (#91)
Sohyunnnn Nov 28, 2024
57e690f
docs: update readme (#93)
Sohyunnnn Nov 28, 2024
b9c1eb9
[Fix/#92] 레이아웃 수정 (#94)
tacowasabii Nov 28, 2024
269b719
[Style/#95] 스타일 수정 (#96)
tacowasabii Nov 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@ dist-ssr
*.njsproj
*.sln
*.sw?

# .env
.env
.env.local
.env.*.local
1 change: 0 additions & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx eslint . --fix
npx prettier --write .
npx lint-staged
npx tsc --noEmit
12 changes: 12 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"trailingComma": "all",
"semi": true,
"tabWidth": 2,
"jsxSingleQuote": false,
"useTabs": false,
"printWidth": 80,
"bracketSpacing": true,
"endOfLine": "auto",
"arrowParens": "always",
"plugins": ["prettier-plugin-tailwindcss"]
}
170 changes: 165 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,164 @@
## **🔗 배포 링크**

[[The Monitor](https://the-monitor.vercel.app/)](https://the-monitor.vercel.app/)
——
![서비스 소개](https://github.com/user-attachments/assets/e8d433a8-409b-4d9b-8291-ec33306d16bf)

![팀 소개 1](https://github.com/user-attachments/assets/26e42796-f199-4002-923a-15d11fedeae0)

![배경](https://github.com/user-attachments/assets/60a87162-fb1b-4cb2-81b8-06762ed36de9)
![배경1](https://github.com/user-attachments/assets/8e4c9d72-2e1e-4419-a415-dd871f8b9a04)

<aside>

## 📝 이해를 돕기 위한 실무자의 글

[[[PR/홍보대행사 인턴 업무_모니터링]](https://blog.naver.com/lifefor0/222058462827)](https://blog.naver.com/lifefor0/222058462827)

[[[PR]뉴스 모니터링… 반복의 업무 그러나 실수의 연속](https://blog.naver.com/ggggggggguda/222650339397)](https://blog.naver.com/ggggggggguda/222650339397)

</aside>

# 🧑‍💻 타겟 인사이트

![1 서비스타겟](https://github.com/user-attachments/assets/ef96237c-3de2-4882-aefd-cb674364729a)

서비스 특성 상 User 와 Customer 가 다르다고 판단하였습니다.
![서비스타겟](https://github.com/user-attachments/assets/660a4ee0-dd8e-475c-9097-4d901aee32fd)

![2 리서치](https://github.com/user-attachments/assets/a2d78264-69c0-4c99-b170-c2c655ead159)
![리서치](https://github.com/user-attachments/assets/9cc11924-8061-4da8-9637-174380a49486)
![2-1데스크리서치](https://github.com/user-attachments/assets/02f6c121-599f-4b7d-a16d-e7164a3d6df2)
![데스크리서치-1](https://github.com/user-attachments/assets/ee0e190c-ae64-4ee2-9342-d55c77b14a26)
![2-2 데스크리서치](https://github.com/user-attachments/assets/84549f50-516f-4c8f-9973-7393405a6adf)
![데스크리서치-2](https://github.com/user-attachments/assets/e1ba65c5-a7ec-45f8-a38c-55effbe7ff1c)

![3 업무영상분석](https://github.com/user-attachments/assets/b1cf035c-3701-430b-98d9-674601a6e0c0)
![업무영상분석](https://github.com/user-attachments/assets/792e13b2-e9cf-4674-874f-19aac5ee990a)
![4 유저리서치](https://github.com/user-attachments/assets/dd68a0c0-89a5-4709-958e-65edcdc8a3d4)

<aside>

### 👥  인터뷰이

</aside>

![인터뷰이](https://github.com/user-attachments/assets/a118b2ef-9bf5-4a7d-90db-9a9451947cf6)

<aside>
💡

### 인터뷰 질문

</aside>

- 가설 1 현재 시장에 존재하는 모니터링 서비스는 대행사의 직원들에게는 적합하지 않을 것이다
1. 모니터링 업무 시 보조 서비스를 사용하시나요?
2. ’뉴스럴‘이라는 서비스가 존재한다는 것을 알고 있으신가요?
3. 모니터링 업무에서 가장 시간이 많이 필요한 부분은 어느 부분인가요?
- 가설 2. 고객사 별로 모니터링에 대한 요구사항이 다르기 때문에 대행사에서는 수기 업무를 선호할 것이다
1. 고객사 별로 모니터링 보고서의 양식이 다른 이유는 무엇인가요?
2. 보고서의 양식은 대행사와 고객사 중 어느 쪽에서 제공하나요?
3. 서비스를 사용한다면 회사 메일이 아닌, 서비스의 메일로 모니터링이 갈텐데 괜찮나요?
- 가설 3. 성과 보고를 간편화하기 위한 모니터링 서비스가 있다면 사용할 의향이 있을 것이다.
1. 모니터링 보고서를 통해 만들어지는 2차 산출물에는 무엇이 있나요?
2. 모니터링 결과물을 해당 산출물로 옮기기 위해 수기 이외의 방법을 활용하고 있나요?
- 가설 4. 서비스를 구매하는 customer 는 업무 자동화 이상의 가치를 제공해야만 구매할 것이다.
1. 모니터링에 보고 이외의 목적도 있나요? (저연차 직원들을 교육시키기 위한)
2. AI 기능을 활용해 전략제안에 모니터링 보고서에 대한 인사이트를 도출하는 기능은 비딩과정에서 설득력을 더할 수 있다고 생각하시나요?
- 가설 외의 질문
1. 모니터링 외에 개선되었으면 하는 업무가 있나요?
2. 뉴스럴 사용성 평가
3. 대행사에게 필요한 뉴스분석은 무엇인가요?
4. 업무보조 서비스를 회사에서는 어떤 과정으로 구매 / 결정 하나요?

# 🖥️ 핵심 기능

![프로젝트 목표](https://github.com/user-attachments/assets/7069212b-8989-4237-b14b-beda72afbc07)

![Frame 2085665689](https://github.com/user-attachments/assets/b46aef08-3bf6-4650-8a38-b25202e79aa7)

![회원가입](https://github.com/user-attachments/assets/a09a43d1-2e61-4e60-9fa1-8788433c3f7a)

- 보안을 위해 메일 인증 기능을 포함한 회원가입 기능
- 대표 메일로 로그인 후, 관리자가 추후 어드민 페이지에서 각 고객사 별 담당자에게 권한을 부여

![고객사 리스트](https://github.com/user-attachments/assets/fd98ff64-3ee9-4005-858c-be88ef11ac78)

- 간단한 정보 입력을 통해 고객사 워크스페이스 생성
- 자사/경쟁사/업계에 대한 모니터링 키워드와 수신인 메일을 사전에 등록
- 추가한 고객사들의 워크스페이스를 관리하고 모아볼 수 있는 메인 화면

![데일리 모니터링 기능](https://github.com/user-attachments/assets/5b35e06b-c016-47c9-8825-e7b10cbd38f4)

- 키워드별로 검색된 기사 중에서 원하는 기사를 선택하여 보고서에 추가할 수 있는 페이지로,
**The Monitor**의 **가장 핵심적인 기능**이 포함됨

![보고서 편집하기](https://github.com/user-attachments/assets/0d52e922-6a8f-4141-8e8e-9390d495df16)

- 데일리 모니터링에서 스크랩한 기사의 제목, 헤드라인, URL, 기자명 등이 클릭 한 번으로 보고서 형식에 반영됨
- 로고, 제목, 색상, 카테고리 등을 커스텀 하여 통일된 보고서 형식에서 베리에이션을 추가
- 보고서 편집 후 고객사 담당자에게 빠르게 메일 전송 가능

![보고서 관리하기](https://github.com/user-attachments/assets/1530df13-5cde-4b21-846c-bed4d30b952c)

- 최대 1년 간의 모니터링 보고서를 모아보는 기능
- 이전에 작업한 보고서도 편집 가능하며 스크랩한 내역도 함께 저장됨

# 💾 개발

<aside>

## WEB / APP 기술 스택 선정 이유

- **Vite**: 빠른 번들링과 핫 리로딩을 제공하는 최신 프론트엔드 빌드 도구입니다. 개발 속도를 높이고 효율적인 개발 환경을 제공하기 위해 선택했습니다.
- **React**: 컴포넌트 기반 UI 라이브러리로, 재사용성과 유지보수성이 뛰어나며 복잡한 UI를 효율적으로 관리할 수 있어 선택했습니다.
- **TypeScript**: JavaScript에 정적 타입을 추가하여 코드의 안정성을 높이고 버그를 줄일 수 있습니다. 유지보수성과 가독성을 위해 도입했습니다.
- **Tailwind CSS**: 유틸리티 기반 CSS 프레임워크로, 빠르고 일관성 있는 스타일링이 가능하여 개발 시간을 단축시키고 커스터마이징의 유연성을 확보하기 위해 사용했습니다.
</aside>

<aside>

## SERVER 기술 스택 선정 이유

### 기술 스택

- Java - version 21
- Spring boot JPA
- JWT
- 인증 인가 (로그인 회원가입)
- Restful API
- Redis
- 이메일 인증번호 발급
- S3
- 보고서 저장
- Docker
- Docker Image
- JIB
- Nginx
- 로드밸런싱
- HTTP → HTTPS
- AWS EC2 - 서버
- 탄력적 IP
- RDS

### 라이브러리

- Apache Poi - MS 문서화

### Open API

- Google Custom Search API
</aside>

## ERD

![themonitor-erd](https://github.com/user-attachments/assets/7e7fe6ef-4a58-44d6-8019-698ca80d7a9b)

## System Architecture

![themonitorsa](https://github.com/user-attachments/assets/f001efe3-eada-498a-b87f-e496aad435ea)

## Ground Rule

- **코드 수정 알림**: 다른 사람의 코드를 수정할 때는 반드시 말해줍니다.
Expand All @@ -13,11 +174,9 @@ src/
├── main.tsx
├── App.tsx
├── TYPES/
├── APP/
│ └── api/
├── API/
├── CONSTANTS/
├── UTILS/
├── LIB/
├── STYLES/
├── COMPONENTS/
├── HOOKS/
Expand Down Expand Up @@ -47,6 +206,7 @@ src/
| refactor | 코드 리팩토링 |
| revert | 이전 커밋 되돌리기 |
| style | 스타일 코드 변경 |
| asset | svg, 이미지 등 디자인 파일 추가 |
| test | 테스트 코드, 리팩토링 테스트 코드 추가 |
| type | 타입 수정 |
| rename | 파일 또는 폴더 명을 수정하거나 옮기는 작업만인 경우 |
Expand Down Expand Up @@ -90,8 +250,8 @@ const Welcome: React.FC<WelcomeProps> = ({ name }) => {
- 딕셔너리, 배열 등의 복수의 데이터를 담는 자료구조에 대한 변수명 s 붙이기 `ex) heights`
- 로딩이나 모달창 등의 보여짐 여부에 대한 boolean state의 경우 is 붙이기 `ex) isModalOpen, isLoading`
- 데이터 접근 함수의 경우 get으로 시작하기 `ex) getUserData`
- 컴포넌트 내부에서 동작하는 함수는 handle 붙이기 `ex) handleClick, handleModalOpen`
- prop으로 받아서 동작하는 함수는 on 붙이기 `ex) onClick, onClose`
- 이벤트를 감지하는 함수는 on으로 시작하며, 이 함수는 주로 이벤트 발생 시점에 호출됩니다 ex) onClick, onClose
- 이벤트 처리 로직을 담는 함수는 handle로 시작하며, 주로 on 함수 내에서 호출됩니다 ex) handleClick, handleModalOpen

| 함수명 | 동사구 ex) getUserData |
| ------ | ---------------------- |
Expand Down
1 change: 1 addition & 0 deletions commitlint.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module.exports = {
"revert",
"style",
"test",
"asset", // Custom type
"type", // Custom type
"rename", // Custom type
"remove", // Custom type
Expand Down
Loading