Skip to content

Important-is-Great-Youths/QuickQuestion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

둜고

😺 ν”„λ‘œμ νŠΈ μ†Œκ°œ

  • 날씨에 따라 λ‹€μ–‘ν•œ ν…Œλ§ˆλ₯Ό 가진 읡λͺ… λ¬Έλ‹΅ μ„œλΉ„μŠ€
  • 기획 κΈ°κ°„ : 24.04.19 ~ 24.04.29
  • 개발 κΈ°κ°„ : 24.04.30 ~ 24.06.07

ν”„λ‘œμ νŠΈ QQ

λ°œλ‹¨

  • κΈ°μ‘΄ 과제 ν”„λ‘œμ νŠΈ μ˜€ν”ˆλ§ˆμΈλ“œμ˜ κ°œμ„ μ˜ 여지가 λ³΄μ΄λŠ” κΈ°λŠ₯을 λ°œμ „μ‹œν‚€κ³ μž 함
1. 질문 μ‹œ λ‹‰λ„€μž„λ§Œμ„ λ³Ό 수 μžˆλ‹€λŠ” λΆˆνŽΈν•œ μ ‘κ·Όμ„± ν–₯상
2. νŠΈλžœλ””ν•˜μ§€ μ•Šμ€ λ””μžμΈκ³Ό λ‹¨μˆœν•œ κΈ°λŠ₯의 κ°œμ„ 
3. λ³΄μ•ˆ κΈ°λŠ₯의 λΆ€μž¬ ν•΄κ²°
4. 기쑴에 μ‚¬μš©ν•΄λ³΄μ§€ λͺ»ν•œ μƒˆλ‘œμš΄ κΈ°λŠ₯의 λ„μž…
  • λ‹‰λ„€μž„ μ“°λŠ” 곳에 μ§ˆλ¬Έμ„ μ“°κ³ , 짧고 λΉ λ₯΄κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό λ§Œλ“€μž.

κ²°κ³Ό

1. 질문자의 λ‹‰λ„€μž„κ³Ό μ§ˆλ¬Έμ„ ν•¨κ»˜ λ³Ό 수 μžˆλ„λ‘ μˆ˜μ •
2. κ·€μ—¬μš΄ λ‘œκ³ μ™€ 직관적이고 κΉ”λ”ν•œ λ””μžμΈμœΌλ‘œ μˆ˜μ •
3. μ§ˆλ¬Έμžμ™€ λ‹΅λ³€μž λ‹‰λ„€μž„κ³Ό λΉ„λ°€λ²ˆν˜Έ μ„€μ •
4. 기상청 apiλ₯Ό ν™œμš©ν•œ ν…Œλ§ˆ μžλ™ 변동

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Team

μ΄μ„œμ˜ 🀎🦐🍣

  • Tags, Header, Alert Modal, PwPopup μ»΄ν¬λ„ŒνŠΈ κ΅¬ν˜„
  • Contextλ₯Ό ν™œμš©ν•œ Modal Provider, Modal Wrapper, useModal κ΅¬ν˜„
  • React Queryλ₯Ό μ μš©ν•œ AnswerContent κ΅¬ν˜„
  • Tags, AnswerContent, PwPopup 및 일뢀 μ†Œκ·œλͺ¨ μ»΄ν¬λ„ŒνŠΈμ— React Hook Form 적용
  • λ‹΄λ‹Ή μ»΄ν¬λ„ŒνŠΈμ— ν•œν•˜μ—¬ StoryBook을 ν™œμš©ν•œ μ»΄ν¬λ„ŒνŠΈ UI ν…ŒμŠ€νŠΈ 진행
  • λžŒλ²„νŠΈ 등각 원좔 νˆ¬μ˜λ²• κ΅¬ν˜„(useLonLatToXY.ts)
  • Vercel을 ν™œμš©ν•œ 배포 진행

김민희 πŸ’›πŸ€πŸ€

  • Geolocation λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•œ μ‚¬μš©μž μœ„μΉ˜ useHooks κ΅¬ν˜„
  • Pagination을 onPageChange 콜백 κΈ°λŠ₯ 호좜 ν•΄ κ΅¬ν˜„
  • Modal UI, μœ νš¨μ„± 검사 κ΅¬ν˜„
  • Tag μ»΄ν¬λ„ŒνŠΈλ₯Ό μ΄μš©ν•œ 필터링 κΈ°λŠ₯ κ΅¬ν˜„ (λ―Έλ‹΅λ³€, νƒœκ·Έ 별 필터링)
  • APIλ₯Ό μ΄μš©ν•œ Cardlist κ΅¬ν˜„
  • react-hook-form을 μ΄μš©ν•œ validate λ‹‰λ„€μž„, νŒ¨μŠ€μ›Œλ“œ, λ‹΅λ³€λ‚΄μš© κ΅¬ν˜„

κΉ€μ˜μ€ πŸ’™πŸ¨πŸŒŠ

  • emojiλ₯Ό ν™œμš©ν•œ Reaction κΈ°λŠ₯ κ΅¬ν˜„
  • Input μ»΄ν¬λ„ŒνŠΈ UI 및 κΈ°λ³Έ κΈ°λŠ₯ κ΅¬ν˜„
  • React Hook Form을 μ μš©ν•œ From Modal UI 및 버그 μˆ˜μ •, μ„œλ²„ 톡신
  • React Queryλ₯Ό μ μš©ν•œ Question Content UI κ΅¬ν˜„ 및 APIλ₯Ό ν™œμš©ν•œ 데이터 좜λ ₯
  • Card μ»΄ν¬λ„ŒνŠΈ UI κ΅¬ν˜„ 및 APIλ₯Ό ν™œμš©ν•œ 데이터 좜λ ₯
  • λ‚ μ§œ, μ‹œκ°„ λ³€ν™˜ hook(newDate.ts) κ΅¬ν˜„
  • StoryBook을 ν™œμš©ν•œ μ»΄ν¬λ„ŒνŠΈ UI ν…ŒμŠ€νŠΈ

μœ λ―Έμ • πŸ§‘πŸ¦”πŸŽˆ

  • Button, Textarea, Footer, Answer Empty μ»΄ν¬λ„ŒνŠΈ UI κ΅¬ν˜„
  • 곡톡 Layout μ„€μ •
  • StoryBook에 μ»΄ν¬λ„ŒνŠΈμ˜ UI ν…ŒμŠ€νŠΈ
  • λ‹‰λ„€μž„ 쀑볡 검사 κΈ°λŠ₯
  • react-hook-form을 μ‚¬μš©ν•΄ 질문 등둝 validation μ„€μ • 및 μž…λ ₯κ°’ μ„œλ²„λ‘œ 제좜
  • imgbb apiλ₯Ό μ΄μš©ν•˜μ—¬ 이미지 ν˜ΈμŠ€νŒ…
  • Carousel κΈ°λŠ₯ μž‘μ„±
  • Next.js의 next/font/local κΈ°λŠ₯을 μ‚¬μš©ν•΄ 폰트 μ΅œμ ν™”
  • Axios api url μ„€μ •
  • Error Message, Placeholder μƒμˆ˜ν™”
  • Local Storage 데이터 ν˜ΈμΆœν•˜μ—¬ μœ μ € 확인 ν•¨μˆ˜ κ΅¬ν˜„
  • ν•΄λ‹Ή ν•˜λŠ” 질문 μ°ΎκΈ° λͺ¨λ‹¬ κ΅¬ν˜„
  • λ‹΅λ³€ 채택 κΈ°λŠ₯
  • 날씨 api 데이터λ₯Ό κ°€μ Έμ™€μ„œ μ•Œλ§žμ€ ν…Œλ§ˆλ‘œ λ³€κ²½ν•˜κΈ°

πŸ’»Features

Main Page

image

  1. 질문 등둝 : 메인 νŽ˜μ΄μ§€μ—μ„œ λ°”λ‘œ μ§ˆλ¬Έμ„ 등둝할 수 μžˆλ‹€.
  2. 등둝 쑰건 λΆ€ν•© : μ§ˆλ¬Έμ„ 등둝할 λ•Œ ν•„μˆ˜ 값을 μž…λ ₯ν•˜μ§€ μ•Šκ±°λ‚˜ 쑰건에 λ§žμ§€ μ•ŠλŠ” 값을 μž…λ ₯ν•˜λ©΄ 등둝할 수 μ—†λ‹€.
  3. λ‘œμ»¬μŠ€ν† λ¦¬μ§€μ— μ €μž₯ : 질문이 λ“±λ‘λ˜λ©΄ μž…λ ₯ν•œ λ‹‰λ„€μž„κ³Ό λΉ„λ°€λ²ˆν˜Έκ°€ λ‘œμ»¬μŠ€ν† λ¦¬μ§€μ— μ €μž₯λœλ‹€.
  4. λ¦¬μ•‘μ…˜ μˆ˜μ— λ”°λ₯Έ 인기 질문 : λ¦¬μ•‘μ…˜ μˆ˜κ°€ λ§Žμ€ 순으둜 인기 μ§ˆλ¬Έμ— λ‚˜νƒ€λ‚œλ‹€.
  5. μŠ¬λΌμ΄λ“œ κΈ°λŠ₯ : 인기 μ§ˆλ¬Έμ—λŠ” 총 6κ°œκ°€ λ‚˜νƒ€λ‚˜κ³  λ“œλž˜κ·Έλ₯Ό ν•˜κ±°λ‚˜ ν™”μ‚΄ν‘œ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ˜†μœΌλ‘œ λ„˜κΈΈ 수 μžˆλ‹€.

Question List Page

image

  1. λ―Έλ‹΅λ³€ 필터링 κΈ°λŠ₯ : λ―Έλ‹΅λ³€ λ²„νŠΌμ„ μ²΄ν¬ν•˜λ©΄ 닡변이 달리지 μ•Šμ€ μ§ˆλ¬Έλ“€λ§Œ λ‚˜μ˜€κ²Œ λœλ‹€.
  2. λΆ„μ•Ό λ³„λ‘œ 필터링 κΈ°λŠ₯ : 전체, μ—°μ˜ˆ λ“±λ“± μ›ν•˜λŠ” λΆ„μ•Όλ₯Ό λˆ„λ₯΄λ©΄ ν•΄λ‹Ή λΆ„μ•Όμ˜ 질문만 λ‚˜μ˜¨λ‹€.
  3. νŽ˜μ΄μ§€λ„€μ΄μ…˜ κΈ°λŠ₯ : λ‹€μŒ, 이전 λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ λ‹€μŒ νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄κ°€κ³  숫자λ₯Ό ν΄λ¦­ν•˜λ©΄ ν•΄λ‹Ή νŽ˜μ΄μ§€μ˜ μ§ˆλ¬Έλ“€μ΄ λ‚˜μ˜¨λ‹€.

Question Detail Page

QuestionDetailPage.mp4
  1. 이λͺ¨μ§€ λ¦¬μ•‘μ…˜ κΈ°λŠ₯ : ν•΄λ‹Ή μ§ˆλ¬Έμ— λŒ€ν•œ μ‚¬λžŒλ“€μ˜ λŠλ‚Œμ„ 이λͺ¨μ§€μ˜ ν˜•νƒœλ‘œ μ•Œ 수 있으며, μ‚¬μš©μž λ˜ν•œ 이λͺ¨μ§€λ‘œ λŠλ‚Œμ„ 남길 수 μžˆλ‹€.
  2. 질문 상세 νŒŒμ•… : ν•΄λ‹Ή 질문의 λΆ„μ•Ό, μž‘μ„±μž, μž‘μ„±μΌ, λ‚΄μš©, 첨뢀 이미지(선택)을 λ³Ό 수 μžˆλ‹€.
  3. λ‹΅λ³€ νŒŒμ•… : ν•΄λ‹Ή μ§ˆλ¬Έμ— λͺ‡ 개의 닡변이 λ“±λ‘λ˜μ—ˆλŠ”μ§€, 그리고 λ“±λ‘λœ λ‹΅λ³€μ˜ λ‹΅λ³€μž, λ‚ μ§œ, λ‹΅λ³€μžμ˜ ν”„λ‘œν•„ 이미지, 그리고 λ‹΅λ³€ λ‚΄μš©μ„ μ•Œ 수 μžˆλ‹€.
  4. λ‹΅λ³€ 등둝 : μ§ˆλ¬Έμžκ°€ μ•„λ‹Œ μ‚¬μš©μžλŠ” λ‹΅λ³€ν•˜κΈ° λ²„νŠΌμœΌλ‘œ 본인의 닡변을 등둝할 수 μžˆλ‹€.
  5. λ‹΅λ³€ μˆ˜μ • 및 μ‚­μ œ : λ‹΅λ³€μžλŠ” 각 λ‹΅λ³€ λ³„λ‘œ μ„€μ •λœ λΉ„λ°€λ²ˆν˜Έ(숫자 4자리)λ₯Ό μž…λ ₯ν•˜μ—¬ ν•΄λ‹Ή 닡변을 μˆ˜μ •ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆλ‹€. 단, μ±„νƒλœ 닡변은 μˆ˜μ • 및 μ‚­μ œκ°€ λΆˆκ°€ν•˜λ‹€.
  6. λ‹΅λ³€ 채택 : μ§ˆλ¬ΈμžλŠ” 본인이 μ›ν•˜λŠ” 닡변을 채택할 수 μžˆλ‹€.

πŸ› οΈ Skill Stacks

Environment

Git GitHub VSCode Vercel Storybook Figma

Development

TypeScript Next.js CSS_Modules Sass REST_api

Libraries

Axios ReactQuery reacthookform NextThemes

πŸ“ Package Structure

quickquestion
β”œβ”€ public
β”‚  └─ assets
β”‚     β”œβ”€ fonts
β”‚     └─ images
└─ src
   β”œβ”€ apis
   β”œβ”€ app
   β”‚  β”œβ”€ fonts
   β”‚  β”œβ”€ layout.tsx
   β”‚  β”œβ”€ providers.tsx
   β”‚  β”œβ”€ questiondetail
   β”‚  β”‚  └─ [id]
   β”‚  └─ questionlist
   β”œβ”€ components
   β”‚  β”œβ”€ common
   β”‚  β”‚  β”œβ”€ AlertModal
   β”‚  β”‚  β”œβ”€ Button
   β”‚  β”‚  β”œβ”€ Card
   β”‚  β”‚  β”œβ”€ FormModal
   β”‚  β”‚  β”œβ”€ Head
   β”‚  β”‚  β”œβ”€ Header
   β”‚  β”‚  β”œβ”€ Input
   β”‚  β”‚  β”œβ”€ ModalWrapper
   β”‚  β”‚  β”œβ”€ NoAnswer
   β”‚  β”‚  β”œβ”€ Pagination
   β”‚  β”‚  β”œβ”€ PopUp
   β”‚  β”‚  β”œβ”€ Reaction
   β”‚  β”‚  β”œβ”€ Tags
   β”‚  β”‚  └─ Textarea
   β”‚  β”œβ”€ home
   β”‚  β”‚  β”œβ”€ CurationCardList
   β”‚  β”‚  └─ QuestionForm
   β”‚  └─ questionDetail
   β”‚     β”œβ”€ AnswerEmpty
   β”‚     β”œβ”€ AnswerContent
   β”‚     β”œβ”€ ContentLayout
   β”‚     β”œβ”€ QuestionContent
   β”‚     └─ ReactionContent
   β”œβ”€ constants
   β”œβ”€ contexts
   β”œβ”€ hooks
   β”œβ”€ lib
   β”œβ”€ stories
   β”œβ”€ styles
   β”‚  β”œβ”€ base
   β”‚  β”œβ”€ main.scss
   β”‚  β”œβ”€ mixins
   β”‚  └─ variables
   β”œβ”€ types
   └─ utils

πŸ’Ύ Installation

  1. Clone the repository
git clone https://github.com/Important-is-Great-Youths/QuickQuestion.git
  1. Install dependencies
npm install
  1. Start the development server
npm run dev
  1. Open the project in your browser
http://localhost:3000

πŸŽ‰ Special Thanks

둜고 λ””μžμΈ : πŸ‡