-
Notifications
You must be signed in to change notification settings - Fork 0
[add/#5] 아이콘 추가 및 README 작성 #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,239 @@ | ||
| # Kiero-Android | ||
| Kiero 안드로이드 레포잉 👶 | ||
| Kiero 안드로이드 레포지토리 👶 | ||
|
|
||
|
|
||
|
|
||
| <div align="center"> | ||
|
|
||
|  | ||
|  | ||
|  | ||
|
|
||
| ### 아이의 하루가 모험이 되는 곳 | ||
|
|
||
| <img width="1024" height="500" alt="image" src="" /> | ||
|
|
||
| **초등학생 자녀의 일정 관리와 자기주도적 습관 형성을 돕는** | ||
| **게이미피케이션 기반 성장 플랫폼** | ||
|
|
||
| [Download](#download) • [Features](#features) • [Architecture](#architecture) | ||
|
|
||
| </div> | ||
|
|
||
| --- | ||
|
|
||
| ## 💡 About Kiero | ||
|
|
||
| > "세상의 모든 아이는 '히어로'다" | ||
|
|
||
| **Kiero**는 'Kid(아이)'와 'Hero(히어로)'의 합성어입니다. | ||
|
|
||
| 잔소리가 응원이 되고, 의무가 모험이 되는 곳. | ||
| 부모와 아이가 함께 성장하는 가족 운영 플랫폼을 만듭니다. | ||
|
|
||
| ### For Parents 👑 | ||
| 잔소리 → 응원 | 불안 → 안심 | ||
| 아이의 성취를 확인하고 칭찬하며, 흩어진 스케줄을 한곳에서 관리합니다. | ||
|
|
||
| ### For Kids 🦸 | ||
| 의무 → 모험 | 통제 → 도전 | ||
| 시간표가 모험 지도로 변하고, 스스로 퀘스트를 시작하며 보상을 획득합니다. | ||
|
|
||
| ### For Family 👨👩👧👦 | ||
| 통제 → 협력 | ||
| 함께 약속을 정하고 지켜나가며, 서로를 든든한 팀원으로 느낍니다. | ||
|
|
||
| --- | ||
|
|
||
| ## ✨ Features | ||
|
|
||
| ### 🎯 서비스 플로우 | ||
|
|
||
| ``` | ||
| 부모의 설계 → 아이의 도전 → 가족의 보상 → 신뢰의 형성 | ||
| ``` | ||
|
|
||
| **STEP 1. 부모의 설계** | ||
| - 일정 등록 → 아이 화면의 `오늘의 레시피`로 변환 | ||
| - 미션 등록 → 아이 화면의 `마을 의뢰서`로 변환 | ||
| - AI 알림장 입력기로 자동 미션 생성 | ||
|
|
||
| **STEP 2. 아이의 도전** | ||
| - 퀘스트 수행 후 인증샷 제출 | ||
| - 보석(포인트) 즉시 획득 | ||
| - 현실의 성취가 게임 배경으로 반영 | ||
|
|
||
| **STEP 3. 가족의 보상** | ||
| - 소원 상점에서 보석으로 쿠폰 교환 | ||
| - 게임 30분 연장, 치킨 먹기 등 실질적 보상 | ||
| - 노력의 가시화 | ||
|
|
||
| **STEP 4. 신뢰의 형성** | ||
| - 부모는 피드로 아이의 성취 확인 | ||
| - 승인과 칭찬 메시지 전송 | ||
| - 선순환 구조 완성 | ||
|
|
||
| --- | ||
|
|
||
| ## 📥 Download | ||
|
|
||
| <a href="https://play.google.com/store/apps/details?id=com.kiero"> | ||
| <img src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" height="80"/> | ||
| </a> | ||
|
|
||
| --- | ||
|
|
||
| ## 🏗 Architecture | ||
|
|
||
| ### Layer Structure | ||
|
|
||
| Google Recommended App Architecture를 기반으로 설계되었습니다. | ||
|
|
||
| ```mermaid | ||
| graph TB | ||
| subgraph UI["UI Layer (Presentation)"] | ||
| P1[auth / kid / parent / main<br/>Compose UI + ViewModel + UiState] | ||
| end | ||
|
|
||
| subgraph Domain["Domain Layer"] | ||
| D1[auth / kid / parent<br/>Repository Interface + Entity + UseCase] | ||
| end | ||
|
|
||
| subgraph Data["Data Layer"] | ||
| DA1[auth / kid / parent<br/>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 | ||
|
|
||
| <table> | ||
| <tr> | ||
| <td align="center"> | ||
| <a href="https://github.com/vvan2"> | ||
| <br /> | ||
| <sub><b>손주완 (Lead)</b></sub> | ||
| </a> | ||
| <br /> | ||
| <sub></sub> | ||
| </td> | ||
| <td align="center"> | ||
| <a href="https://github.com/sonms"> | ||
| <br /> | ||
| <sub><b>손민성</b></sub> | ||
| </a> | ||
| <br /> | ||
| <sub></sub> | ||
| </td> | ||
| <td align="center"> | ||
| <a href="https://github.com/seungjae708"> | ||
| <br /> | ||
| <sub><b>최승재</b></sub> | ||
| </a> | ||
| <br /> | ||
| <sub></sub> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td align="center"> | ||
| <a href="https://github.com/dmp100"> | ||
| <br /> | ||
| <sub><b>성규현</b></sub> | ||
| </a> | ||
| <br /> | ||
| <sub></sub> | ||
| </td> | ||
| <td></td> | ||
| <td></td> | ||
| </tr> | ||
| </table> | ||
|
|
||
| --- | ||
|
|
||
| <div align="center"> | ||
|
|
||
| **Made with ❤️ by Kiero Team** | ||
|
|
||
| </div> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M18,9L12,15L6,9" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M15,6L9,12L15,18" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M9,6L15,12L9,18" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M18,15L12,9L6,15" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M5,14L9,17L18,6" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:pathData="M12,14.122L17.303,19.425C17.584,19.706 17.966,19.865 18.364,19.865C18.762,19.865 19.144,19.706 19.425,19.425C19.706,19.144 19.865,18.762 19.865,18.364C19.865,17.966 19.706,17.584 19.425,17.303L14.12,12L19.424,6.697C19.563,6.558 19.674,6.392 19.749,6.21C19.824,6.028 19.863,5.833 19.863,5.636C19.863,5.439 19.824,5.244 19.749,5.062C19.674,4.88 19.563,4.715 19.424,4.575C19.284,4.436 19.119,4.326 18.937,4.25C18.755,4.175 18.56,4.136 18.363,4.136C18.166,4.136 17.971,4.175 17.789,4.251C17.607,4.326 17.441,4.437 17.302,4.576L12,9.879L6.697,4.576C6.559,4.433 6.393,4.318 6.21,4.24C6.027,4.161 5.831,4.119 5.631,4.118C5.432,4.116 5.235,4.154 5.05,4.229C4.866,4.304 4.698,4.416 4.558,4.556C4.417,4.697 4.305,4.865 4.23,5.049C4.154,5.233 4.116,5.431 4.118,5.63C4.119,5.829 4.161,6.026 4.239,6.209C4.318,6.392 4.432,6.558 4.575,6.696L9.88,12L4.576,17.304C4.433,17.442 4.319,17.608 4.24,17.791C4.162,17.974 4.12,18.171 4.119,18.37C4.117,18.569 4.155,18.767 4.231,18.951C4.306,19.135 4.418,19.303 4.559,19.444C4.699,19.584 4.867,19.696 5.051,19.771C5.236,19.846 5.433,19.884 5.632,19.882C5.832,19.881 6.028,19.839 6.211,19.76C6.394,19.682 6.56,19.567 6.698,19.424L12,14.122Z" | ||
| android:fillColor="#ffffff" | ||
| android:fillType="evenOdd"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M18,6L6,18" | ||
| android:strokeLineJoin="round" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff" | ||
| android:strokeLineCap="square"/> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M6,6L18,18" | ||
| android:strokeLineJoin="round" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff" | ||
| android:strokeLineCap="square"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M14,7C14,6.068 14,5.602 13.848,5.235C13.645,4.745 13.255,4.355 12.765,4.152C12.398,4 11.932,4 11,4H8C6.114,4 5.172,4 4.586,4.586C4,5.172 4,6.114 4,8V11C4,11.932 4,12.398 4.152,12.765C4.355,13.255 4.745,13.645 5.235,13.848C5.602,14 6.068,14 7,14" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| <path | ||
| android:strokeWidth="1" | ||
| android:pathData="M12,10L18,10A2,2 0,0 1,20 12L20,18A2,2 0,0 1,18 20L12,20A2,2 0,0 1,10 18L10,12A2,2 0,0 1,12 10z" | ||
| android:fillColor="#00000000" | ||
| android:strokeColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="24dp" | ||
| android:height="24dp" | ||
| android:viewportWidth="24" | ||
| android:viewportHeight="24"> | ||
| <path | ||
| android:pathData="M11.999,2.014C6.476,2.014 1.999,6.491 1.999,12.014C1.999,17.537 6.476,22.014 11.999,22.014C17.522,22.014 21.999,17.537 21.999,12.014C21.999,6.491 17.522,2.014 11.999,2.014ZM11.999,4.014C16.417,4.014 19.999,7.596 19.999,12.014C19.999,16.432 16.417,20.014 11.999,20.014C7.581,20.014 3.999,16.432 3.999,12.014C3.999,7.596 7.581,4.014 11.999,4.014ZM11.999,7.014C11.447,7.014 10.999,7.462 10.999,8.014C10.999,8.566 11.447,9.014 11.999,9.014C12.551,9.014 12.999,8.566 12.999,8.014C12.999,7.462 12.551,7.014 11.999,7.014ZM11.999,10.014C11.447,10.014 10.999,10.462 10.999,11.014V16.014C10.999,16.566 11.447,17.014 11.999,17.014C12.551,17.014 12.999,16.566 12.999,16.014V11.014C12.999,10.462 12.551,10.014 11.999,10.014Z" | ||
| android:fillColor="#ffffff"/> | ||
| </vector> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="20dp" | ||
| android:height="18dp" | ||
| android:viewportWidth="20" | ||
| android:viewportHeight="18"> | ||
| <path | ||
| android:pathData="M20.001,8.125C20.001,12.613 15.525,16.25 10.001,16.25C8.552,16.25 7.177,16 5.935,15.551C5.47,15.891 4.712,16.355 3.814,16.746C2.876,17.152 1.747,17.5 0.626,17.5C0.372,17.5 0.146,17.348 0.048,17.113C-0.05,16.879 0.005,16.613 0.181,16.434L0.193,16.422C0.204,16.41 0.22,16.395 0.243,16.367C0.286,16.32 0.353,16.246 0.435,16.145C0.595,15.949 0.81,15.66 1.028,15.301C1.419,14.652 1.79,13.801 1.864,12.844C0.693,11.516 0.001,9.887 0.001,8.125C0.001,3.637 4.478,0 10.001,0C15.525,0 20.001,3.637 20.001,8.125Z" | ||
| android:fillColor="#232428"/> | ||
| </vector> |
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p2) profile icon 이 kid 랑 parent 구분되어서 사용되는 거니까
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 음,, 개인적으로는 kid 라는 단어가 들어가는 icon들이 좀 많을것 같아서 다른 분들 의견도 한번 들어보고 만약 작업에서 kid로 시작하는게 더 구분이 좋을거같다하면 전체 수정하는건 어떨까용 ??
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 규현님 방식은 UI 구조가 비슷하거나 똑같은데 이미지만 다르다 즉 컴포넌트 중심으로 생각하신 것 같아요! 하지만 저는 우리의 프로젝트 구조 상 아이 화면과 부모 화면이 거의 완전히 분리 되어 있어 대상 중심으로 생각되어 네이밍이 ic_kid_(역할) 형식이 되어야 나중에 검색하기 편할 것 같아요!
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 컴포넌트로 분리되기 이전에 부모, 아이 화면으로 플로우가 나뉘기 때문에 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
| android:width="29dp" | ||
| android:height="23dp" | ||
| android:viewportWidth="29" | ||
| android:viewportHeight="23"> | ||
| <group> | ||
| <clip-path | ||
| android:pathData="M0,0h29v23h-29z"/> | ||
| <path | ||
| android:pathData="M18.929,0.026C19.17,-0.09 19.592,0.225 19.605,0.235C21.096,1.002 22.296,2.81 22.584,4.321C24.074,5.359 24.952,5.932 25.841,7.376C26.01,7.643 26.164,7.916 26.302,8.192C26.423,8.212 26.545,8.258 26.659,8.334L28.603,9.625C29.056,9.927 29.135,10.558 28.77,10.96L27.203,12.684C27.201,12.686 27.199,12.687 27.197,12.689C27.108,14.399 26.618,15.945 25.724,17.326C24.756,18.86 23.331,20.056 21.449,20.913C19.567,21.793 17.305,22.233 14.665,22.233C12.024,22.233 9.749,21.793 7.841,20.913C5.959,20.056 4.534,18.871 3.566,17.359C2.79,16.128 2.325,14.758 2.172,13.25C1.905,13.241 1.641,13.118 1.466,12.862L0.154,10.941C-0.152,10.493 0.014,9.879 0.505,9.643L2.609,8.629C2.717,8.577 2.826,8.552 2.933,8.543C3.117,8.151 3.328,7.763 3.566,7.376C4.507,5.865 5.203,5.336 6.745,4.321C7.085,3.035 8.39,1.093 9.724,0.235C9.736,0.226 10.159,-0.091 10.4,0.026C10.626,0.136 10.586,0.574 10.586,0.574C10.534,0.71 10.508,0.924 10.508,1.217C10.508,1.465 10.617,2.3 10.644,2.436C12.081,1.939 13.479,1.702 14.786,1.702C16.093,1.702 17.491,1.917 18.929,2.436C18.955,2.323 18.929,1.658 18.929,1.388C18.929,1.072 18.795,0.71 18.743,0.574C18.691,0.439 18.703,0.136 18.929,0.026Z" | ||
| android:fillColor="#ffffff"/> | ||
| <path | ||
| android:pathData="M10.168,10L10.168,10A1.168,1.168 0,0 1,11.337 11.169L11.337,12.282A1.168,1.168 0,0 1,10.168 13.451L10.168,13.451A1.168,1.168 0,0 1,9 12.282L9,11.169A1.168,1.168 0,0 1,10.168 10z" | ||
| android:fillColor="#232428"/> | ||
| <path | ||
| android:pathData="M19.428,10L19.428,10A1.168,1.168 0,0 1,20.596 11.169L20.596,12.282A1.168,1.168 0,0 1,19.428 13.451L19.428,13.451A1.168,1.168 0,0 1,18.259 12.282L18.259,11.169A1.168,1.168 0,0 1,19.428 10z" | ||
| android:fillColor="#232428"/> | ||
| </group> | ||
| </vector> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3) 이거 내가 domain 빠진 버전으로 다시 노션에 올려줄게 ㅋㅋㅋ.. 까먹고 노션쪽에는 수정을 안했네..