Skip to content

๐ŸŒฟ pureme (Carbon Footprint Calculator App) - Flutter์™€ FastAPI๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์•ฑ์œผ๋กœ, ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰์„ ๊ณ„์‚ฐ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตํ†ต, ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ, ์Œ์‹ ์„ญ์ทจ, ์—๋„ˆ์ง€ ์‚ฌ์šฉ์„ ์ถ”์ ํ•˜๊ณ , ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฐธ์—ฌํ•˜๋ฉฐ, ๋žญํ‚น์„ ํ™•์ธํ•˜๊ณ  ํ™˜๊ฒฝ ๊ธฐ์—ฌ๋ฅผ ๊ด€๋ฆฌํ•˜์„ธ์š”.

Notifications You must be signed in to change notification settings

donghun-ha/pureme.Carbon_Footprint_App

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒฟ pureme (Carbon Footprint Calculator App)

pureme๋Š” Flutter์™€ Python(FastAPI)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํƒ„์†Œ ๋ฐœ์ž๊ตญ ๊ณ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉฐ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ™œ๋™ ์˜์—ญ์—์„œ์˜ ํƒ„์†Œ ๋ฐฐ์ถœ์„ ์ถ”์ ํ•˜๊ณ , ์ปค๋ฎค๋‹ˆํ‹ฐ์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์ง€์† ๊ฐ€๋Šฅํ•œ ์ƒํ™œ์„ ์žฅ๋ คํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • IDE: Visual Studio Code
  • ์–ธ์–ด ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ:
    • Flutter: Dart
    • Python: FastAPI
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: MySQL
  • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค: Firebase
  • ๋””๋ฐ”์ด์Šค: AOS,IOS

๐Ÿ“ˆ ์ฃผ์š” ๊ธฐ๋Šฅ

์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ

  • ํƒ„์†Œ ๋ฐœ์ž๊ตญ ๊ณ„์‚ฐํ•˜๊ธฐ

    • ๊ตํ†ต: ๋Œ€์ค‘๊ตํ†ต, ์ž๋™์ฐจ, ๋„๋ณด, ์ž์ „๊ฑฐ ์ด์šฉ ์‹œ ๋ฐœ์ƒ๋˜๋Š” ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰ ๊ณ„์‚ฐ
    • ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ: ์žฌํ™œ์šฉ ํ™œ๋™์œผ๋กœ ์ธํ•œ ํƒ„์†Œ ์ ˆ๊ฐ๋Ÿ‰ ๊ณ„์‚ฐ
    • ์‹์Šต๊ด€: ์‹์Šต๊ด€์— ๋”ฐ๋ฅธ ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰ ๊ณ„์‚ฐ
    • ์—๋„ˆ์ง€ ์‚ฌ์šฉ: ๊ฐ€์ • ๋‚ด ์ „๊ธฐ, ๊ฐ€์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰ ๊ณ„์‚ฐ
    • ์ ˆ๊ฐ๋Ÿ‰ ํ‘œ์‹œ: ํ‰๊ท  ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•˜์—ฌ ์ ˆ๊ฐ๋œ ํƒ„์†Œ๋Ÿ‰์„ ๋‚˜๋ฌด ์‹ฌ์€ ์ˆ˜์™€ ์ „๊ธฐ ์—๋„ˆ์ง€ ์ ˆ์•ฝ๋Ÿ‰์œผ๋กœ ์‹œ๊ฐํ™”
    • ๊ฑธ์Œ์ˆ˜ ํ‘œ์‹œ: ์‚ฌ์šฉ์ž์˜ ๊ฑด๊ฐ• ์•ฑ ๊ถŒํ•œ์„ ๋ฐ›์•„ ๊ฑธ์Œ์ˆ˜๋ฅผ ์‹œ๊ฐํ™”
  • ์ปค๋ฎค๋‹ˆํ‹ฐ

    • ์‚ฌ์šฉ์ž๋“ค์ด ์ž์‹ ์˜ ํƒ„์†Œ ์ ˆ๊ฐ ํ™œ๋™์„ ๊ณต์œ 
    • ์ข‹์•„์š”, ๋Œ“๊ธ€, ์‚ฌ์ง„ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ
    • ๋Œ€๋Œ“๊ธ€ ๊ธฐ๋Šฅ์œผ๋กœ ํ™œ๋ฐœํ•œ ์†Œํ†ต ๊ฐ€๋Šฅ
  • ๋žญํ‚น ํŽ˜์ด์ง€

    • ์ „์ฒด ์‚ฌ์šฉ์ž ์ค‘ ์ƒ์œ„ 1-10์œ„ ์‚ฌ์šฉ์ž ํ‘œ์‹œ
    • ๊ฐœ์ธ์˜ ์ˆœ์œ„์™€ ์ ˆ๊ฐ๋Ÿ‰ ๋ณ„๋„๋กœ ํ™•์ธ ๊ฐ€๋Šฅ
  • ๋งˆ์ด ํŽ˜์ด์ง€

    • ์ž์‹ ์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€ ํ™•์ธ ๋ฐ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ
    • ํšŒ์› ์ •๋ณด ์ˆ˜์ • ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
    • ํƒ„์†Œ ๋ฐœ์ž๊ตญ ๋ถ„์„ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํƒ„์†Œ ๋ฐœ์ž๊ตญ ๋น„๊ต ์ฐจํŠธ ์‹œ๊ฐํ™”
    • ๊ธฐ๋ถ€ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋ถ€ ํƒญ

๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ

  • ์•ฑ ํ†ต๊ณ„

    • ์ผ์ผ ์œ ์ € ์ˆ˜ ๋ฐ ๊ฐ€์ž… ์ˆ˜๋ฅผ ์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”
  • Feed ๊ด€๋ฆฌ

    • ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ฒŒ์‹œ๊ธ€์„ ๊ฒ€ํ† 
    • ๊ฒŒ์‹œ๊ธ€ ์ˆจ๊น€ ์ฒ˜๋ฆฌ ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ
  • ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

    • ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ณ„์ • ์ •์ง€(1์ผ, 1์ฃผ์ผ, 30์ผ) ๊ธฐ๋Šฅ
  • ์‹ ๊ณ  ๊ด€๋ฆฌ

    • ์‹ ๊ณ ๋œ ๊ฒŒ์‹œ๋ฌผ์„ ํ™•์ธํ•˜๊ณ  ์กฐ์น˜

๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ

ํ”„๋ก ํŠธ์—”๋“œ

  • Flutter: ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  • ํŒจํ„ด: MVVM (Model-View-ViewModel) ์•„ํ‚คํ…์ฒ˜
    • Model: ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ด€๋ฆฌ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ, API ์‘๋‹ต ๋ชจ๋ธ)
      • View: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ ์š”์†Œ (Flutter ์œ„์ ฏ)
      • ViewModel: ๋ทฐ์™€ ๋ชจ๋ธ ๊ฐ„์˜ ์ค‘์žฌ์ž ์—ญํ• , ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ
  • ์ฃผ์š” ํŒจํ‚ค์ง€
    • cloud_firestore: ^5.4.4: Firebase Firestore ์—ฐ๋™์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ ์ œ๊ณต
    • firebase_core: ^3.6.0: Firebase ์ดˆ๊ธฐํ™” ๋ฐ ์„ค์ • ๊ด€๋ฆฌ
    • firebase_storage: ^12.3.2: Firebase Storage๋ฅผ ํ†ตํ•œ ์ด๋ฏธ์ง€ ๋ฐ ํŒŒ์ผ ์ €์žฅ
    • get: ^4.6.6: ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋ผ์šฐํŒ…์„ ์œ„ํ•œ GetX ํŒจํ‚ค์ง€
    • get_storage: ^2.1.1: ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ
    • http: ^1.2.2: REST API ํ†ต์‹ ์„ ์œ„ํ•œ HTTP ํด๋ผ์ด์–ธํŠธ
    • image_picker: ^1.1.2: ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๊ณ  ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
    • like_button: ^2.0.5: ๊ฒŒ์‹œ๊ธ€์— ์ข‹์•„์š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • syncfusion_flutter_charts: ^27.1.52: ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ
    • webview_flutter: ^4.8.0: ์•ฑ ๋‚ด์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์›น๋ทฐ ํ†ตํ•ฉ
    • health: ^11.1.0: ๊ฑด๊ฐ• ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์œ„ํ•œ ํŒจํ‚ค์ง€
    • permission_handler: ^10.0.0: ๋‹ค์–‘ํ•œ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต

๋ฐฑ์—”๋“œ

  • Python (FastAPI): ๊ณ ์„ฑ๋Šฅ API ์„œ๋ฒ„ ๊ตฌ์ถ•
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: MySQL
  • Firebase: ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์Šคํ† ๋ฆฌ์ง€(๊ฒŒ์‹œ๊ธ€ ๋ฐ ๋Œ“๊ธ€ ๊ด€๋ฆฌ)

๐Ÿ› ๏ธ ์„ค์น˜ ๋ฐฉ๋ฒ•

1. ์ €์žฅ์†Œ ํด๋ก ํ•˜๊ธฐ

git clone https://github.com/์‚ฌ์šฉ์ž์ด๋ฆ„/pureme.Carbon_Footprint_App.git
cd pureme.Carbon_Footprint_Calculation-App

2. ํ”„๋ก ํŠธ์—”๋“œ ์„ค์ •

flutter pub get

3. ๋ฐฑ์—”๋“œ ์„ค์ •

  • ์„œ๋ฒ„ ์‹คํ–‰
cd/ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ/python
uvicorn pureme:app --reload

About

๐ŸŒฟ pureme (Carbon Footprint Calculator App) - Flutter์™€ FastAPI๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์•ฑ์œผ๋กœ, ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰์„ ๊ณ„์‚ฐ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตํ†ต, ๋ถ„๋ฆฌ์ˆ˜๊ฑฐ, ์Œ์‹ ์„ญ์ทจ, ์—๋„ˆ์ง€ ์‚ฌ์šฉ์„ ์ถ”์ ํ•˜๊ณ , ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฐธ์—ฌํ•˜๋ฉฐ, ๋žญํ‚น์„ ํ™•์ธํ•˜๊ณ  ํ™˜๊ฒฝ ๊ธฐ์—ฌ๋ฅผ ๊ด€๋ฆฌํ•˜์„ธ์š”.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 77.6%
  • Python 9.8%
  • C++ 5.7%
  • CMake 4.5%
  • Ruby 1.1%
  • Swift 0.6%
  • Other 0.7%