Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
1c87479
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์•„์ด์ฝ˜ ์ถ”๊ฐ€
ashxom Apr 10, 2026
0cb1261
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ํ•ญ๋ชฉ ์ถ”๊ฐ€ ๋ฐ ๋„ค๋น„๊ฒŒ์ด์…˜ ์—ฐ๊ฒฐ
ashxom Apr 10, 2026
10e6205
feat :: ์ƒˆ๋ฒฝ ์ž์Šต navigation ํŒŒ๋ผ๋ฏธํ„ฐ ์ถ”๊ฐ€
ashxom Apr 10, 2026
7c8bd7d
feat :: ์ƒˆ๋ฒฝ ์ž์Šต navigation key ์ถ”๊ฐ€
ashxom Apr 10, 2026
1987777
feat :: ์ƒˆ๋ฒฝ ์ž์Šต Route ์ถ”๊ฐ€
ashxom Apr 11, 2026
fc38dfe
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€
ashxom Apr 11, 2026
33eaeec
feat :: ๋„ค๋น„๊ฒŒ์ด์…˜ ํ‚ค ์ถ”๊ฐ€
ashxom Apr 11, 2026
18605e2
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ํ™”๋ฉด ๋„ค๋น„๊ฒŒ์ด์…˜ ์—ฐ๊ฒฐ
ashxom Apr 11, 2026
d4f6a86
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
ashxom Apr 12, 2026
3c72546
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€
ashxom Apr 12, 2026
7b9751a
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
ashxom Apr 12, 2026
8d4b909
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์œ ํ˜• ์„ ํƒ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
ashxom Apr 12, 2026
76ddcc6
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ UI ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
ashxom Apr 12, 2026
9c71afe
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์œ ํ˜• ์„ ํƒ UI ๊ตฌํ˜„
ashxom Apr 12, 2026
034fb37
style :: ์œ ํ˜• ํฐํŠธ ๋ฐ ๊ฐ„๊ฒฉ ์กฐ์ •
ashxom Apr 12, 2026
0fa950e
style :: ์œ ํ˜• ํ…์ŠคํŠธ ์ƒ‰์ƒ ์กฐ์ •
ashxom Apr 13, 2026
00002dd
fix :: ์œ ํ˜• ๊ธฐ๋ณธ ์„ ํƒํ•œ ๊ฐ’ ์—†๊ฒŒ ์ˆ˜์ •
ashxom Apr 13, 2026
133383e
fix :: ์œ ํ˜• ์„ ํƒ ์ธ๋””์ผ€์ดํ„ฐ๋ฅผ ์ฒดํฌ ์•„์ด์ฝ˜์œผ๋กœ ๋ณ€๊ฒฝ
ashxom Apr 13, 2026
9f6ca5f
feat :: LateStudyTypeItem ์„ ํƒ ๋ฐฐ๊ฒฝ ์˜์—ญ ํ™•์žฅ
ashxom Apr 13, 2026
53acd8f
feat :: ์ƒˆ๋ฒฝ์ž์Šต ์ผ์ • ์„น์…˜ UI ์ถ”๊ฐ€
ashxom Apr 13, 2026
9916815
feat :: LateStudyScreen์— ๋‹ฌ๋ ฅ ์ถ”๊ฐ€
ashxom Apr 13, 2026
9d8e74f
feat :: ์บ˜๋ฆฐ๋” ์š”์ผ ํ—ค๋” ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
ashxom Apr 13, 2026
03db618
feat :: ์บ˜๋ฆฐ๋” ๊ฐœ๋ณ„ ๋‚ ์งœ ํ‘œ์‹œ๋ฅผ ์œ„ํ•œ ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„
ashxom Apr 13, 2026
6320df1
feat :: ์ผ์ • ์บ˜๋ฆฐ๋” ๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
ashxom Apr 13, 2026
707ff05
fix :: ์ผ์ • ์บ˜๋ฆฐ๋” ์š”์ผ ํ—ค๋” ๋ฐ ๋”๋ฏธ ๊ทธ๋ฆฌ๋“œ ์ ์šฉ
ashxom Apr 13, 2026
d66c7aa
fix :: ์ผ์ • ์„น์…˜ ์•ˆ๋‚ด๋ฌธ ์Šคํƒ€์ผ ๋ฐ ๊ฐ„๊ฒฉ ์กฐ์ •
ashxom Apr 13, 2026
601dc91
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์„ ํƒ ์„น์…˜ ์ถ”๊ฐ€
ashxom Apr 13, 2026
f066991
feat :: LateStudyScreen์— ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์ถ”๊ฐ€
ashxom Apr 14, 2026
7d8ee43
feat :: ์‹ ์ฒญ ์‚ฌ์œ  ์„น์…˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ถ”๊ฐ€
ashxom Apr 14, 2026
dfab0c9
feat :: ์‚ฌ์œ  ์ž…๋ ฅ ์˜์—ญ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€
ashxom Apr 14, 2026
a908f3a
feat :: ์ƒˆ๋ฒฝ์ž์Šต ์‹ ์ฒญ ์‚ฌ์œ  ์„น์…˜ UI ๊ตฌํ˜„
ashxom Apr 14, 2026
9929fda
feat :: LateStudyScreen์— ์‚ฌ์œ  ์„น์…˜ ์ถ”๊ฐ€
ashxom Apr 14, 2026
9be9144
refactor :: ๋ฌธ๊ตฌ ๋„์–ด์“ฐ๊ธฐ ์ˆ˜์ •
ashxom Apr 14, 2026
5d06459
feat :: ์‹ ์ฒญํ•˜๊ธฐ ๋ฒ„ํŠผ ์ถ”๊ฐ€
ashxom Apr 14, 2026
f052a7f
fix :: ์‹ ์ฒญํ•˜๊ธฐ ๋ฒ„ํŠผ ํ•˜๋‹จ ์—ฌ๋ฐฑ ์กฐ์ •
ashxom Apr 15, 2026
7ec02ad
feat :: ์ผ์ • ์›” ํ—ค๋”๋ฅผ ์ƒํƒœ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€๊ฒฝ
ashxom Apr 15, 2026
a391233
feat :: ๋‹ฌ๋ ฅ ์›” ์ƒํƒœ ๋ฐ ์บ˜๋ฆฐ๋” ํŒŒ๋ผ๋ฏธํ„ฐ ์ถ”๊ฐ€
ashxom Apr 15, 2026
84a3866
feat :: ๋‹ฌ๋ ฅ ๋‚ ์งœ ์…€ ์š”์ผ๋ณ„ ์Šคํƒ€์ผ ์ ์šฉ
ashxom Apr 15, 2026
a3abc04
feat :: ์ƒˆ๋ฒฝ์ž์Šต ๋‹ฌ๋ ฅ ์›”๋ณ„ ๋‚ ์งœ ์ƒ์„ฑ ๋ฐ ๊ทธ๋ฆฌ๋“œ ๋ Œ๋”๋ง ์ถ”๊ฐ€
ashxom Apr 15, 2026
5e0337e
feat :: ์ƒˆ๋ฒฝ์ž์Šต ์ผ์ • ์„ ํƒ ๋ถˆ๊ฐ€ ์š”์ผ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€
ashxom Apr 15, 2026
6eb0836
fix :: ๋‹ฌ๋ ฅ ์ผ์š”์ผ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ ์ˆ˜์ •
ashxom Apr 15, 2026
d6800d5
feat :: ๋‹ฌ๋ ฅ ๋‹จ์ผ ๋‚ ์งœ ์„ ํƒ ์ƒํƒœ ์ถ”๊ฐ€
ashxom Apr 15, 2026
8ba6f48
feat :: ๋‹ฌ๋ ฅ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ UI ์ ์šฉ
ashxom Apr 15, 2026
c83793e
feat :: ๋‹ฌ๋ ฅ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ UI ์ ์šฉ
ashxom Apr 15, 2026
ef539f1
fix :: ๋‹ฌ๋ ฅ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฐฐ๊ฒฝ ์—ฐ๊ฒฐ ์Šคํƒ€์ผ ์ˆ˜์ •
ashxom Apr 15, 2026
74bb95f
fix :: ๋‹ฌ๋ ฅ ๋‹จ์ผ ๋‚ ์งœ ์„ ํƒ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ
ashxom Apr 15, 2026
7e7e10c
refactor :: ์ƒˆ๋ฒฝ์ž์Šต UI ๋””ํ…Œ์ผ ์Šคํƒ€์ผ ์กฐ์ •
ashxom Apr 15, 2026
0789c2f
refactor :: ๋‹ฌ๋ ฅ ๋ฒ”์œ„ ์„ ํƒ ๋ฐฐ๊ฒฝ ๋ผ์šด๋“œ ์ฒ˜๋ฆฌ ๊ฐœ์„ 
ashxom Apr 15, 2026
68a6ee0
feat :: ๋‹ฌ๋ ฅ ๊ธˆํ† ์ผ ์„ ํƒ ์ œํ•œ ์ถ”๊ฐ€
ashxom Apr 15, 2026
11821b2
feat :: ์œ ํ˜• ์กฐํšŒ API ๋ฐ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ์ถ”๊ฐ€
ashxom Apr 16, 2026
11d5115
feat :: ์œ ํ˜• ์กฐํšŒ ๋ฐ์ดํ„ฐ์†Œ์Šค ์˜์กด์„ฑ ์ฃผ์ž… ์ถ”๊ฐ€
ashxom Apr 16, 2026
5402885
feat :: ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ์†Œ์Šค ์˜์กด์„ฑ ์ฃผ์ž… ์ถ”๊ฐ€
ashxom Apr 16, 2026
f3025be
feat :: ์œ ํ˜• ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋ฐ ๋งคํผ ์ถ”๊ฐ€
ashxom Apr 16, 2026
078194d
feat :: ์œ ํ˜• ์กฐํšŒ repository ์ถ”๊ฐ€
ashxom Apr 16, 2026
6fdde8e
refactor :: LateStudyRepositoryModule ์œ„์น˜ data ๊ณ„์ธต์œผ๋กœ ์ด๋™
ashxom Apr 18, 2026
5002558
refactor :: ์˜์กด์„ฑ์„ data ๊ณ„์ธต์œผ๋กœ ํ†ต์ผ
ashxom Apr 18, 2026
7a1a1bc
feat :: ์ƒˆ๋ฒฝ์ž์Šต ์œ ํ˜• ์กฐํšŒ viewmodel ์ถ”๊ฐ€
ashxom Apr 18, 2026
5248839
refactor :: ์ž˜๋ชป๋œ import ์ˆ˜์ •
ashxom Apr 19, 2026
413be48
feat :: api service ์˜์กด์„ฑ ์ฃผ์ž… ์ถ”๊ฐ€
ashxom Apr 19, 2026
8af6d28
feat :: api service module ์ถ”๊ฐ€
ashxom Apr 19, 2026
4bcd502
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ์ž…๋ ฅ์ฐฝ ํผ๋ธ”๋ฆฌ์‹ฑ
ashxom Apr 19, 2026
0b12b78
feat :: ์‚ฌ์œ  ์ž…๋ ฅ์ฐฝ ๋ฐ ๊ธ€์ž ์ˆ˜ ํ‘œ์‹œ ์ถ”๊ฐ€
ashxom Apr 19, 2026
4cdf0b8
feat :: ์‚ฌ์œ  ์ž…๋ ฅ์ฐฝ ๊ธ€์ž ์ˆ˜ ํ‘œ์‹œ UI ์ถ”๊ฐ€
ashxom Apr 19, 2026
fc46107
feat :: ์‚ฌ์œ  ์ž…๋ ฅ ๊ธ€์ž ์ˆ˜ ์นด์šดํŠธ UI ์ˆ˜์ •
ashxom Apr 19, 2026
8d4d912
fix :: ๊ธ€์ž ์ˆ˜ ์ œํ•œ ํ‘œ์‹œ ๊ธ€์ž ํฌ๊ธฐ ์ˆ˜์ •
ashxom Apr 19, 2026
80c028d
refactor :: ์‚ฌ์œ  ์„น์…˜ ๊ธ€์ž ์ˆ˜ ์ œํ•œ ํŒจ๋”ฉ ์กฐ์ •
ashxom Apr 19, 2026
8c59e54
refactor :: ๋ถˆํ•„์š”ํ•œ import ์ œ๊ฑฐ
ashxom Apr 20, 2026
9742d6f
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ API ์ถ”๊ฐ€
ashxom Apr 20, 2026
07a759a
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ ํ•จ์ˆ˜ ์ถ”๊ฐ€
ashxom Apr 20, 2026
d83ea8d
feat :: LateStudyScreen ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์ƒํƒœ ์ถ”๊ฐ€
ashxom Apr 20, 2026
902b6be
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋ฐ ์„ ํƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
ashxom Apr 20, 2026
d53053a
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง ๋กœ์ง ์ถ”๊ฐ€
ashxom Apr 20, 2026
25dd826
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋“œ๋กญ๋‹ค์šด UI ๋ฐ ์„ ํƒ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
ashxom Apr 20, 2026
adc3ee3
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ ์ƒํƒœ ๋ฐ ๋กœ์ง ์ถ”๊ฐ€
ashxom Apr 20, 2026
b2719bd
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€
ashxom Apr 20, 2026
4e53cec
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ ViewModel ์—ฐ๋™
ashxom Apr 20, 2026
e9784e9
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์กฐํšŒ API ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€
ashxom Apr 20, 2026
a635bdc
refactor :: ์‹ ์ฒญํ•˜๊ธฐ ๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ width ์ˆ˜์ •
ashxom Apr 20, 2026
019b15a
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์š”์ฒญ ๋ชจ๋ธ ์ถ”๊ฐ€
ashxom Apr 20, 2026
54f99e6
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ API ์ถ”๊ฐ€
ashxom Apr 20, 2026
b6b1b95
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ DataSource ์ถ”๊ฐ€
ashxom Apr 20, 2026
4cf49f9
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ repository ์—ฐ๊ฒฐ
ashxom Apr 20, 2026
f9e9508
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ViewModel ๋กœ์ง ์ถ”๊ฐ€
ashxom Apr 20, 2026
867200d
feat :: ์‹ ์ฒญ ๋ฒ„ํŠผ ํ™œ์„ฑํ™” ์กฐ๊ฑด ์ถ”๊ฐ€
ashxom Apr 20, 2026
32984b6
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ API ํ˜ธ์ถœ ์—ฐ๊ฒฐ
ashxom Apr 20, 2026
8ca4d12
fix :: ์„น์…˜๋“ค padding ๊ฐ’ ์ˆ˜์ •
ashxom Apr 20, 2026
a427ca4
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ API ์‘๋‹ต ๋ชจ๋ธ ๊ตฌ์กฐ ์ˆ˜์ •
ashxom Apr 21, 2026
1edaf88
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ datasource ์‘๋‹ต ํƒ€์ž… ์ˆ˜์ •
ashxom Apr 21, 2026
3584ba1
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ repository์—์„œ teachers ๋ฆฌ์ŠคํŠธ ์ถ”์ถœ
ashxom Apr 21, 2026
31c6ec6
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ ํ•„๋“œ ๋ณ€๊ฒฝ UI ๋ฐ˜์˜
ashxom Apr 21, 2026
11a7677
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์กฐํšŒ API ์—”๋“œํฌ์ธํŠธ ๋ฐ ์‘๋‹ต ํƒ€์ž… ์ˆ˜์ •
ashxom Apr 21, 2026
6211aa7
fix :: TeacherResponse import ๊ฒฝ๋กœ ์ˆ˜์ •
ashxom Apr 21, 2026
874b952
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋“œ๋กญ๋‹ค์šด ์˜ค๋ฒ„๋ ˆ์ด UI ์ ์šฉ
ashxom Apr 21, 2026
b824c46
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋“œ๋กญ๋‹ค์šด ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ ์ˆ˜์ •
ashxom Apr 21, 2026
7706269
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ์ž…๋ ฅ์ฐฝ ๋ฐ ๋“œ๋กญ๋‹ค์šด ๋””์ž์ธ ๋ฐ˜์˜
ashxom Apr 21, 2026
1814051
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋“œ๋กญ๋‹ค์šด UI ์ˆ˜์ •
ashxom Apr 21, 2026
f467ecc
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๊ฒ€์ƒ‰ ๋“œ๋กญ๋‹ค์šด ์˜ค๋ฒ„๋ ˆ์ด ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ
ashxom Apr 21, 2026
9e4c8a5
fix :: drawBehind ๋‚ด๋ถ€ composable scope ์˜ค๋ฅ˜ ์ˆ˜์ •
ashxom Apr 21, 2026
8469000
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๋“œ๋กญ๋‹ค์šด ๊ทธ๋ฆผ์ž ๋ฐ ์˜ค๋ฒ„๋ ˆ์ด UI ์กฐ์ •
ashxom Apr 22, 2026
4fcf851
refactor :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๋“œ๋กญ๋‹ค์šด ์œ„์น˜ ๋ฐ ํฌ๊ธฐ ์กฐ์ •
ashxom Apr 22, 2026
0dd3432
fix :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์„ ํƒ ์‹œ ๋“œ๋กญ๋‹ค์šด์ด ๋‹ซํžˆ์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ˆ˜์ •
ashxom Apr 22, 2026
68945d8
fix :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ์„ ํƒ ํ›„ ์ž…๋ ฅ์ฐฝ ํฌ์ปค์Šค ํ•ด์ œ ์ฒ˜๋ฆฌ
ashxom Apr 22, 2026
33198a5
refactor :: ์œ ํ˜• ์„ ํƒ์„ API ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€๊ฒฝ
ashxom Apr 22, 2026
3630590
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ response ๋ชจ๋ธ ์ถ”๊ฐ€
ashxom Apr 22, 2026
5e21318
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์กฐํšŒ API ์ถ”๊ฐ€
ashxom Apr 22, 2026
015270f
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์กฐํšŒ datasource ์—ฐ๊ฒฐ
ashxom Apr 22, 2026
4f5d391
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์กฐํšŒ repository ๋ฐ mapper ๊ตฌํ˜„
ashxom Apr 22, 2026
85a32e9
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์กฐํšŒ ๋ฐ ViewModel ์ƒํƒœ ์ถ”๊ฐ€
ashxom Apr 22, 2026
c66b6d5
feat :: ์‹ ์ฒญ ํ™”๋ฉด ์ƒˆ๋ฒฝ ์ž์Šต ์ƒํƒœ ํ‘œ์‹œ ์—ฐ๊ฒฐ
ashxom Apr 22, 2026
271fff9
refactor :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์‘๋‹ต ๋ชจ๋ธ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝ
ashxom Apr 22, 2026
5ac1e53
refactor :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์‘๋‹ต ๋ชจ๋ธ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ViewModel ์ˆ˜์ •
ashxom Apr 22, 2026
a06a465
feat :: ์‹ ์ฒญ ํ™”๋ฉด์— ์ƒˆ๋ฒฝ ์ž์Šต ์ƒํƒœ ๊ฐ’ ์—ฐ๊ฒฐ
ashxom Apr 22, 2026
e354a2e
feat :: ๋‹ด๋‹น ์„ ์ƒ๋‹˜ ๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ๋ฐ API ๋ฐ์ดํ„ฐ ์—ฐ๋™
ashxom Apr 22, 2026
3d56a8f
fix :: api ๊ฒฝ๋กœ ์˜คํƒ€ ์ˆ˜์ •
ashxom Apr 22, 2026
d9d65e2
feat :: SECOND_APPROVED ์ƒํƒœ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€
ashxom Apr 23, 2026
42b6e2e
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ui ์ƒํƒœ๊ฐ’ ์ถ”๊ฐ€
ashxom Apr 23, 2026
b84d38e
feat :: ์‹ ์ฒญ ์ƒํƒœ์— ๋”ฐ๋ฅธ ์นด๋“œ ๋ฐฐ์ง€ ์Šคํƒ€์ผ ๋ถ„๊ธฐ ์ถ”๊ฐ€
ashxom Apr 23, 2026
d9fc923
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์ƒํƒœ๋ฅผ ์นด๋“œ ๋ฐฐ์ง€ ์Šคํƒ€์ผ๋กœ ๋งคํ•‘ํ•˜๋„๋ก ๋ณ€๊ฒฝ
ashxom Apr 23, 2026
e9812e8
fix :: ์Šน์ธ ๊ธฐ๊ฐ„ null์ผ ๋•Œ ์ž˜๋ชป๋œ ํ…์ŠคํŠธ ํ‘œ์‹œ ์ˆ˜์ •
ashxom Apr 23, 2026
d17e15b
fix :: ๋‚ ์งœ ํ•˜๋ฃจ๋งŒ ์„ ํƒํ•  ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
ashxom Apr 23, 2026
9a52eef
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ๊ฒฐ๊ณผ ์ฆ‰์‹œ ๋ฐ˜์˜ ๋กœ์ง ์ถ”๊ฐ€
ashxom Apr 23, 2026
bf48129
feat :: ์ƒˆ๋ฒฝ์ž์Šต ์‹ ์ฒญ ํ›„ ์ƒํƒœ ์ฆ‰์‹œ ๋ฐ˜์˜ ์ฒ˜๋ฆฌ
ashxom Apr 23, 2026
65e7900
feat :: resultStore ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ดˆ๊ธฐ ์„ค์ • ์ถ”๊ฐ€
ashxom Apr 23, 2026
becd12d
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ๊ฒฐ๊ณผ ์ƒํƒœ ๋ฐ˜์˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€
ashxom Apr 23, 2026
bfce18a
refactor :: ์‹ ์ฒญ ์ค‘ ๋ฐฐ์ง€ ์ƒ‰์ƒ ๋””์ž์ธ์— ๋งž๊ฒŒ ์กฐ์ •
ashxom Apr 23, 2026
a0a72a2
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์Šน์ธ ์ƒํƒœ์— ๋‚ ์งœ ์—†๋Š” ๋ฌธ๊ตฌ ๋…ธ์ถœ ๋ฐฉ์ง€
ashxom Apr 23, 2026
11b9945
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์Šน์ธ ๋ฌธ๊ตฌ์— ๋‹จ์ผ ๋‚ ์งœ ํ‘œ์‹œ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€
ashxom Apr 23, 2026
e159df5
refactor :: ์ž˜๋ชป ์ ์€ ์ƒ‰์ƒ ์ฝ”๋“œ ์ˆ˜์ •
ashxom Apr 23, 2026
25b5870
feat :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ๋ณ„ ํ‘œ์‹œ ๋กœ์ง ๊ตฌํ˜„
ashxom Apr 23, 2026
6564105
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ์นฉ ๋…ธ์ถœ ๋กœ์ง ์ˆ˜์ •
ashxom Apr 23, 2026
64d4398
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ์ƒํƒœ ๋กœ์ปฌ ์ €์žฅ ๋ฐ ๋ณต์› ์ฒ˜๋ฆฌ
ashxom Apr 23, 2026
7f2c7fd
fix :: ์ƒˆ๋ฒฝ ์ž์Šต ์ƒํƒœ null ์‘๋‹ต ์‹œ ๊ธฐ์กด ์ƒํƒœ ์œ ์ง€ ์ฒ˜๋ฆฌ
ashxom Apr 23, 2026
defb18c
refactor :: ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ํ™”๋ฉด ์„น์…˜ ๊ฐ„๊ฒฉ ์กฐ์ •
ashxom Apr 24, 2026
17c268e
feat :: ํ•˜๋ฃจ ๋‚ ์งœ ์„ ํƒ ์‹œ์—๋„ ์ƒˆ๋ฒฝ ์ž์Šต ์‹ ์ฒญ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •
ashxom Apr 24, 2026
c89ae2e
refactor :: ApplicationChipStyle enum ํŒŒ์ผ ๋ถ„๋ฆฌ
ashxom May 3, 2026
2c0ee5d
refactor :: LateStudyScreen ํ•จ์ˆ˜ ๋ถ„๋ฆฌ
ashxom May 3, 2026
c85d135
refactor :: CalendarDateCell ํ•จ์ˆ˜ ๋ถ„๋ฆฌ
ashxom May 3, 2026
39ae7ce
refactor :: REASON_MAX_LENGTH ์ƒ์ˆ˜ ์ ์šฉ ๋ฐ ํ•˜๋“œ์ฝ”๋”ฉ ์ œ๊ฑฐ
ashxom May 3, 2026
73aa659
refactor :: LateStudyViewModel ๋„คํŠธ์›Œํฌ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ •๋ฆฌ
ashxom May 3, 2026
3a5bfed
refactor :: Gson SerializedName ๊ธฐ๋ฐ˜ ์š”์ฒญ ๋ชจ๋ธ ํ•„๋“œ ๋งคํ•‘ ์ ์šฉ
ashxom May 3, 2026
986f4e6
refactor :: ์บ˜๋ฆฐ๋” ์›” ์ด๋™ ๋ฒ„ํŠผ ์ ‘๊ทผ์„ฑ ๊ฐœ์„ 
ashxom May 3, 2026
db69d81
refactor :: LateStudyTypeItem selectable ์ ์šฉ์œผ๋กœ ์ ‘๊ทผ์„ฑ ๊ฐœ์„ 
ashxom May 3, 2026
d7a7f6e
refactor :: SubmitLateStudyRequest ์ƒ์„ฑ์ž ํ•„๋“œ๋ช… ๋ฐ˜์˜
ashxom May 3, 2026
116e394
fix :: ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ํ„ฐ์น˜ ์˜์—ญ 48dp๋กœ ์ˆ˜์ •
ashxom May 4, 2026
b658870
refactor :: LateStudyScreen ์ปดํฌ์ €๋ธ” ๊ตฌ์กฐ ๋ฐ ์กฐ๊ฑด์‹ ์ •๋ฆฌ
ashxom May 4, 2026
d044fa3
refactor :: ์บ˜๋ฆฐ๋” ์ปดํฌ์ €๋ธ” ๋‹จ์ผ content emit ๊ตฌ์กฐ๋กœ ์ˆ˜์ •
ashxom May 4, 2026
ed51c5b
refactor :: toAppliedTitle ํ•จ์ˆ˜ ๋ถ„๋ฆฌ๋กœ ๋ณต์žก๋„ ๊ฐ์†Œ
ashxom May 4, 2026
e84380a
refactor :: AppliedTitleText ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆœ์„œ ์ˆ˜์ •
ashxom May 4, 2026
723d2d9
refactor :: ๋””์ž์ธ ์‹œ์Šคํ…œ ์ ์šฉ
ashxom May 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ data object VoteScreenNav : NavKey
@Serializable
data object RemainScreenNav : NavKey

@Serializable
data object LateStudyNav : NavKey

@Serializable
data object MyPageScreenNav : NavKey

Expand Down Expand Up @@ -84,4 +87,4 @@ data class SignUpSetPasswordNav(val signUpData: SignUpData) : NavKey
data class SignUpTermsNav(val signUpData: SignUpData) : NavKey

@Serializable
data object SignUpCompleteNav : NavKey
data object SignUpCompleteNav : NavKey
16 changes: 16 additions & 0 deletions app/src/main/kotlin/team/aliens/dms/android/app/ui/DmsApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import team.aliens.dms.android.app.navigation.SettingScreenNav
import team.aliens.dms.android.app.navigation.SignInScreenNav
import team.aliens.dms.android.app.navigation.VoteScreenNav
import team.aliens.dms.android.app.MainActivityViewModel
import team.aliens.dms.android.app.navigation.LateStudyNav
import team.aliens.dms.android.core.designsystem.snackbar.DmsSnackBar
import team.aliens.dms.android.core.designsystem.snackbar.DmsSnackBarVisuals
import team.aliens.dms.android.core.ui.navigation.LocalResultStore
Expand Down Expand Up @@ -81,8 +82,10 @@ import team.aliens.dms.android.app.navigation.SignUpEnterStudentNumberNav
import team.aliens.dms.android.app.navigation.SignUpSetIdNav
import team.aliens.dms.android.app.navigation.SignUpSetPasswordNav
import team.aliens.dms.android.app.navigation.SignUpTermsNav
import team.aliens.dms.android.feature.latestudy.navigation.LateStudyRoute
import java.util.UUID


@Composable
fun DmsApp(
appState: DmsAppState = rememberDmsAppState(),
Expand Down Expand Up @@ -205,6 +208,9 @@ fun DmsApp(
onShowSnackBar = { snackBarType, message ->
appState.showSnackBar(snackBarType, message)
},
onNavigateLateStudyApplication = {
backStack.add(LateStudyNav)
}
)
}
entry<VoteScreenNav> {
Expand All @@ -226,6 +232,16 @@ fun DmsApp(
}
)
}
entry<LateStudyNav> {
LateStudyRoute(
onBack = {
backStack.remove(LateStudyNav)
},
onShowSnackBar = { snackBarType, message ->
appState.showSnackBar(snackBarType, message)
},
)
}
entry<MyPageScreenNav> {
MyPageRoute(
onNavigatePointHistory = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package team.aliens.dms.android.core.designsystem.card

enum class ApplicationChipStyle {
DEFAULT,
APPROVED,
REJECTED,
PENDING,
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ fun DmsApplicationCard(
description: String? = null,
period: String? = null,
appliedTitle: String? = null,
chipStyle: ApplicationChipStyle = ApplicationChipStyle.DEFAULT,
isSelected: Boolean = false,
) {
val borderColor by animateColorAsState(
Expand All @@ -47,7 +48,11 @@ fun DmsApplicationCard(
} else {
DmsTheme.colorScheme.surfaceTint
},
label = "",
)

val displayTitle = appliedTitle ?: chipStyle.toDisplayText()

Column(
modifier = modifier
.fillMaxWidth()
Expand All @@ -70,32 +75,39 @@ fun DmsApplicationCard(
painter = painterResource(iconRes),
contentDescription = null,
)

Text(
modifier = Modifier.padding(start = 8.dp),
text = title,
style = DmsTheme.typography.bodyB,
color = DmsTheme.colorScheme.inverseOnSurface,
)

Spacer(modifier = Modifier.weight(1f))
if (description == null && appliedTitle != null) {

if (description == null && displayTitle != null) {
AppliedTitleText(
appliedTitle = displayTitle,
modifier = Modifier.endPadding(16.dp),
appliedTitle = appliedTitle,
chipStyle = chipStyle,
)
}

Icon(
painter = painterResource(DmsIcon.Forward),
tint = DmsTheme.colorScheme.scrim,
contentDescription = null,
)
}

period?.let {
Text(
text = period,
style = DmsTheme.typography.labelM,
color = DmsTheme.colorScheme.onPrimaryContainer,
)
}

description?.let {
Row(
verticalAlignment = Alignment.CenterVertically,
Expand All @@ -106,9 +118,14 @@ fun DmsApplicationCard(
style = DmsTheme.typography.labelM,
color = DmsTheme.colorScheme.inverseSurface,
)

Spacer(modifier = Modifier.weight(1f))
appliedTitle?.let {
AppliedTitleText(appliedTitle = appliedTitle)

if (displayTitle != null) {
AppliedTitleText(
appliedTitle = displayTitle,
chipStyle = chipStyle,
)
}
}
}
Expand All @@ -119,16 +136,40 @@ fun DmsApplicationCard(
private fun AppliedTitleText(
appliedTitle: String,
modifier: Modifier = Modifier,
chipStyle: ApplicationChipStyle = ApplicationChipStyle.DEFAULT,
) {
val backgroundColor = when (chipStyle) {
ApplicationChipStyle.DEFAULT -> DmsTheme.colorScheme.primary
ApplicationChipStyle.APPROVED -> DmsTheme.colorScheme.primary
ApplicationChipStyle.REJECTED -> DmsTheme.colorScheme.errorContainer
ApplicationChipStyle.PENDING -> DmsTheme.colorScheme.surfaceVariant
}

val textColor = when (chipStyle) {
ApplicationChipStyle.DEFAULT -> DmsTheme.colorScheme.onPrimaryContainer
ApplicationChipStyle.APPROVED -> DmsTheme.colorScheme.onPrimaryContainer
ApplicationChipStyle.REJECTED -> DmsTheme.colorScheme.onErrorContainer
ApplicationChipStyle.PENDING -> DmsTheme.colorScheme.inverseSurface
}

Text(
modifier = modifier
.background(
color = DmsTheme.colorScheme.primary,
color = backgroundColor,
shape = RoundedCornerShape(6.dp),
)
.padding(horizontal = 22.dp, vertical = 8.dp),
text = appliedTitle,
style = DmsTheme.typography.labelB,
color = DmsTheme.colorScheme.onPrimaryContainer,
color = textColor,
)
}

private fun ApplicationChipStyle.toDisplayText(): String? {
return when (this) {
ApplicationChipStyle.APPROVED -> "์Šน์ธ๋จ"
ApplicationChipStyle.REJECTED -> "๊ฑฐ์ ˆ๋จ"
ApplicationChipStyle.PENDING -> "์‹ ์ฒญ ์ค‘"
ApplicationChipStyle.DEFAULT -> null
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package team.aliens.dms.android.data.latestudy.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import team.aliens.dms.android.data.latestudy.repository.LateStudyRepositoryImpl
import team.aliens.dms.android.data.latestudy.repository.LateStudyRepository

@Module
@InstallIn(SingletonComponent::class)
abstract class LateStudyRepositoryModule {

@Binds
abstract fun bindLateStudyRepository(
lateStudyRepositoryImpl: LateStudyRepositoryImpl,
): LateStudyRepository
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package team.aliens.dms.android.data.latestudy.mapper

import team.aliens.dms.android.data.latestudy.model.StudyType
import team.aliens.dms.android.network.latestudy.model.FetchStudyTypesResponse

fun FetchStudyTypesResponse.toModel(): List<StudyType> =
types.map {
StudyType(
id = it.id,
name = it.name,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package team.aliens.dms.android.data.latestudy.model

data class StudyType(
val id: String,
val name: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package team.aliens.dms.android.data.latestudy.repository

import team.aliens.dms.android.data.latestudy.model.StudyType
import team.aliens.dms.android.network.latestudy.model.StudyApplicationStatusResponse
import team.aliens.dms.android.network.latestudy.model.SubmitLateStudyRequest
import team.aliens.dms.android.network.latestudy.model.TeacherResponse

interface LateStudyRepository {

suspend fun fetchStudyTypes(): List<StudyType>

suspend fun fetchTeachers(): List<TeacherResponse>

suspend fun fetchMyStudyApplicationStatus(): StudyApplicationStatusResponse

suspend fun submitLateStudy(request: SubmitLateStudyRequest)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package team.aliens.dms.android.data.latestudy.repository

import team.aliens.dms.android.data.latestudy.mapper.toModel
import team.aliens.dms.android.data.latestudy.model.StudyType
import team.aliens.dms.android.network.latestudy.datasource.NetworkLateStudyDataSource
import team.aliens.dms.android.network.latestudy.model.StudyApplicationStatusResponse
import team.aliens.dms.android.network.latestudy.model.SubmitLateStudyRequest
import team.aliens.dms.android.network.latestudy.model.TeacherResponse
import javax.inject.Inject

class LateStudyRepositoryImpl @Inject constructor(
private val networkLateStudyDataSource: NetworkLateStudyDataSource,
) : LateStudyRepository {

override suspend fun fetchStudyTypes(): List<StudyType> =
networkLateStudyDataSource.fetchStudyTypes().toModel()

override suspend fun fetchTeachers(): List<TeacherResponse> =
networkLateStudyDataSource.fetchTeachers().teachers

override suspend fun fetchMyStudyApplicationStatus(): StudyApplicationStatusResponse =
networkLateStudyDataSource.fetchMyStudyApplicationStatus()

override suspend fun submitLateStudy(request: SubmitLateStudyRequest) {
networkLateStudyDataSource.submitLateStudy(request)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package team.aliens.dms.android.feature.latestudy.navigation

import androidx.compose.runtime.Composable
import team.aliens.dms.android.core.designsystem.snackbar.DmsSnackBarType
import team.aliens.dms.android.feature.latestudy.ui.LateStudyScreen

@Composable
fun LateStudyRoute(
onBack: () -> Unit,
onShowSnackBar: (DmsSnackBarType, String) -> Unit,
) {
LateStudyScreen(
onBack = onBack,
onShowSnackBar = onShowSnackBar,
)
}
Loading
Loading