Skip to content

KSWA-SWEEP/Formduo-Front

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

81 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Form DuoπŸ“œ

πŸ“– Intro

섀문쑰사 μ„œλΉ„μŠ€ 폼듀 ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œμ νŠΈ

2022. 08 ~ 2022. 12


🚩 Demo

🎞 Video


πŸ–₯ Screenshots

image image image image image image image image image image image image image image image image


πŸš€ Quick Start

πŸ–‡ Git clone

git clone https://github.com/KSWA-SWEEP/Formduo-Front.git

πŸ“₯ Install dependencies

cd Formduo-Front
npm install

βš™ Set environment variables

ν”„λ‘œμ νŠΈ 루트 κ²½λ‘œμ— ν™˜κ²½ λ³€μˆ˜ 파일 μ„€μ •

β‡’ 기본적으둜 env 파일 λ§Œλ“€μ–΄μ„œ μ„€μ •ν•΄μ£Όλ©΄ 되며, .env.local λ“± ν™˜κ²½μ— λ§žλŠ” 파일 μΆ”κ°€ν•˜μ—¬ ν™˜κ²½μ— λ”°λ₯Έ λ³€μˆ˜ μ„€μ • κ°€λŠ₯

πŸ“‹ .env

# BE (Spring Cloud Gateway) url
NEXT_PUBLIC_API_URL=${Backend url}

# FE 도메인
NEXT_PUBLIC_BASE_URL=${domain url}

πŸ›« run app

# development ν™˜κ²½ μ‹€ν–‰ μ‹œ
npm run dev

# production ν™˜κ²½ μ‹€ν–‰ μ‹œ
npm run build
npm start

πŸ›  Skills

Languages

  • JavaScript
  • CSS

Dependencies

πŸ“‹ package.json

...

"dependencies": {
    // Next.js - 13 버전 μ‚¬μš©
    "next": "12.3.1", 
    // React - 18 버전 μ‚¬μš©
    "react": "18.2.0",]
    "react-dom": "18.2.0",

    // πŸ“„ UI    
    "@tailwindcss/forms": "^0.5.3",
    // Tailwind Component Library - modal, popup λ“± μ‚¬μš©
    "@headlessui/react": "^1.7.3",
    "@heroicons/react": "^2.0.12",
    "@mui/material": "^5.10.9",
    "@mui/styled-engine-sc": "^5.10.6",
    // μ„€λ¬Έ 뢄석 차트λ₯Ό 그리기 μœ„ν•œ Library
    "@nivo/bar": "^0.80.0",
    "@nivo/core": "^0.80.0",
    "@nivo/pie": "^0.80.0",

    // πŸ“„ 기타 κΈ°λŠ₯
    // Datepicker Library
    "react-datepicker": "^4.8.0",
    // μ„€λ¬Έ κ²°κ³Ό csv 파일 생성을 μœ„ν•œ Library
    "react-csv": "^2.2.2",
    // μŒμ„± μ„€λ¬Έ κΈ°λŠ₯을 μœ„ν•œ μŒμ„± λ…ΉμŒ 및 μž¬μƒ Library
    "react-audio-player": "^0.17.0",
    // μ „μ—­ μƒνƒœ 관리λ₯Ό μœ„ν•œ Library
    "recoil": "^0.7.6",
    // μ„€λ¬Έ 곡유 QR Code 생성을 μœ„ν•œ Library
    "qrcode.react": "^3.1.0",
    // νšŒμ› κ°€μž… 메일 인증을 μœ„ν•œ Library
    "emailjs-com": "^3.2.0",
    // ν™˜κ²½ λ³€μˆ˜λ₯Ό μœ„ν•œ Library
    "dotenv": "^16.0.3",
    "dotenv-webpack": "^8.0.1",
    // API ν˜ΈμΆœμ„ μœ„ν•œ Library
    "axios": "^1.1.3",
    // μΏ ν‚€ 쑰회 및 μˆ˜μ •μ„ μœ„ν•œ Library
    "cookies": "^0.8.0",
    "cookies-next": "^2.1.1",
    
    // πŸ“„ Test
    // λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•œ Library
    "jest": "^29.2.2",

}

...

πŸ—‚ Directory

πŸ“™ jaksim31-front
    β”œβ”€ πŸ“ pages
    β”‚  β”œβ”€ about
    β”‚  β”‚  └─ formduo.js
    β”‚  β”œβ”€ account
    β”‚  β”‚  β”œβ”€ changePw.js
    β”‚  β”‚  β”œβ”€ myPage.js
    β”‚  β”‚  β”œβ”€ signIn.js
    β”‚  β”‚  └─ signUp.js
    β”‚  β”œβ”€ api
    β”‚  β”‚  β”œβ”€ auth
    β”‚  β”‚  β”‚  β”œβ”€ changePw.js
    β”‚  β”‚  β”‚  β”œβ”€ isMember.js
    β”‚  β”‚  β”‚  β”œβ”€ login.js
    β”‚  β”‚  β”‚  β”œβ”€ logout.js
    β”‚  β”‚  β”‚  β”œβ”€ members.js
    β”‚  β”‚  β”‚  β”œβ”€ reissue.js
    β”‚  β”‚  β”‚  └─ signup.js
    β”‚  β”‚  β”œβ”€ response
    β”‚  β”‚  β”‚  β”œβ”€ all
    β”‚  β”‚  β”‚  β”‚  └─ [svyId].js
    β”‚  β”‚  β”‚  β”œβ”€ conv
    β”‚  β”‚  β”‚  β”œβ”€ conv.js
    β”‚  β”‚  β”‚  β”œβ”€ create.js
    β”‚  β”‚  β”‚  └─ [id].js
    β”‚  β”‚  └─ survey
    β”‚  β”‚     β”œβ”€ qbox.js
    β”‚  β”‚     β”œβ”€ surveys
    β”‚  β”‚     β”‚  β”œβ”€ type.js
    β”‚  β”‚     β”‚  └─ [id].js
    β”‚  β”‚     └─ surveys.js
    β”‚  β”œβ”€ auth
    β”‚  β”‚  └─ singUp.js
    β”‚  β”œβ”€ index.js
    β”‚  β”œβ”€ survey
    β”‚  β”‚  β”œβ”€ create
    β”‚  β”‚  β”‚  β”œβ”€ basic.js
    β”‚  β”‚  β”‚  β”œβ”€ duo.js
    β”‚  β”‚  β”‚  β”œβ”€ emotion.js
    β”‚  β”‚  β”‚  β”œβ”€ finish.js
    β”‚  β”‚  β”‚  └─ [surveyId].js
    β”‚  β”‚  β”œβ”€ emotion
    β”‚  β”‚  β”‚  └─ [convId].js
    β”‚  β”‚  β”œβ”€ list
    β”‚  β”‚  β”‚  └─ mySurvey.js
    β”‚  β”‚  β”œβ”€ modify
    β”‚  β”‚  β”‚  └─ [modifyid].js
    β”‚  β”‚  β”œβ”€ preview
    β”‚  β”‚  β”‚  β”œβ”€ basic.js
    β”‚  β”‚  β”‚  β”œβ”€ duo.js
    β”‚  β”‚  β”‚  └─ emotion.js
    β”‚  β”‚  β”œβ”€ result
    β”‚  β”‚  β”‚  β”œβ”€ list.js
    β”‚  β”‚  β”‚  └─ [surveyId].js
    β”‚  β”‚  β”œβ”€ share
    β”‚  β”‚  β”‚  β”œβ”€ basic.js
    β”‚  β”‚  β”‚  β”œβ”€ finish.js
    β”‚  β”‚  β”‚  └─ [surveyId].js
    β”‚  β”‚  β”œβ”€ share.js
    β”‚  β”‚  └─ tutorial.js
    β”‚  β”œβ”€ _app.js
    β”‚  └─ _error.js
    β”‚
    β”œβ”€ ✨ components
    β”‚  β”œβ”€ common
    β”‚  β”‚  β”œβ”€ Footer.js
    β”‚  β”‚  β”œβ”€ Header.js
    β”‚  β”‚  β”œβ”€ Layout.js
    β”‚  β”‚  β”œβ”€ LazyShow.js
    β”‚  β”‚  β”œβ”€ Loading.js
    β”‚  β”‚  └─ Modal.js
    β”‚  β”œβ”€ func
    β”‚  β”‚  └─ checkAccessToken.js
    β”‚  └─ ui
    β”‚     β”œβ”€ about
    β”‚     β”‚  └─ AboutFormDuo.js
    β”‚     β”œβ”€ account
    β”‚     β”‚  β”œβ”€ FindUserEmail.js
    β”‚     β”‚  └─ UserInfo.js
    β”‚     β”œβ”€ icon
    β”‚     β”‚  β”œβ”€ CustomizeSvg.js
    β”‚     β”‚  β”œβ”€ SurveySvg.js
    β”‚     β”‚  └─ TalkSvg.js
    β”‚     β”œβ”€ MainContent.js
    β”‚     β”œβ”€ MainPage.js
    β”‚     β”œβ”€ PageTitle.js
    β”‚     β”œβ”€ survey
    β”‚     β”‚  β”œβ”€ BasicSurveyCreate.js
    β”‚     β”‚  β”œβ”€ DuoSurveyCreate.js
    β”‚     β”‚  β”œβ”€ emotion
    β”‚     β”‚  β”‚  β”œβ”€ Conversation.js
    β”‚     β”‚  β”‚  β”œβ”€ Error.js
    β”‚     β”‚  β”‚  └─ PieChart.js
    β”‚     β”‚  β”œβ”€ EmotionSurveyCreate.js
    β”‚     β”‚  β”œβ”€ input
    β”‚     β”‚  β”‚  β”œβ”€ ContentItem.js
    β”‚     β”‚  β”‚  β”œβ”€ ContentList.js
    β”‚     β”‚  β”‚  β”œβ”€ QboxQuestion.js
    β”‚     β”‚  β”‚  β”œβ”€ Question.js
    β”‚     β”‚  β”‚  └─ Respond.js
    β”‚     β”‚  β”œβ”€ Qbox.js
    β”‚     β”‚  β”œβ”€ result
    β”‚     β”‚  β”‚  β”œβ”€ chart
    β”‚     β”‚  β”‚  β”‚  β”œβ”€ BarChart.js
    β”‚     β”‚  β”‚  β”‚  β”œβ”€ RadarChart.js
    β”‚     β”‚  β”‚  β”‚  β”œβ”€ Slider.js
    β”‚     β”‚  β”‚  β”‚  β”œβ”€ SubjectiveChart.js
    β”‚     β”‚  β”‚  β”‚  └─ SubjectiveList.js
    β”‚     β”‚  β”‚  β”œβ”€ ResponseTable.js
    β”‚     β”‚  β”‚  β”œβ”€ SurveyAnalysis.js
    β”‚     β”‚  β”‚  └─ SurveyResults.js
    β”‚     β”‚  β”œβ”€ show
    β”‚     β”‚  β”‚  β”œβ”€ Checkbox.js
    β”‚     β”‚  β”‚  β”œβ”€ Date.js
    β”‚     β”‚  β”‚  β”œβ”€ Dropbox.js
    β”‚     β”‚  β”‚  β”œβ”€ File.js
    β”‚     β”‚  β”‚  β”œβ”€ Objective.js
    β”‚     β”‚  β”‚  β”œβ”€ Rating.js
    β”‚     β”‚  β”‚  β”œβ”€ ShowQuestionList.js
    β”‚     β”‚  β”‚  β”œβ”€ ShowQuestionListItem.js
    β”‚     β”‚  β”‚  β”œβ”€ Subjective.js
    β”‚     β”‚  β”‚  β”œβ”€ Video.js
    β”‚     β”‚  β”‚  └─ Voice.js
    β”‚     β”‚  β”œβ”€ SurveyGridList.js
    β”‚     β”‚  β”œβ”€ SurveyModify.js
    β”‚     β”‚  β”œβ”€ SurveyPreview.js
    β”‚     β”‚  β”œβ”€ SurveyResponse.js
    β”‚     β”‚  β”œβ”€ SurveyTableList.js
    β”‚     β”‚  β”œβ”€ SurveyTitleInput.js
    β”‚     β”‚  β”œβ”€ SurveyTitleShow.js
    β”‚     β”‚  └─ TutorialContent.js
    β”‚     └─ temp
    β”‚        β”œβ”€ Features.js
    β”‚        β”œβ”€ Logo.js
    β”‚        └─ Product.js
    β”‚  
    β”œβ”€ 🧩 atoms
    β”‚  β”œβ”€ accToken.js
    β”‚  β”œβ”€ glbSvyContents.js
    β”‚  β”œβ”€ refToken.js
    β”‚  └─ subjAns.js
    β”‚  
    β”œβ”€ πŸ“¦ public
    β”‚  β”œβ”€ favicon.ico
    β”‚  β”œβ”€ img
    β”‚  β”‚  β”œβ”€ black.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ blue-yellow.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ blue.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ gray.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ icon.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ mainImage.jpg
    β”‚  β”‚  β”œβ”€ mixed.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ survey.jpg
    β”‚  β”‚  β”œβ”€ svyThumbnail01.png
    β”‚  β”‚  β”œβ”€ svyThumbnail02.png
    β”‚  β”‚  β”œβ”€ svyThumbnail1.png
    β”‚  β”‚  β”œβ”€ svyThumbnail2.png
    β”‚  β”‚  β”œβ”€ tutorial
    β”‚  β”‚  β”‚  β”œβ”€ AnalyzeChart.png
    β”‚  β”‚  β”‚  β”œβ”€ create-buttons.png
    β”‚  β”‚  β”‚  β”œβ”€ create-duo-add.png
    β”‚  β”‚  β”‚  β”œβ”€ create-duo.png
    β”‚  β”‚  β”‚  β”œβ”€ create-objective.png
    β”‚  β”‚  β”‚  β”œβ”€ create-question-types.png
    β”‚  β”‚  β”‚  β”œβ”€ create-subjective.png
    β”‚  β”‚  β”‚  β”œβ”€ list-analyze.png
    β”‚  β”‚  β”‚  β”œβ”€ list-share.png
    β”‚  β”‚  β”‚  β”œβ”€ list-svy.png
    β”‚  β”‚  β”‚  β”œβ”€ list.png
    β”‚  β”‚  β”‚  β”œβ”€ menu.png
    β”‚  β”‚  β”‚  β”œβ”€ preview.png
    β”‚  β”‚  β”‚  β”œβ”€ save-child-popup-date.png
    β”‚  β”‚  β”‚  β”œβ”€ save-child-popup.png
    β”‚  β”‚  β”‚  └─ save-parent-popup.png
    β”‚  β”‚  β”œβ”€ userBasicImg.png
    β”‚  β”‚  β”œβ”€ white.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ yellow-blue.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  β”œβ”€ yellow.png
    β”‚  β”‚  β”œβ”€ [email protected]
    β”‚  β”‚  └─ [email protected]
    β”‚  β”œβ”€ robots.txt
    β”‚  β”œβ”€ sitemap-0.xml
    β”‚  └─ sitemap.xml
    β”‚  
    β”œβ”€ πŸ“Š tests
    β”‚  β”œβ”€ header.test.js
    β”‚  β”œβ”€ login.test.js
    β”‚  β”œβ”€ share.test.js
    β”‚  β”œβ”€ signIn.test.js
    β”‚  └─ surveyTitleShow.test.js
    β”‚
    β”œβ”€ 🎨 styles
    β”‚  β”œβ”€ globals.css
    β”‚  └─ Home.module.css
    β”‚
    β”œβ”€ πŸ”© scripts
    β”‚  └─ deploy.sh
    β”‚
    β”œβ”€ 🧢 lib
    β”‚  └─ gtag.js
    β”‚
    β”œβ”€ πŸ“– README.md
    β”œβ”€ 🐳 Dockerfile
    β”œβ”€ 🀡🏻 Jenkinsfile
    β”œβ”€ .env
    β”œβ”€ package.json
    β”œβ”€ jest.config.js
    β”œβ”€ next.config.js
    β”œβ”€ sitemap.config.js
    └─ tailwind.config.js

βš– License

image


πŸ”₯ Features

🎀 μŒμ„± μ„€λ¬Έ (Duo Survey)

νΌλ“€λŠ” μƒˆλ‘œμš΄ ν˜•μ‹μ˜ 섀문인 μŒμ„± μ„€λ¬Έ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. react-audio-player 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ μŒμ„± λ…ΉμŒ 및 μž¬μƒ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ˜€μœΌλ©°, μŒμ„± λ…ΉμŒμ„ μ™„λ£Œν•˜λ©΄ 본인이 λ‹΅λ³€ν•œ 응닡을 λ‹€μ‹œ 확인해볼 수 μžˆμŠ΅λ‹ˆλ‹€. image κ°œμΈμ •λ³΄ 보호λ₯Ό μœ„ν•΄ 첫 μŒμ„± μ„€λ¬Έ μ°Έμ—¬ μ‹œ νŒμ—…μ„ 톡해 κΆŒν•œμ„ μš”μ²­ν•©λ‹ˆλ‹€. image


❔ Q Box (μžμ£Όν•˜λŠ” 질문 & 이전에 ν–ˆλ˜ 질문)

κ°„νŽΈν•˜κ³  λΉ λ₯Έ μ„€λ¬Έ μ œμž‘μ„ μœ„ν•΄ νΌλ“€λŠ” Q-Box κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. Q-Boxμ—μ„œλŠ” μ‚¬μš©μžλ“€μ΄ 자주 ν•˜λŠ” 질문 및 μ‚¬μš©μžκ°€ 이전 μ„€λ¬Έμ—μ„œ λ§Œλ“€μ—ˆλ˜ 질문 λͺ©λ‘μ„ 확인할 수 있으며, 섀문에 λ°”λ‘œ μΆ”κ°€ν•œ ν›„ 보기 및 μ§ˆλ¬Έμ„ 자유둭게 μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. image image image image

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages