diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..726a392 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Kiero \ No newline at end of file diff --git a/README.md b/README.md index 0b1c520..a8e58c3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,239 @@ # Kiero-Android -Kiero 안드로이드 레포잉 👶 +Kiero 안드로이드 레포지토리 👶 + + + +
+ +![Kotlin](https://img.shields.io/badge/Kotlin-2.2.21-7F52FF?style=flat&logo=kotlin&logoColor=white +) +![Android](https://img.shields.io/badge/Android-34A853?style=flat&logo=android&logoColor=white) +![MinSDK](https://img.shields.io/badge/minSdk-28-3DDC84?style=flat&logo=android&logoColor=white) + +### 아이의 하루가 모험이 되는 곳 + +image + +**초등학생 자녀의 일정 관리와 자기주도적 습관 형성을 돕는** +**게이미피케이션 기반 성장 플랫폼** + +[Download](#download) • [Features](#features) • [Architecture](#architecture) + +
+ +--- + +## 💡 About Kiero + +> "세상의 모든 아이는 '히어로'다" + +**Kiero**는 'Kid(아이)'와 'Hero(히어로)'의 합성어입니다. + +잔소리가 응원이 되고, 의무가 모험이 되는 곳. +부모와 아이가 함께 성장하는 가족 운영 플랫폼을 만듭니다. + +### For Parents 👑 +잔소리 → 응원 | 불안 → 안심 +아이의 성취를 확인하고 칭찬하며, 흩어진 스케줄을 한곳에서 관리합니다. + +### For Kids 🦸 +의무 → 모험 | 통제 → 도전 +시간표가 모험 지도로 변하고, 스스로 퀘스트를 시작하며 보상을 획득합니다. + +### For Family 👨‍👩‍👧‍👦 +통제 → 협력 +함께 약속을 정하고 지켜나가며, 서로를 든든한 팀원으로 느낍니다. + +--- + +## ✨ Features + +### 🎯 서비스 플로우 + +``` +부모의 설계 → 아이의 도전 → 가족의 보상 → 신뢰의 형성 +``` + +**STEP 1. 부모의 설계** +- 일정 등록 → 아이 화면의 `오늘의 레시피`로 변환 +- 미션 등록 → 아이 화면의 `마을 의뢰서`로 변환 +- AI 알림장 입력기로 자동 미션 생성 + +**STEP 2. 아이의 도전** +- 퀘스트 수행 후 인증샷 제출 +- 보석(포인트) 즉시 획득 +- 현실의 성취가 게임 배경으로 반영 + +**STEP 3. 가족의 보상** +- 소원 상점에서 보석으로 쿠폰 교환 +- 게임 30분 연장, 치킨 먹기 등 실질적 보상 +- 노력의 가시화 + +**STEP 4. 신뢰의 형성** +- 부모는 피드로 아이의 성취 확인 +- 승인과 칭찬 메시지 전송 +- 선순환 구조 완성 + +--- + +## 📥 Download + + + + + +--- + +## 🏗 Architecture + +### Layer Structure + +Google Recommended App Architecture를 기반으로 설계되었습니다. + +```mermaid +graph TB + subgraph UI["UI Layer (Presentation)"] + P1[auth / kid / parent / main
Compose UI + ViewModel + UiState] + end + + subgraph Domain["Domain Layer"] + D1[auth / kid / parent
Repository Interface + Entity + UseCase] + end + + subgraph Data["Data Layer"] + DA1[auth / kid / parent
Repository Impl + DataSource + DTO] + end + + subgraph Core["Core Modules"] + direction LR + CN[Network] + CD[DesignSystem] + CNV[Navigation] + CC[Common] + CM[Model] + end + + UI --> Domain + Domain --> Data + + UI -.-> Core + Domain -.-> Core + Data -.-> Core + + style UI fill:#81C784 + style Domain fill:#64B5F6 + style Data fill:#455A64 + style Core fill:#FFE082 +``` + + +### Package Structure + +``` +com.kiero +├── core/ +│ ├── common +│ │ ├── extension/ Kotlin 확장 함수 +│ │ └── util/ 공통 유틸 함수 +│ ├── designsystem +│ │ ├── component/ 공통 UI 컴포넌트 +│ │ └── theme/ 디자인 시스템 (Color, Typography 등) +│ ├── model/ 공통으로 사용하는 모델 +│ ├── navigation/ 앱 전역 Navigation 정의 +│ └── network +│ ├── di/ 네트워크 관련 DI 모듈 +│ └── model/ 공통 네트워크 모델 +│ +├── data +│ ├── auth +│ │ ├── local +│ │ │ ├── datasource +│ │ │ └── datasourceimpl/ Local DataSource 구현체 +│ │ ├── mapper/ DTO ↔ Domain Entity 매핑 +│ │ ├── remote +│ │ │ ├── api/ Retrofit Service +│ │ │ ├── datasource +│ │ │ ├── datasourceimpl/ Remote DataSource 구현체 +│ │ │ └── dto +│ │ └── repositoryimpl/ Domain Repository 구현체 +│ │ +│ ├── kid/ auth와 동일한 구조 +│ ├── parent/ auth와 동일한 구조 +│ └── di/ Data Layer DI 모듈 +│ +├── domain +│ ├── auth +│ │ ├── model/ Domain Entity +│ │ │ └── DummyEntity +│ │ └── repository/ Repository Interface +│ │ └── DummyRepository +│ │ +│ ├── kid/ auth와 동일한 구조 +│ └── parent/ auth와 동일한 구조 +│ +└── presentation + ├── auth + │ ├── component/ Auth 전용 UI 컴포넌트 + │ ├── model/ UiState, UiEvent, SideEffect + │ ├── navigation/ Auth 관련 Navigation + │ ├── viewmodel/ 상태 관리 (ViewModel) + │ └── AuthScreen.kt + │ + ├── kid + ├── main + ├── parent + └── KieroApplication + +``` + +------ +## 👥 Contributors + + + + + + + + + + + + +
+ +
+ 손주완 (Lead) +
+
+ +
+ +
+ 손민성 +
+
+ +
+ +
+ 최승재 +
+
+ +
+ +
+ 성규현 +
+
+ +
+ +--- + +
+ +**Made with ❤️ by Kiero Team** + +
\ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_down.xml b/app/src/main/res/drawable/ic_arrow_down.xml new file mode 100644 index 0000000..b6efc96 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_down.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_arrow_left.xml b/app/src/main/res/drawable/ic_arrow_left.xml new file mode 100644 index 0000000..45bdac3 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_left.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_arrow_right.xml b/app/src/main/res/drawable/ic_arrow_right.xml new file mode 100644 index 0000000..c006395 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_right.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_arrow_up.xml b/app/src/main/res/drawable/ic_arrow_up.xml new file mode 100644 index 0000000..895e06c --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_up.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml new file mode 100644 index 0000000..a95ef69 --- /dev/null +++ b/app/src/main/res/drawable/ic_check.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..a9a73a3 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_close_light.xml b/app/src/main/res/drawable/ic_close_light.xml new file mode 100644 index 0000000..226d92d --- /dev/null +++ b/app/src/main/res/drawable/ic_close_light.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_copy.xml b/app/src/main/res/drawable/ic_copy.xml new file mode 100644 index 0000000..f5df017 --- /dev/null +++ b/app/src/main/res/drawable/ic_copy.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/ic_info_circle.xml b/app/src/main/res/drawable/ic_info_circle.xml new file mode 100644 index 0000000..713d0bc --- /dev/null +++ b/app/src/main/res/drawable/ic_info_circle.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_kakao_login.xml b/app/src/main/res/drawable/ic_kakao_login.xml new file mode 100644 index 0000000..39cfdd3 --- /dev/null +++ b/app/src/main/res/drawable/ic_kakao_login.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_kid_profile.xml b/app/src/main/res/drawable/ic_kid_profile.xml new file mode 100644 index 0000000..76424fa --- /dev/null +++ b/app/src/main/res/drawable/ic_kid_profile.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_kid_tab_journey.xml b/app/src/main/res/drawable/ic_kid_tab_journey.xml new file mode 100644 index 0000000..40ecd8b --- /dev/null +++ b/app/src/main/res/drawable/ic_kid_tab_journey.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_kid_tab_mission.xml b/app/src/main/res/drawable/ic_kid_tab_mission.xml new file mode 100644 index 0000000..bd58a59 --- /dev/null +++ b/app/src/main/res/drawable/ic_kid_tab_mission.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_kid_tab_wish.xml b/app/src/main/res/drawable/ic_kid_tab_wish.xml new file mode 100644 index 0000000..6bb54ae --- /dev/null +++ b/app/src/main/res/drawable/ic_kid_tab_wish.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_kid_well_of_wish.xml b/app/src/main/res/drawable/ic_kid_well_of_wish.xml new file mode 100644 index 0000000..12379a0 --- /dev/null +++ b/app/src/main/res/drawable/ic_kid_well_of_wish.xml @@ -0,0 +1,15 @@ + + + + diff --git a/app/src/main/res/drawable/ic_loading_char.xml b/app/src/main/res/drawable/ic_loading_char.xml new file mode 100644 index 0000000..edfe12b --- /dev/null +++ b/app/src/main/res/drawable/ic_loading_char.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_parent_addschedule_mission.xml b/app/src/main/res/drawable/ic_parent_addschedule_mission.xml new file mode 100644 index 0000000..d1d7eb8 --- /dev/null +++ b/app/src/main/res/drawable/ic_parent_addschedule_mission.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/ic_parent_addschedule_notice.xml b/app/src/main/res/drawable/ic_parent_addschedule_notice.xml new file mode 100644 index 0000000..79a26c0 --- /dev/null +++ b/app/src/main/res/drawable/ic_parent_addschedule_notice.xml @@ -0,0 +1,56 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_parent_profile.xml b/app/src/main/res/drawable/ic_parent_profile.xml new file mode 100644 index 0000000..81fb84c --- /dev/null +++ b/app/src/main/res/drawable/ic_parent_profile.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_parent_tab_alarm.xml b/app/src/main/res/drawable/ic_parent_tab_alarm.xml new file mode 100644 index 0000000..cb7409b --- /dev/null +++ b/app/src/main/res/drawable/ic_parent_tab_alarm.xml @@ -0,0 +1,17 @@ + + + + diff --git a/app/src/main/res/drawable/ic_parent_tab_schedule.xml b/app/src/main/res/drawable/ic_parent_tab_schedule.xml new file mode 100644 index 0000000..dd5ddc4 --- /dev/null +++ b/app/src/main/res/drawable/ic_parent_tab_schedule.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/app/src/main/res/drawable/img_app_logo.png b/app/src/main/res/drawable/img_app_logo.png new file mode 100644 index 0000000..e8493e8 Binary files /dev/null and b/app/src/main/res/drawable/img_app_logo.png differ diff --git a/app/src/main/res/drawable/img_kid_coin.png b/app/src/main/res/drawable/img_kid_coin.png new file mode 100644 index 0000000..947dcd5 Binary files /dev/null and b/app/src/main/res/drawable/img_kid_coin.png differ diff --git a/app/src/main/res/drawable/img_kid_dialog_char.png b/app/src/main/res/drawable/img_kid_dialog_char.png new file mode 100644 index 0000000..309cf62 Binary files /dev/null and b/app/src/main/res/drawable/img_kid_dialog_char.png differ diff --git a/app/src/main/res/drawable/img_kid_journey_piano_background.png b/app/src/main/res/drawable/img_kid_journey_piano_background.png new file mode 100644 index 0000000..16d5d70 Binary files /dev/null and b/app/src/main/res/drawable/img_kid_journey_piano_background.png differ diff --git a/app/src/main/res/drawable/img_kid_journey_stone_blue.png b/app/src/main/res/drawable/img_kid_journey_stone_blue.png new file mode 100644 index 0000000..fe36e3b Binary files /dev/null and b/app/src/main/res/drawable/img_kid_journey_stone_blue.png differ diff --git a/app/src/main/res/drawable/img_kid_journey_stone_green.png b/app/src/main/res/drawable/img_kid_journey_stone_green.png new file mode 100644 index 0000000..be7ed5e Binary files /dev/null and b/app/src/main/res/drawable/img_kid_journey_stone_green.png differ diff --git a/app/src/main/res/drawable/img_kid_journey_stone_red.png b/app/src/main/res/drawable/img_kid_journey_stone_red.png new file mode 100644 index 0000000..2dda580 Binary files /dev/null and b/app/src/main/res/drawable/img_kid_journey_stone_red.png differ diff --git a/app/src/main/res/drawable/img_main_char.png b/app/src/main/res/drawable/img_main_char.png new file mode 100644 index 0000000..6de1595 Binary files /dev/null and b/app/src/main/res/drawable/img_main_char.png differ