Skip to content

WarmElephantMario/COMMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

76 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์‹œยท์ฒญ๊ฐ ์žฅ์•  ํ•™์Šต์ž ๋ณด์กฐ ํ”„๋กœ๊ทธ๋žจ COMMA

Team : ๋”ฐ๋œปํ•œ ์ฝ”๋ผ๋ฆฌ ๋งˆ๋ฆฌ์˜ค

AI ๊ธฐ๋ฐ˜ ํ•™์Šต์ž ๋งž์ถคํ˜• ๋Œ€์ฒดํ…์ŠคํŠธ/์‹ค์‹œ๊ฐ„ ์ž๋ง‰ ๋ฐ ๋Œ€์ฒดํ•™์Šต์ž๋ฃŒ ์ฝœ๋ก  ์ƒ์„ฑ ํ”„๋กœ๊ทธ๋žจ

COMMA : Comment Assistant
์—ด์•…ํ•œ ํ™˜๊ฒฝ์—์„œ ๊ณต๋ถ€ํ•ด ์˜จ ์‹œยท์ฒญ๊ฐ ์žฅ์•  ํ•™์Šต์ž๋“ค์—๊ฒŒ ๊ธฐ์ˆ ์  ๋„์›€์„ ์ œ๊ณตํ•˜์—ฌ ์‰ผํ‘œ๊ฐ€ ๋˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค

project.page1 project.page2 project.page3 project.page4
์‚ฌ์šฉ์ž ํ•™์Šต ์œ ํ˜• ์„ ํƒ ํ•™์Šต ์ค€๋น„ํ•˜๊ธฐ ํ™”๋ฉด ๋Œ€์ฒด ํ…์ŠคํŠธ ์˜ˆ์‹œ ์ฝœ๋ก  ์˜ˆ์‹œ



๋ชฉ์ฐจ



[1] ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์†Œ๊ฐœ

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

์ด ํ”„๋กœ์ ํŠธ๋Š” Flutter๋กœ ๊ตฌํ˜„๋œ ํ”„๋ก ํŠธ์—”๋“œ(COMMA)์™€ Node.js๋กœ ๊ตฌํ˜„๋œ ๋ฐฑ์—”๋“œ(SERVER) ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” ์ฃผ์š” ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

COMMA
โ”‚      
โ”œโ”€COMMA
โ”‚  โ”‚  firebase.json
โ”‚  โ”‚  pubspec.lock
โ”‚  โ”‚  pubspec.yaml
โ”‚  โ”‚  README.md
โ”‚  โ”‚
โ”‚  โ”œโ”€assets
โ”‚  โ”‚          
โ”‚  โ”œโ”€lib
โ”‚  โ”‚  โ”‚  10_typeselect.dart
โ”‚  โ”‚  โ”‚  12_hompage_search.dart
โ”‚  โ”‚  โ”‚  16_homepage_move.dart
โ”‚  โ”‚  โ”‚  17_allFilesPage.dart
โ”‚  โ”‚  โ”‚  1_Splash_green.dart
โ”‚  โ”‚  โ”‚  2_onboarding-1.dart
โ”‚  โ”‚  โ”‚  30_folder_screen.dart
โ”‚  โ”‚  โ”‚  31_full_folder_list_screen.dart
โ”‚  โ”‚  โ”‚  33_mypage_screen.dart
โ”‚  โ”‚  โ”‚  3_onboarding-2.dart
โ”‚  โ”‚  โ”‚  4_onboarding-3.dart
โ”‚  โ”‚  โ”‚  60prepare.dart
โ”‚  โ”‚  โ”‚  62lecture_start.dart
โ”‚  โ”‚  โ”‚  63record.dart
โ”‚  โ”‚  โ”‚  66colon.dart
โ”‚  โ”‚  โ”‚  components.dart
โ”‚  โ”‚  โ”‚  firebase_options.dart
โ”‚  โ”‚  โ”‚  main.dart
โ”‚  โ”‚  โ”‚  
โ”‚  โ”‚  โ”œโ”€api
โ”‚  โ”‚  โ”‚      api.dart
โ”‚  โ”‚  โ”‚      
โ”‚  โ”‚  โ”œโ”€env
โ”‚  โ”‚  โ”‚      env.dart
โ”‚  โ”‚  โ”‚      env.g.dart
โ”‚  โ”‚  โ”‚      
โ”‚  โ”‚  โ”œโ”€folder
โ”‚  โ”‚  โ”‚      37_folder_files_screen.dart
โ”‚  โ”‚  โ”‚      38_folder_list.dart
โ”‚  โ”‚  โ”‚      39_folder_section.dart
โ”‚  โ”‚  โ”‚      
โ”‚  โ”‚  โ”œโ”€model
โ”‚  โ”‚  โ”‚      44_font_size_provider.dart
โ”‚  โ”‚  โ”‚      45_theme.dart
โ”‚  โ”‚  โ”‚      user.dart
โ”‚  โ”‚  โ”‚      user_provider.dart
โ”‚  โ”‚  โ”‚      
โ”‚  โ”‚  โ”œโ”€mypage
โ”‚  โ”‚  โ”‚      42_help_page.dart
โ”‚  โ”‚  โ”‚      43_accessibility_settings.dart
โ”‚  โ”‚  โ”‚      44_font_size_page.dart
โ”‚  โ”‚  โ”‚      
โ”‚  โ”‚  โ””โ”€user
โ”‚  โ”‚          user_pref.dart                  
โ”‚              
โ””โ”€SERVER
    โ”‚  google-services.json
    โ”‚  index.js
    โ”‚  package-lock.json
    โ”‚  package.json


์†Œ์Šค์ฝ”๋“œ ์„ค๋ช…

COMMA๋Š” ์‹œยท์ฒญ๊ฐ ์žฅ์•  ํ•™์Šต์ž๋ฅผ ์œ„ํ•ด ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ•์˜์ž๋ฃŒ์— ๋Œ€ํ•œ ๋Œ€์ฒดํ…์ŠคํŠธ ์ž๋™ ์ƒ์„ฑ ๊ธฐ๋Šฅ
  2. ๊ฐ•์˜์ž๋ฃŒ์˜ ํ‚ค์›Œ๋“œ ์ •ํ™•๋„๋ฅผ ๋†’์ธ ์‹ค์‹œ๊ฐ„ ์ž๋ง‰ ์ƒ์„ฑ ๊ธฐ๋Šฅ
  3. ๊ฐ•์˜์ž๋ฃŒ์™€ ์ž๋ง‰ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งค์นญํ•œ ๋Œ€์ฒดํ•™์Šต์ž๋ฃŒ ์ฝœ๋ก (:) ์ƒ์„ฑ ๊ธฐ๋Šฅ

์•„๋ž˜์—์„œ๋Š” ๊ฐ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํŒŒ์ผ ๋ฐ ์ฝ”๋“œ๋ฅผ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

(1) ๋Œ€์ฒดํ…์ŠคํŠธ ์ž๋™ ์ƒ์„ฑ

์ด ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ๊ฐ•์˜์ž๋ฃŒ๋ฅผ GPT-4o API์— ๋ณด๋‚ด์–ด, ์ž๋ฃŒ์— ๋Œ€ํ•œ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ์•ฑ ํ™”๋ฉด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ํŒŒ์ผ

์ด ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ์ฃผ์š” ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • env.g.dart : GPT-4o API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ OpenAI API ํ‚ค๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • 60prepare.dart : ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•์˜์ž๋ฃŒ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ , ์ด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋ฉฐ, ๋Œ€์ฒดํ…์ŠคํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด GPT-4o API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • 63record.dart : ์ƒ์„ฑ๋œ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํ•จ์ˆ˜ ์„ค๋ช…

  • Future<List<String>> uploadImagesToFirebase(List<Uint8List> images, int userKey)
    • ์—ญํ• : ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ๊ฐ•์˜์ž๋ฃŒ(์ด๋ฏธ์ง€)๋ฅผ Firebase Storage์— ์—…๋กœ๋“œํ•˜๊ณ , ๊ฐ ์ด๋ฏธ์ง€์˜ ๋‹ค์šด๋กœ๋“œ URL ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. ๊ฐ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ Firebase Storage์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
      2. ์—…๋กœ๋“œ ์ง„ํ–‰๋ฅ ์„ _progressNotifier๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
      3. ์—…๋กœ๋“œ ์™„๋ฃŒ ํ›„ ๋‹ค์šด๋กœ๋“œ URL์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • Future<String> callChatGPT4APIForAlternativeText(List<String> imageUrls, int userKey, String lectureFileName)
    • ์—ญํ• : GPT-4o API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ•์˜์ž๋ฃŒ(์ด๋ฏธ์ง€)์˜ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ Firebase Storage์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์˜ URL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. ๊ฐ ์ด๋ฏธ์ง€์˜ URL์„ ๊ธฐ๋ฐ˜์œผ๋กœ GPT-4o API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น ์ด๋ฏธ์ง€์˜ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•จ.
      2. ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  Firebase Storage์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
      3. ๊ฐ ํ…์ŠคํŠธ ํŒŒ์ผ์˜ URL์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
      4. ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„, ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์„ ํ†ตํ•ฉํ•œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
      5. ์ตœ์ข…์ ์œผ๋กœ ํ†ตํ•ฉ๋œ ๊ฒฐ๊ณผ๋ฌผ์˜ ๋‹ค์šด๋กœ๋“œ URL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.



(2) ์‹ค์‹œ๊ฐ„ ์ž๋ง‰ ์ƒ์„ฑ

์ด ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ๊ฐ•์˜์ž๋ฃŒ์—์„œ ์ถ”์ถœํ•œ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‚ค์›Œ๋“œ ๋ถ€์ŠคํŒ…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ, ๊ฐ•์˜์ž๋ฃŒ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐ˜์˜ํ•œ ๋” ์ •ํ™•ํ•œ ์‹ค์‹œ๊ฐ„ ์ž๋ง‰์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ํŒŒ์ผ

์ด ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ์ฃผ์š” ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • 60prepare.dart : ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•์˜์ž๋ฃŒ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋ฉฐ, ํ‚ค์›Œ๋“œ ์ถ”์ถœ์„ ์œ„ํ•ด GPT-4o API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • 63record.dart : Deepgram STT API ํ‚ค ์„ค์ •, ๋…น์Œ ์‹œ์ž‘, ์‹ค์‹œ๊ฐ„ ์ž๋ง‰ ์ƒ์„ฑ, ๋…น์Œ ์ข…๋ฃŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํ•จ์ˆ˜ ์„ค๋ช…

  • Future<List<String>> callChatGPT4APIForKeywords(List<String> imageUrls)
    • ์—ญํ• : ์—…๋กœ๋“œ๋œ ๊ฐ•์˜์ž๋ฃŒ ์ด๋ฏธ์ง€์—์„œ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด GPT-4o API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ถœ๋œ ํ‚ค์›Œ๋“œ๋Š” ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ๋’ค Firebase์— ์ €์žฅํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋„ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. ๊ฐ ์ด๋ฏธ์ง€ URL์— ๋Œ€ํ•ด GPT-4 API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
      2. ์ค‘๋ณต๋œ ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Firebase์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
      3. Firebase์— ์ €์žฅ๋œ ํ‚ค์›Œ๋“œ ํŒŒ์ผ์˜ URL์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
      4. ์ตœ์ข…์ ์œผ๋กœ ์ถ”์ถœ๋œ ํ‚ค์›Œ๋“œ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • void _startRecording()
    • ์—ญํ• : ๋…น์Œ์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ์ธ์‹์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. ๋…น์Œ ์ƒํƒœ๋ฅผ recording์œผ๋กœ ์„ค์ •ํ•˜๊ณ  UI ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
      2. ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ์ธ์‹์„ ์œ„ํ•œ ์ŠคํŠธ๋ฆผ์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
      3. ๋…น์Œ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์Œ์„ฑ์„ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.

  • void _stopRecording()
    • ์—ญํ• : ๋…น์Œ์„ ์ค‘์ง€ํ•˜๊ณ  ๋‚จ์€ ์Œ์„ฑ์„ ์ตœ์ข… ํ…์ŠคํŠธ๋กœ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. ๋…น์Œ์„ ์ค‘์ง€ํ•˜๊ณ  ์ƒํƒœ๋ฅผ recorded๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
      2. ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ธ์‹๋˜์ง€ ์•Š์€ ํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
      3. ๋…น์Œ ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.



(3) ์ฝœ๋ก  ํŒŒ์ผ ์ƒ์„ฑ

์ด ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ๊ฐ•์˜์ž๋ฃŒ์™€ ์ˆ˜์—… ์ž๋ง‰ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งค์นญํ•˜์—ฌ, ๊ฐ ๊ฐ•์˜์ž๋ฃŒ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” ์ž๋ง‰์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ด€๋ จ ํŒŒ์ผ

์ด ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ์ฃผ์š” ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • 63record.dart : ๊ฐ•์˜์ž๋ฃŒ์™€ ์ž๋ง‰ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฝœ๋ก  ํŒŒ์ผ ์ƒ์„ฑ์„ ์œ„ํ•ด GPT-4o API์— ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํ•จ์ˆ˜ ์„ค๋ช…

  • Future<bool> callChatGPT4API(String pageText1, String pageText2, String scriptText)
    • ์—ญํ• : ๋‘ ๊ฐ•์˜์ž๋ฃŒ ํŽ˜์ด์ง€์˜ ํ…์ŠคํŠธ์™€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„๊ตํ•˜์—ฌ, ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์–ด๋А ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š”์ง€ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์ž‘:
      1. GPT-4o API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์–ด๋А ํŽ˜์ด์ง€์— ์†ํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
      2. ๊ฒฐ๊ณผ๊ฐ’์ด "isNext"์ด๋ฉด true, "isNotNext"์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.



์‚ฌ์šฉ๋œ ์˜คํ”ˆ์†Œ์Šค ๋ฐ ๊ธฐ์ˆ  ์Šคํƒ

์ด ํ”„๋กœ์ ํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ๋ฐ ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

1. ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ์–ธ์–ด

  • Flutter: ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ.
  • Node.js: ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ JavaScript ๋Ÿฐํƒ€์ž„.

2. ์™ธ๋ถ€ API

  • OpenAI API: GPT-4o ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ ๋Œ€์ฒด ํ…์ŠคํŠธ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ๋ถ„์„.
  • Deepgram STT API: ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ์ธ์‹์„ ์œ„ํ•œ API.

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์Šคํ† ๋ฆฌ์ง€

  • Firebase: ํŒŒ์ผ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ.
  • MySQL: ๊ฐ•์˜์ž๋ฃŒ ๋ฐ ํ‚ค์›Œ๋“œ, ๋Œ€์ฒด ํ…์ŠคํŠธ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ.

4. ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • http: Flutter์—์„œ REST API ํ˜ธ์ถœ์„ ์œ„ํ•œ HTTP ํด๋ผ์ด์–ธํŠธ.
  • provider: ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋ฐ์ดํ„ฐ ๊ณต์œ .
  • Express.js: RESTful API ๊ฐœ๋ฐœ๊ณผ ๋ผ์šฐํŒ… ๊ด€๋ฆฌ.


[2] ์‹œ์ž‘ํ•˜๊ธฐ

๋ณธ ํŠœํ† ๋ฆฌ์–ผ์€ Window OS ํ™˜๊ฒฝ ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ ํ™˜๊ฒฝ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

์„ค์น˜ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•

1. ํ”„๋กœ์ ํŠธ ํด๋ก 

git init

git clone -b dev2 --single-branch https://github.com/WarmElephantMario/COMMA.git

cloneafter


2. ํŒจํ‚ค์ง€ ์„ค์น˜

cd COMMA/COMMA

flutter pub get
flutter pub outdated
flutter pub upgrade --major-versions

3. OpenAI API ํ‚ค ์„ค์ •

lib/env/env.g.dart ์— ๋ฐœ๊ธ‰๋ฐ›์€ OpenAI API KEY๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

# lib/env/env.g.dart
static const String apiKey =
      'YOUR_API_KEY';

afteropenai



[3] ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

๋นŒ๋“œ

# COMMA/COMMA
flutter build apk --release

buildsuccess


โ€ป ๋นŒ๋“œ ๊ณผ์ • ์ค‘ ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋นŒ๋“œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

message


โ€ป ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜์„ธ์š”.
flutter clean

flutter pub get
flutter pub outdated
flutter pub upgrade --major-versions



์•ˆ๋“œ๋กœ์ด๋“œ ๋””๋ฐ”์ด์Šค์— ์•ฑ ์„ค์น˜

1. apk ํŒŒ์ผ ๋‹ค์šด

COMMA/COMMA/build/app/outputs/apk/release/app-release.apk

apkfile

์ด apk ํŒŒ์ผ์„ ์•ˆ๋“œ๋กœ์ด๋“œ ๋””๋ฐ”์ด์Šค์—์„œ ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.


apkfiledown ignoredown

์•ฑ ์„ค์น˜ ์ค‘ '์ถœ์ฒ˜๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์•ฑ'์ด๋ผ๋Š” ์•Œ๋ฆผ์ฐฝ์ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ '๋ฌด์‹œํ•˜๊ณ  ์„ค์น˜' ๋ฅผ ์„ ํƒํ•˜์—ฌ ์•ฑ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.



2. ์„ค์น˜ ์™„๋ฃŒ

์•ฑ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด COMMA ์•„์ด์ฝ˜์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ์˜จ๋ณด๋”ฉ ํ™”๋ฉด์ด ํ‘œ์‹œ๋˜๋ฉฐ, ํšŒ์›๊ฐ€์ž… ์—†์ด ๋ฐ”๋กœ ์•ฑ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

appicon

onboarding onboarding onboarding onboarding



[4] ์•ฑ ์„ค์น˜ ํŒŒ์ผ ๊ณต์œ 

COMMA ์•ฑ apk ํŒŒ์ผ ๊ณต์œ  ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๋งํฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์˜ ๋งํฌ์—์„œ apk ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›๊ณ  ์•ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ ๋ฒˆํ˜ธ๋กœ ์œ ์ €๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ์—†์ด ๋ฐ”๋กœ ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

COMMA apk ๋‹ค์šด ๋งํฌ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors