Skip to content

Commit 40a04da

Browse files
committed
Merge remote-tracking branch 'origin/release/1.1.1'
2 parents c7cf0a4 + 12b8e3f commit 40a04da

File tree

36 files changed

+2026
-861
lines changed

36 files changed

+2026
-861
lines changed

.github/pull_request_template.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## PR chekList
2+
- [ ] ktLint 포맷을 지킨다.
3+
- [ ] indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다.
4+
- [ ] 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만든다.
5+
- [ ] class를 최대한 작게 만든다.
6+
- [ ] else를 지양한다(얼리 리턴 사용).
7+
18
## Related issue 🛠
29
- closed #이슈넘버
310

@@ -10,4 +17,4 @@
1017
## Uncompleted Tasks 😅
1118
- [ ] Task1
1219

13-
## To Reviewers 📢
20+
## To Reviewers 📢

README.md

Lines changed: 174 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,196 @@
1-
<h1 align="center">Hilingual</h1>
2-
<h3 align="center">AI 피드백으로 완성하는 나만의 영어 일기</h3>
3-
<p align="center">
4-
<img src="https://img.shields.io/badge/Android-000000?style=for-the-badge&logo=android&logoColor=3DDC84&labelColor=000000&color=000000" />
5-
<img src="https://img.shields.io/badge/Compose_1.5.15-000000?style=for-the-badge&logo=jetpackcompose&logoColor=4285F4&labelColor=000000&color=000000" />
6-
<img src="https://img.shields.io/badge/Kotlin_2.2.0-000000?style=for-the-badge&logo=kotlin&logoColor=7F52FF&labelColor=000000&color=000000" />
7-
</p>
8-
9-
<p align="center">
10-
<img src="https://github.com/user-attachments/assets/21a2dd30-5128-43b1-9436-d4d047231ada">
11-
</p>
12-
13-
<br>
14-
15-
**‘Hilingual’** 은 영어 일기 작성에 대한 AI 피드백을 통해 사용자가 꾸준히 영어를 학습하고 실력을 향상시킬 수 있도록 돕는 앱 서비스입니다.
16-
Hilingual과 함께 영어 일기 습관을 만들고, 자연스러운 영어 표현을 익혀보세요!
17-
18-
<br>
19-
20-
## MAIN FUNCTION
21-
<img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/b81f7111-bf2e-4171-9b26-d342cd390f5b" />
22-
23-
<br><br>
24-
25-
| 1️⃣ 영어 일기 주제 제공 | 2️⃣ 영어 일기 작성 |
26-
|:---:|:---:|
27-
<img width="500" alt="image" src="https://github.com/user-attachments/assets/3788e7df-2434-4021-a8ef-8a1ac9620382" /> | <img width="500" alt="image" src="https://github.com/user-attachments/assets/48b4f69e-a8a9-407d-a943-341367347a44" />
28-
> <i>매일 제공되는 새로운 주제로 영어 일기를 작성해보세요. 생각이 나지 않는 단어나 문장은 한글로 써도 괜찮아요. 사진을 첨부하여 더욱 생생한 기록을 남길 수도 있습니다.</i></br>
29-
30-
<br>
1+
# Hi-lingual
312

32-
| 3️⃣ 작성한 일기에 대한 AI 피드백 제공 | 4️⃣ 나만의 단어장으로 복습 |
33-
|:---:|:---:|
34-
<img width="500" alt="image" src="https://github.com/user-attachments/assets/ecb747c9-095d-46a2-90b3-aca5d570c210" /> | <img width="500" alt="image" src="https://github.com/user-attachments/assets/f3a952dd-8278-4335-9ae5-44e9df4644d7" />
35-
> <i> 작성한 일기에 대해 AI가 문법, 철자, 그리고 더 자연스러운 표현을 추천해줍니다. 내 영어 수준에 맞는 맞춤형 피드백으로 실력을 향상시켜 보세요. </i>
3+
![Kotlin](https://img.shields.io/badge/Kotlin-2.2.21-7F52FF?style=flat&logo=kotlin&logoColor=white)
4+
![Android](https://img.shields.io/badge/Android-34A853?style=flat&logo=android&logoColor=white)
5+
![MinSDK](https://img.shields.io/badge/minSdk-30-3DDC84?style=flat&logo=android&logoColor=white)
366

37-
<br>
7+
**하이링구얼: 영어 일기, 기록**
388

39-
## CONTRIBUTORS
40-
| 🤴한민재<br/>[@angryPodo](https://github.com/angryPodo) | 🦔김나현<br/>[@nahy-512](https://github.com/nahy-512) | 😻김나현<br/>[@nhyeonii](https://github.com/nhyeonii) |
41-
|:---:|:---:|:---:|
42-
| <img src="https://github.com/user-attachments/assets/4a0a822a-f7ea-47c5-83ca-563ea3b90cc4" height="280" /> | <img src="https://github.com/user-attachments/assets/612c32be-c117-45a6-9392-958ff11de010" height="280" /> | <img src="https://github.com/user-attachments/assets/7af7e584-b763-407c-8628-bdccf731d8b7" height="280" /> |
43-
| `스플래시`, `온보딩`<br/>`로그인`,`홈(캘린더)` | `일기 상세` | `단어장` |
44-
45-
| 🐻문지영<br/>[@Daljyeong](https://github.com/Daljyeong) | 🎓박효빈<br/>[@Hyobeen-Park](https://github.com/Hyobeen-Park) |
46-
|:---:|:---:|
47-
| <img src="https://github.com/user-attachments/assets/fc497adb-66b1-4748-b864-7c5e2a18d82f" height="280" /> | <img src="https://github.com/user-attachments/assets/6bedede6-fd60-4514-90ad-7c596ce41fbb" height="280" /> |
48-
| `일기 작성` | `멘토` |
49-
50-
<br>
9+
<p align="center">
10+
<img width="1024" height="500" alt="image" src="https://github.com/user-attachments/assets/75940f68-5748-4bcd-958a-925555c09c36" />
11+
</p>
5112

13+
> "영어를 부담스러운 공부가 아닌, 나를 표현하는 언어로 느낄 수 있도록"
5214
53-
## SCREENSHOTS
54-
|| 1 | 2 |
55-
|:-------------:|:-----------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------:|
56-
| 로그인 <br> 온보딩 | <img width="200px" src="https://github.com/user-attachments/assets/9af6fb8f-bf17-47d2-99ff-28983946f0c7"/> | <img width="200px" src="https://github.com/user-attachments/assets/2aa36354-9713-4e38-b6e8-06a58ab15531"/> | | |
57-
| 캘린더 | <img width="200px" src="https://github.com/user-attachments/assets/39b0d2bd-d627-40ea-b91f-139db4974030"/> | <img width="200px" src="https://github.com/user-attachments/assets/3551dcb8-8104-424a-8c76-544ea033af61"/> | |
58-
| 일기작성 <br> AI 피드백 | <img width="200px" src="https://github.com/user-attachments/assets/c69e0ffb-bbe5-4990-89c2-10aadc15bbd6"/> | <img width="200px" src="https://github.com/user-attachments/assets/661e474f-7314-486e-8e71-afcb649f6af6"/> |
59-
| 일기, AI 피드백 확인 | <img width="200px" src ="https://github.com/user-attachments/assets/4c816af6-ee0c-49cf-9104-838d618e37c4"/> | <img width="200px" src="https://github.com/user-attachments/assets/67fff437-2dd8-4d45-8602-d1d2e1b18633"/> |
60-
| 단어장 | <img width="200px" src="https://github.com/user-attachments/assets/24ce2255-4a6a-452b-a3d6-a990ea5de2b7"/> | <img width="200px" src="https://github.com/user-attachments/assets/5cd50d60-0dce-4012-a395-808bdd8e63e1"/> |
15+
하이링구얼은 일상 속 영어를 함께하는 일기 기록 서비스입니다.
6116

62-
<br>
17+
- 시간에 쫓겨 영어 공부를 미루셨던 분
18+
- 교과서 영어가 아닌 실생활 영어를 배우고 싶었던 분
19+
- 일상 기록에 동기부여를 바라는 분
6320

21+
모두, 하루를 기록하며 영어를 나의 것으로 만들어보세요 😊
6422

65-
## ARCHITECTURE
66-
Hilingual은 Google의 권장 아키텍처 가이드를 따르며, **MVVM (Model-View-ViewModel)** 패턴을 기반으로 설계되었습니다. 데이터의 흐름을 단방향으로 관리하여 예측 가능하고 유지보수하기 쉬운 구조를 지향합니다.
23+
## Download
6724

68-
**Presentation Layer ↔ Data Layer**
25+
<a href="https://play.google.com/store/apps/details?id=com.hilingual">
26+
<img src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" height="80"/>
27+
</a>
6928

70-
- **Presentation Layer**: UI와 관련된 로직을 처리합니다.
71-
- **Data Layer**: 데이터 소스(네트워크, 로컬 DB)를 관리하고, 비즈니스 로직을 처리합니다. (Repository, DataSource)
29+
## Tech Stack
7230

73-
<br>
31+
| Category | Stack |
32+
| --- | --- |
33+
| **Architecture** | Recommended App Architecture |
34+
| **UI** | Jetpack Compose |
35+
| **DI** | Dagger-Hilt |
36+
| **Asynchronous** | Kotlin Coroutine, Flow |
37+
| **Modularization** | Android App Modularization |
38+
| **Build Configuration** | Gradle Version Catalog, Custom Convention Plugins |
7439

40+
## Module Dependency Graph
7541

76-
## FOLDER STRUCTURE
42+
### High-Level Architecture
7743

78-
```
79-
Hi-lingual
80-
├── app/ // 앱 진입점
81-
├── build-logic/ // 빌드 로직
82-
├── core/ // 공통 레이어
83-
│ ├── common/
84-
│ ├── designsystem/
85-
│ ├── localstorage/
86-
│ ├── navigation/
87-
│ └── network/
88-
├── data/ // 데이터 레이어
89-
│ ├── auth/ // 인증
90-
│ ├── calendar/ // 캘린더
91-
│ ├── diary/ // 일기
92-
│ ├── user/ // 사용자
93-
│ └── voca/ // 단어장
94-
└── presentation/ // UI 레이어
95-
├── auth/ // 인증 UI
96-
├── community/ // 커뮤니티 UI
97-
├── diaryfeedback/ // 일기 피드백 UI
98-
├── diarywrite/ // 일기 작성 UI
99-
├── home/ // 홈 UI
100-
├── main/ // 메인 UI
101-
├── mypage/ // 마이페이지 UI
102-
├── onboarding/ // 온보딩 UI
103-
├── splash/ // 스플래시 UI
104-
└── voca/ // 단어장 UI
44+
```mermaid
45+
graph TD
46+
A[app] --> P[Presentation Layer]
47+
P --> D[Data Layer]
48+
D --> C[Core Layer]
10549
```
10650

107-
## Module Dependency Graph
108-
![Module Dependency Graph](graph/project.dot.png)
51+
### Presentation Layer Dependencies
52+
53+
> **presentation:main** 모듈은 아래 그래프의 모든 Presentation 모듈을 포함하며,
54+
> 모든 Presentation 모듈은 공통적으로 **core:ui****core:navigation** 모듈에 의존합니다.
55+
56+
```mermaid
57+
graph TD
58+
subgraph Presentation Layer
59+
auth["auth"]
60+
diaryfeedback["diaryfeedback"]
61+
diarywrite["diarywrite"]
62+
feed["feed"]
63+
feeddiary["feeddiary"]
64+
feedprofile["feedprofile"]
65+
home["home"]
66+
mypage["mypage"]
67+
notification["notification"]
68+
onboarding["onboarding"]
69+
otp["otp"]
70+
splash["splash"]
71+
voca["voca"]
72+
end
73+
74+
subgraph Data Layer
75+
data_auth["data:auth"]
76+
data_calendar["data:calendar"]
77+
data_diary["data:diary"]
78+
data_feed["data:feed"]
79+
data_user["data:user"]
80+
data_voca["data:voca"]
81+
end
82+
83+
auth --> data_auth
84+
auth --> data_user
85+
diaryfeedback --> data_diary
86+
diarywrite --> data_calendar
87+
diarywrite --> data_diary
88+
feed --> data_feed
89+
feed --> data_diary
90+
feed --> data_user
91+
feeddiary --> data_diary
92+
feeddiary --> data_feed
93+
feeddiary --> data_user
94+
feedprofile --> data_feed
95+
feedprofile --> data_user
96+
feedprofile --> data_diary
97+
home --> data_user
98+
home --> data_diary
99+
home --> data_calendar
100+
mypage --> data_user
101+
mypage --> data_auth
102+
notification --> data_user
103+
onboarding --> data_user
104+
otp --> data_user
105+
otp --> data_auth
106+
splash --> data_auth
107+
splash --> data_user
108+
voca --> data_voca
109+
voca --> data_diary
110+
```
109111

112+
### Data Layer Dependencies
113+
114+
```mermaid
115+
graph TD
116+
subgraph Data Layer
117+
auth["auth"]
118+
calendar["calendar"]
119+
diary["diary"]
120+
feed["feed"]
121+
presigned["presigned"]
122+
user["user"]
123+
voca["voca"]
124+
end
125+
126+
subgraph Core Layer
127+
core_network["core:network"]
128+
core_localstorage["core:localstorage"]
129+
core_common["core:common"]
130+
end
131+
132+
auth --> core_network
133+
auth --> core_localstorage
134+
auth --> core_common
135+
136+
calendar --> core_network
137+
calendar --> core_localstorage
138+
calendar --> core_common
139+
140+
diary --> presigned
141+
diary --> core_network
142+
diary --> core_localstorage
143+
diary --> core_common
144+
145+
feed --> core_network
146+
feed --> core_localstorage
147+
feed --> core_common
148+
149+
presigned --> core_network
150+
presigned --> core_localstorage
151+
presigned --> core_common
152+
153+
user --> presigned
154+
user --> core_network
155+
user --> core_localstorage
156+
user --> core_common
157+
158+
voca --> core_network
159+
voca --> core_localstorage
160+
voca --> core_common
161+
```
110162

111-
## TECH STACK
163+
### Core Layer Dependencies
164+
165+
```mermaid
166+
graph TD
167+
subgraph Core Layer
168+
ui["ui"]
169+
designsystem["designsystem"]
170+
network["network"]
171+
localstorage["localstorage"]
172+
common["common"]
173+
crypto["crypto"]
174+
navigation["navigation"]
175+
end
176+
177+
ui --> designsystem
178+
ui --> common
179+
designsystem --> common
180+
network --> localstorage
181+
network --> common
182+
localstorage --> crypto
183+
```
112184

113-
| Category | Stack |
114-
| :-------------- | :----------------------------------------------------- |
115-
| **Architecture** | MVVM, Unidirectional Data Flow |
116-
| **UI** | 100% Jetpack Compose |
117-
| **DI** | Hilt |
118-
| **Asynchronous** | Coroutine, Flow |
119-
| **Navigation** | Jetpack Navigation Compose (Type-safe) |
120-
| **Network** | Retrofit2, OkHttp3, Kotlinx Serialization |
121-
| **Local DB** | Room, DataStore |
122-
| **Image Loading**| Coil |
123-
| **ETC** | Timber, Lottie, ML Kit, Google Identity Service, Balloon |
185+
## Contributors
124186

187+
| 🤴한민재<br/>[@angryPodo](https://github.com/angryPodo) | 🦔김나현<br/>[@nahy-512](https://github.com/nahy-512) | 😻김나현<br/>[@nhyeonii](https://github.com/nhyeonii) | 🐻문지영<br/>[@Daljyeong](https://github.com/Daljyeong) | 🎓박효빈<br/>[@Hyobeen-Park](https://github.com/Hyobeen-Park) |
188+
| --- | --- | --- | --- | --- |
189+
| <img src="https://github.com/user-attachments/assets/4a0a822a-f7ea-47c5-83ca-563ea3b90cc4" height="280" /> | <img src="https://github.com/user-attachments/assets/612c32be-c117-45a6-9392-958ff11de010" height="280" /> | <img src="https://github.com/user-attachments/assets/7af7e584-b763-407c-8628-bdccf731d8b7" height="280" /> | <img src="https://github.com/user-attachments/assets/fc497adb-66b1-4748-b864-7c5e2a18d82f" height="280" /> | <img src="https://github.com/user-attachments/assets/6bedede6-fd60-4514-90ad-7c596ce41fbb" height="280" /> |
190+
| `스플래시` `온보딩`<br/>`로그인` `홈(캘린더)` | `일기 상세` | `단어장` | `일기 작성` | `멘토` |
125191

126-
## CONVENTION
127-
> 프로젝트의 일관성과 효율적인 협업을 위해 아래 컨벤션을 준수합니다.
192+
---
128193

129-
| 카테고리 | 문서 링크 |
130-
|:---|:---|
131-
| **기술 스택 컨벤션** | [Notion](https://seemly-cupcake-7b7.notion.site/216a178ee9bd8009b50ac5b8e8b285d7?source=copy_link) |
132-
| **깃/브랜치 컨벤션** | [Notion](https://seemly-cupcake-7b7.notion.site/216a178ee9bd80f7a68defad28a7e071?source=copy_link) |
133-
| **코드 컨벤션** | [Notion](https://seemly-cupcake-7b7.notion.site/216a178ee9bd80e4a706ce34866666f3?source=copy_link) |
134-
| **패키지 컨벤션** | [Notion](https://seemly-cupcake-7b7.notion.site/216a178ee9bd80289994e9b31dae8274?source=copy_link) |
194+
<p align="center">
195+
Made with by Hi-lingual Team
196+
</p>

app/proguard-rules.pro

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88
-keep,includedescriptorclasses class kotlinx.serialization.** { *; }
99
-dontwarn kotlinx.serialization.**
1010

11-
# @Serializable 어노테이션이 붙은 모든 DTO와 Model 클래스 및 멤버를 유지합니다.
11+
# @Serializable 어노테이션이 붙은 모든 클래스 및 멤버를 유지합니다.
1212
# 이렇게 하면 R8이 직렬화에 필요한 생성자나 프로퍼티를 제거하는 것을 방지합니다.
13-
-keep @kotlinx.serialization.Serializable class com.hilingual.**.dto.** { *; }
14-
-keep @kotlinx.serialization.Serializable class com.hilingual.**.model.** { *; }
13+
-keep @kotlinx.serialization.Serializable class com.hilingual.** { *; }
1514

1615
# 생성된 serializer 클래스를 유지합니다.
1716
-keep,includedescriptorclasses class **$serializer { *; }

app/src/main/res/xml/file_paths.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@
33
<cache-path
44
name="camera_images"
55
path="." />
6+
7+
<files-path
8+
name="diary_images"
9+
path="diary_images/" />
610
</paths>

0 commit comments

Comments
 (0)