Skip to content

zkffhtm6523/MindMood

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌱 MindMood

감정 기둝으둜 λ‚˜λ₯Ό μ΄ν•΄ν•˜κ³ , κ±΄κ°•ν•œ 마음으둜 μ„±μž₯ν•˜λŠ” μ—¬μ •

🌐 배포 URL
www.mindmood.co.kr

🌐 개발 URL
http://127.0.0.1:3000


πŸ‘€ ν”„λ‘œμ νŠΈ μ†Œκ°œ

  • 감정 ν•΄μ†Œ : 슀트레슀 μ™„ν™” 및 감정 ν‘œν˜„
  • 자기 μ„±μ°° : 감정 기둝을 ν†΅ν•œ 자기 이해
  • 감정 좔적 : 감정 λ³€ν™”μ˜ κ°„νŽΈν•œ νŒŒμ•…
  • μžμ•„ 정체성 : μš°μ„ μˆœμœ„λ₯Ό 톡해 λ‚˜λ₯Ό 발견

πŸ—„οΈ λ°μ΄ν„°λ² μ΄μŠ€

  • λ°μ΄ν„°λ² μ΄μŠ€ μ’…λ₯˜ : PostgreSQL
  • μ—°κ²° 라이브러리 : Prismaλ₯Ό μ‚¬μš©ν•˜μ—¬ PostgreSQLκ³Ό μ—°κ²°

μ„€μΉ˜ 및 μ„€μ •

  1. PostgreSQL λ°μ΄ν„°λ² μ΄μŠ€ 및 μ‚¬μš©μž 생성
# PostgreSQL 'postgres' μ‚¬μš©μž 접속
psql -U postgres

# mindmood λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°
\c mindmood

# public μŠ€ν‚€λ§ˆ μ†Œμœ μž 확인
SELECT nspname AS schema_name, pg_roles.rolname AS owner
FROM pg_catalog.pg_namespace
JOIN pg_catalog.pg_roles ON pg_roles.oid = pg_namespace.nspowner
WHERE nspname = 'public';

# public μŠ€ν‚€λ§ˆμ˜ μ†Œμœ μž mindmood λ³€κ²½
ALTER SCHEMA public OWNER TO postgres;
ALTER SCHEMA public OWNER TO mindmood;

# mindmood μ‚¬μš©μžμ—κ²Œ κΆŒν•œ λΆ€μ—¬
GRANT USAGE ON SCHEMA public TO mindmood;
GRANT CREATE ON SCHEMA public TO mindmood;

# 변경사항 확인
\dn+ public

# λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μ’…λ£Œ
\q
  1. πŸ“¦.env 파일 λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μ„€μ •
DATABASE_URL="postgresql://mindmood:0116@localhost:5432/mindmood"
  1. ν”„λ‘œμ νŠΈ μ„€μ •
## μ˜μ‘΄μ„± μ„€μΉ˜ : 25.12.14 κΈ°μ€€ node version(20.19.6), prisma(7.1.0)
npm install

## prisma directory 및 schema 생성, λ§Œμ•½ prisma 디렉토리가 μ—†λ‹€λ©΄ μ‚¬μš©ν•΄μ•Όν•¨.
##πŸ—„οΈschema.prisma 파일 ν…Œμ΄λΈ” μ •μ˜** (ν…Œμ΄λΈ”λͺ… 및 컬럼 μ •μ˜) <br/><br/>
## 맨 처음 λΉˆν”„λ‘œμ νŠΈμΌ λ•Œ μ‚¬μš© => 사싀상 μ‚¬μš© ν•„μš” μ—†μŒ
# npx prisma init

# 둜컬용 : λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” 생성 및 ꡬ쑰 μˆ˜μ • λͺ…λ Ήμ–΄
# create + apply + generate
npx prisma migrate dev

# 운영용 : λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” 생성 및 ꡬ쑰 μˆ˜μ • λͺ…λ Ήμ–΄
# λ§ˆμ§€λ§‰μ˜ λ³€κ²½μ λ§Œ μ μš©ν•˜κΈ° μœ„ν•΄μ„œ, migration 파일 생성 μ•ˆν•¨. μ΅œμ’… 적용만 함
# apply
npx prisma migrate deploy

ν…Œμ΄λΈ” ꡬ쑰

  • AuthUser : μ‚¬μš©μž 정보
  • Diary : μ‚¬μš©μž 일기 데이터
  • SelectCategory : 선택 κ°€λŠ₯ν•œ μΉ΄ν…Œκ³ λ¦¬ λͺ©λ‘

API

pages/api 폴더 내에 λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜λŠ” API μ—”λ“œν¬μΈνŠΈ κ΅¬ν˜„

  • session : μ‚¬μš©μž μ„Έμ…˜ 관리 API
  • createUser : μ‚¬μš©μž 생성 API
  • loginUser : μ‚¬μš©μž 둜그인 API
  • getDiaries : 전체 일기 데이터 쑰회 API
  • getExistingDates : 전체 일기 μž‘μ„±μΌ 데이터 쑰회 API
  • createDiary : 일기 데이터 μ €μž₯ API
  • updateDiary : νŠΉμ • 일기 데이터 μˆ˜μ • API
  • deleteDiary : νŠΉμ • 일기 데이터 μ‚­μ œ API

βš™οΈ 개발 ν™˜κ²½

  • Runtime Environment : Node.js (v20.15.1)
  • Framework : Next.js
  • Frontend Library : React
  • Type Checking : TypeScript
  • Database : PostgreSQL
  • IDE : Visual Studio Code

πŸš€ ν”„λ‘œμ νŠΈ μ‹€ν–‰

npm i                 # ν•„μˆ˜ 라이브러리 μ„€μΉ˜
npm run dev           # 개발 μ„œλ²„ μ‹€ν–‰
npm run build         # μ„œλ²„ λΉŒλ“œ μˆ˜ν–‰
npm start             # μ„œλ²„ μ‹€ν–‰

πŸ–₯️ ν™”λ©΄ 섀계

1. μ‚¬μš©μž 관리

  • νšŒμ›κ°€μž… κΈ°λŠ₯
  • 둜그인 κΈ°λŠ₯

2. 메인 - 감정 달λ ₯

  • 감정 이λͺ¨μ§€ ν‘œν˜„ (졜고, μ’‹μŒ, 보톡, μ•ˆμ’‹μŒ, 많이 λ‚˜μ¨)
  • GNB 헀더 : 감정 차트 | 일기 λͺ©λ‘ | 일기 μž‘μ„±

3. μ„œλΈŒ - 일기 기둝

  • ꡬ성 μš”μ†Œ : 사건, 감정, 행동, κ²°κ³Ό, μ œμ•ˆ

    1. 였늘의 κΈ°λΆ„ 점검

      • 감정 강도 : 1-10점 선택
      • 감정 이λͺ¨μ§€ : 기쁨, 행볡, μ„€λ ˜, 쀑립, λΆˆμ•ˆ, 짜증, 우울, μŠ¬ν””, ν›„νšŒ, λΆ„λ…Έ 선택
    2. 사건 기둝

      • μ£Όμš” 사건 : μ‹œκ°„, μž₯μ†Œ, λ‚΄μš© μž‘μ„±
      • ν•¨κ»˜ν•œ μ‚¬λžŒ : κ°€μ‘±, 친ꡬ, 연인, λ™λ£Œ, 상사, λΆ€ν•˜, 지인, μΉœμ²™, 혼자, 직접 μž…λ ₯
    3. 감정 탐ꡬ

      • μ£Όμš” 감정 : 감정 선택
      • 감정 이유 : κ°μ •μ˜ μ΄μœ μ™€ 상황 μž‘μ„±
    4. 행동/λ°˜μ‘ 뢄석

      • 행동 기둝 : 감정 ν‘œν˜„ 방식 μž‘μ„±
      • 행동 영ν–₯ : 감정에 미친 영ν–₯ μž‘μ„±
      • λ―Έν‘œν˜„ 이유 : 감정을 ν‘œν˜„ν•˜μ§€ μ•Šμ€ 이유 μž‘μ„±
    5. κ²°κ³Ό 평가

      • κ²°κ³Ό : 사건 κ²°κ³Ό μž‘μ„±
      • μ›ν•˜λŠ” 행동 : 미래 행동 κ³„νš μž‘μ„±
    6. 자기 μ œμ•ˆ

      • λŠλ‚€ 점과 닀짐 : 긍정적인 λ©”μ‹œμ§€λ‚˜ 닀짐 μž‘μ„±

4. μ„œλΈŒ - 일기 λͺ©λ‘

  • 리슀트 ν˜•μ‹ ν‘œμ‹œ

5. μ„œλΈŒ - 일기 상세

  • μˆ˜μ • 및 μ‚­μ œ κΈ°λŠ₯

6. μ„œλΈŒ - 감정 차트

  • μ›”κ°„ 감정 뢄석 (μ›κ·Έλž˜ν”„, μ„ κ·Έλž˜ν”„)

πŸ—‚οΈ 디렉토리 ꡬ쑰

πŸ“ MindMood
β”‚
β”œβ”€β”€ 🧩 components
β”‚   β”œβ”€β”€ πŸ“ layout                               # λ ˆμ΄μ•„μ›ƒ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Header.tsx			        # 헀더
β”‚   β”‚   β”œβ”€β”€ Footer.tsx				# ν‘Έν„°
β”‚   β”‚   └── Sidebar.tsx			        # μ‚¬μ΄λ“œλ°”
β”‚   β”œβ”€β”€ πŸ“ common                              # 곡톡 μ‚¬μš© μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ TopButton.tsx		        # 탑 λ²„νŠΌ
β”‚   β”‚   └── ButtonStyle.tsx		        # λ²„νŠΌ μŠ€νƒ€μΌ
β”‚   β”œβ”€β”€ πŸ“ auth                                # μ‚¬μš©μž 인증 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ UserSignupForm.tsx		        # νšŒμ›κ°€μž…
β”‚   β”‚   └── UserLoginForm.tsx			# 둜그인
β”‚   β”œβ”€β”€ πŸ“ calendar
β”‚   β”‚   └── Calendar.tsx			# [메인] 감정 달λ ₯ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ πŸ“ diary				# [μ„œλΈŒ 2,3,4] 감정일기 κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ (μž‘μ„±, λͺ©λ‘, 상세, μˆ˜μ •, μ‚­μ œ)
β”‚   β”‚   β”œβ”€β”€ πŸ“ form				# [μ„œλΈŒ 2-1] 일기 μž‘μ„±
β”‚   β”‚   β”‚   β”œβ”€β”€ DiaryEntryForm.tsx		# [μ„œλΈŒ 2-1] 일기 μƒμœ„ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ MoodCheck.tsx		        # [μ„œλΈŒ 2-1] 1) 였늘의 κΈ°λΆ„ 점검
β”‚   β”‚   β”‚   β”œβ”€β”€ EventRecord.tsx		        # [μ„œλΈŒ 2-1] 2) 사건 기둝
β”‚   β”‚   β”‚   β”œβ”€β”€ EmotionAnalysis.tsx	        # [μ„œλΈŒ 2-1] 3) 감정 탐ꡬ
β”‚   β”‚   β”‚   β”œβ”€β”€ BehaviorAnalysis.tsx	        # [μ„œλΈŒ 2-1] 4) 행동/λ°˜μ‘ 뢄석
β”‚   β”‚   β”‚   β”œβ”€β”€ ResultEvaluation.tsx	        # [μ„œλΈŒ 2-1] 5) κ²°κ³Ό 평가
β”‚   β”‚   β”‚   └── SelfSuggestion.tsx		# [μ„œλΈŒ 2-1] 6) 자기 μ œμ•ˆ
β”‚   β”‚   β”œβ”€β”€ πŸ“ list				# [μ„œλΈŒ 3,4] 감정일기 λͺ©λ‘ 및 상세
β”‚   β”‚   β”‚   β”œβ”€β”€ DiaryList.tsx			# [μ„œλΈŒ 3] 일기 λͺ©λ‘
β”‚   β”‚   β”‚   β”œβ”€β”€ DiaryDetail.tsx                 # [μ„œλΈŒ 4-1] 일기 상세(μˆ˜μ •, μ‚­μ œ)
β”‚   β”‚   β”‚   └── DiaryEdit.tsx		        # [μ„œλΈŒ 4-2] 일기 μˆ˜μ •
β”‚   └── πŸ“ chart				# [μ„œλΈŒ 5] μ›”κ°„ 감정 차트
β”‚        β”œβ”€β”€ DiaryEntryChart.tsx                # [μ„œλΈŒ 5-1] 차트 μƒμœ„ μ»΄ν¬λ„ŒνŠΈ
β”‚        β”œβ”€β”€ PieChart.tsx			# [μ„œλΈŒ 5-1] 원 κ·Έλž˜ν”„
β”‚        └── LineChart.tsx			# [μ„œλΈŒ 5-1] μ„  κ·Έλž˜ν”„
β”‚
β”œβ”€β”€ πŸ”— pages
β”‚   β”œβ”€β”€ πŸ“ api                                 # λ°μ΄ν„°λ² μ΄μŠ€ API
β”‚   β”‚   β”œβ”€β”€ session.ts			        # μ‚¬μš©μž μ„Έμ…˜ 관리
β”‚   β”‚   β”œβ”€β”€ createUser.ts			# μ‚¬μš©μž 데이터 생성
β”‚   β”‚   β”œβ”€β”€ loginUser.ts			# μ‚¬μš©μž 둜그인
β”‚   β”‚   β”œβ”€β”€ getDiaries.ts			# 전체 일기 데이터 쑰회
β”‚   β”‚   β”œβ”€β”€ getExistingDates.ts			# 전체 일기 μž‘μ„±μΌ 데이터 쑰회
β”‚   β”‚   β”œβ”€β”€ createDiary.ts			# 일기 데이터 μ €μž₯
β”‚   β”‚   β”œβ”€β”€ πŸ“ updateDiary		        # νŠΉμ • ID 일기 데이터 μˆ˜μ •
β”‚   β”‚   β”‚   └── [id].ts		               
β”‚   β”‚   └── πŸ“ deleteDiary			# νŠΉμ • ID 일기 데이터 μ‚­μ œ
β”‚   β”‚       └── [id].ts		                
β”‚   β”œβ”€β”€ _app.tsx                        	# 곡톡 μ»΄ν¬λ„ŒνŠΈ μ •μ˜
β”‚   β”œβ”€β”€ index.tsx                        	# 메인 νŽ˜μ΄μ§€(감정 달λ ₯)
β”‚   β”œβ”€β”€ signup.tsx                        	# νšŒμ›κ°€μž… νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ login.tsx                        	# 둜그인 νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ πŸ“ diary                               # 일기 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ NewDiary.tsx			# 일기 μž‘μ„± νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ ListDiary.tsx			# 일기 λͺ©λ‘ νŽ˜μ΄μ§€
β”‚   β”‚   └── [id].tsx				# 일기 상세 νŽ˜μ΄μ§€(μˆ˜μ •, μ‚­μ œ)
β”‚   β”œβ”€β”€ chart.tsx			        # 감정 차트 νŽ˜μ΄μ§€
β”‚   └── 404.tsx			                # μ—λŸ¬ νŽ˜μ΄μ§€
β”‚
β”œβ”€β”€ πŸ–ΌοΈ public
β”‚   └── icon.ico                      	        # νŒŒλΉ„μ½˜ 파일
β”‚
β”œβ”€β”€ 🎨 styles
β”‚   └── globals.css                      	# κΈ€λ‘œλ²Œ μŠ€νƒ€μΌ CSS 파일
β”‚
β”œβ”€β”€ πŸ’Ύ prisma
β”‚   └── schema.prisma                           # Prisma λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ μ •μ˜
β”‚
β”œβ”€β”€ πŸ”§ lib
β”‚   β”œβ”€β”€ prisma.ts                               # Prisma ν΄λΌμ΄μ–ΈνŠΈ μ„€μ •
β”‚   └── session.js                              # Express μ„Έμ…˜ 미듀웨어 μ„€μ •
β”‚
β”œβ”€β”€ πŸ—ƒοΈ context                            	# 곡톡 μ„Έμ…˜ 관리 폴더
β”‚   └── SessionContext.js                       # μ‚¬μš©μž μ„Έμ…˜ μƒνƒœ 관리
β”‚
β”œβ”€β”€ πŸ—ƒοΈ stores                            	# MobX μŠ€ν† μ–΄ 폴더
β”‚   β”œβ”€β”€ index.tsx                        	# μŠ€ν† μ–΄ λͺ¨μŒ 및 내보내기
β”‚   β”œβ”€β”€ UserStore.tsx                           # μ‚¬μš©μž μƒνƒœ 관리 μŠ€ν† μ–΄
β”‚   └── DiaryStore.tsx                          # 일기 μƒνƒœ 관리 μŠ€ν† μ–΄
β”‚
β”œβ”€β”€ πŸ“œ types
β”‚   β”œβ”€β”€ user.ts                         	# μ‚¬μš©μž 데이터 νƒ€μž… μ •μ˜
β”‚   β”œβ”€β”€ diary.ts                         	# 일기 데이터 νƒ€μž… μ •μ˜
β”‚   β”œβ”€β”€ next-session.d.ts                       # Next.js API μš”μ²­ μ„Έμ…˜ νƒ€μž… μ •μ˜
β”‚   └── next-auth.d.ts                          # NextAuth.js μ„Έμ…˜ νƒ€μž… ν™•μž₯ μ •μ˜
β”‚
β”œβ”€β”€ βš™οΈ .env                    	                # ν™˜κ²½ λ³€μˆ˜ μ„€μ • 파일
β”œβ”€β”€ βš™οΈ next.config.js                    	# Next.js μ„€μ • 파일
β”œβ”€β”€ βš™οΈ next-env.d.ts                    	# Next.js μ„€μ • 파일
β”œβ”€β”€ βš™οΈ package.json                      	# ν”„λ‘œμ νŠΈ μ˜μ‘΄μ„± μ„€μ •
└── βš™οΈ tsconfig.json                     	# TypeScript μ„€μ • 파일

🎨 λΈŒλžœλ“œ 컬러

MindMood Brand Color

1. 메인 컬러

  • 주색 : #4C956C (라이트 κ·Έλ¦°)

2. μ„œλΈŒ 컬러

  • 강쑰색 : #2C6E49 (λ”₯ κ·Έλ¦°)
  • 보쑰색 : #D6E7DB (μ—°ν•œ κ·Έλ¦°)
  • 배경색 : #FEFEE3 (아이보리)
  • ꡬ뢄색 : #F5F3F5 (라이트 그레이)

3. 포인트 컬러

  • 긍정 감정 : #FFC9B9 (νŒŒμŠ€ν…” 핑크)
  • μ•Œλ¦Ό/μœ λ„ : #D68C45 (μ˜€λ Œμ§€)

About

🌱 MindMood

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.7%
  • CSS 2.2%
  • JavaScript 2.1%