diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bf4e15eb..4ec1b6ff 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,3 @@
- HongikYeolgong2
-
\ No newline at end of file
+ 홍익열공이
+
diff --git a/core/designsystem/src/main/res/values/themes.xml b/core/designsystem/src/main/res/values/themes.xml
index 290e34ed..3064db19 100644
--- a/core/designsystem/src/main/res/values/themes.xml
+++ b/core/designsystem/src/main/res/values/themes.xml
@@ -1,5 +1,7 @@
-
+
-
+
diff --git a/main-data/src/main/java/com/teamhy2/main/data/di/MainModule.kt b/main-data/src/main/java/com/teamhy2/main/data/di/MainModule.kt
index 23d72aff..98094c53 100644
--- a/main-data/src/main/java/com/teamhy2/main/data/di/MainModule.kt
+++ b/main-data/src/main/java/com/teamhy2/main/data/di/MainModule.kt
@@ -1,7 +1,9 @@
package com.teamhy2.main.data.di
+import com.teamhy2.main.data.repository.DefaultStudyDayRepository
import com.teamhy2.main.data.repository.DefaultWebViewRepository
import com.teamhy2.main.data.repository.DefaultWiseSayingRepository
+import com.teamhy2.main.domain.StudyDayRepository
import com.teamhy2.main.domain.WebViewRepository
import com.teamhy2.main.domain.WiseSayingRepository
import dagger.Binds
@@ -20,4 +22,8 @@ abstract class MainModule {
@Binds
@Singleton
abstract fun bindWiseSayingRepository(impl: DefaultWiseSayingRepository): WiseSayingRepository
+
+ @Binds
+ @Singleton
+ abstract fun bindStudyDayRepository(impl: DefaultStudyDayRepository): StudyDayRepository
}
diff --git a/main-data/src/main/java/com/teamhy2/main/data/repository/DefaultStudyDayRepository.kt b/main-data/src/main/java/com/teamhy2/main/data/repository/DefaultStudyDayRepository.kt
new file mode 100644
index 00000000..f37d51a0
--- /dev/null
+++ b/main-data/src/main/java/com/teamhy2/main/data/repository/DefaultStudyDayRepository.kt
@@ -0,0 +1,51 @@
+package com.teamhy2.main.data.repository
+
+import com.google.firebase.firestore.CollectionReference
+import com.google.firebase.firestore.DocumentReference
+import com.google.firebase.firestore.FirebaseFirestore
+import com.teamhy2.main.domain.StudyDayRepository
+import com.teamhy2.main.model.StudyDay
+import com.teamhy2.main.model.toMap
+import kotlinx.coroutines.tasks.await
+import java.time.LocalDate
+import java.time.LocalDateTime
+import java.time.LocalTime
+import java.time.temporal.ChronoUnit
+import javax.inject.Inject
+
+class DefaultStudyDayRepository
+ @Inject
+ constructor() : StudyDayRepository {
+ private val firestore = FirebaseFirestore.getInstance()
+
+ override suspend fun addStudyDay(
+ uid: String,
+ startTime: String,
+ ) {
+ val now = LocalDateTime.now()
+ var startTimeParsed = LocalDateTime.of(now.toLocalDate(), LocalTime.parse(startTime))
+
+ if (startTimeParsed.isAfter(now)) {
+ startTimeParsed = startTimeParsed.minusDays(1)
+ }
+
+ val duration: Long = ChronoUnit.SECONDS.between(startTimeParsed, now)
+
+ val studyDay =
+ StudyDay(
+ date = LocalDate.now(),
+ secondDuration = duration,
+ )
+
+ val userDocumentReference: DocumentReference =
+ firestore.collection(USERS_COLLECTION).document(uid)
+ val studyDayCollection: CollectionReference =
+ userDocumentReference.collection(STUDYDAY_COLLECTION)
+ studyDayCollection.add(studyDay.toMap()).await()
+ }
+
+ companion object {
+ private const val USERS_COLLECTION = "User"
+ private const val STUDYDAY_COLLECTION = "StudyDay"
+ }
+ }
diff --git a/main-domain/src/main/java/com/teamhy2/main/domain/StudyDayRepository.kt b/main-domain/src/main/java/com/teamhy2/main/domain/StudyDayRepository.kt
new file mode 100644
index 00000000..39fb8e46
--- /dev/null
+++ b/main-domain/src/main/java/com/teamhy2/main/domain/StudyDayRepository.kt
@@ -0,0 +1,8 @@
+package com.teamhy2.main.domain
+
+interface StudyDayRepository {
+ suspend fun addStudyDay(
+ uid: String,
+ startTime: String,
+ )
+}
diff --git a/main-domain/src/main/java/com/teamhy2/main/model/StudyDay.kt b/main-domain/src/main/java/com/teamhy2/main/model/StudyDay.kt
new file mode 100644
index 00000000..019ef26f
--- /dev/null
+++ b/main-domain/src/main/java/com/teamhy2/main/model/StudyDay.kt
@@ -0,0 +1,15 @@
+package com.teamhy2.main.model
+
+import java.time.LocalDate
+
+data class StudyDay(
+ val date: LocalDate,
+ val secondDuration: Long,
+)
+
+fun StudyDay.toMap(): Map {
+ return mapOf(
+ "date" to this.date.toString(),
+ "secondDuration" to this.secondDuration,
+ )
+}
diff --git a/main-presentation/src/main/java/com/teamhy2/feature/main/MainScreen.kt b/main-presentation/src/main/java/com/teamhy2/feature/main/MainScreen.kt
index ef6c3225..f608dd58 100644
--- a/main-presentation/src/main/java/com/teamhy2/feature/main/MainScreen.kt
+++ b/main-presentation/src/main/java/com/teamhy2/feature/main/MainScreen.kt
@@ -107,6 +107,7 @@ fun MainRoute(
onRightButtonClick = {
mainViewModel.updateStudyRoomEndDialogVisibility(false)
mainViewModel.updateTimerRunning(false)
+ mainViewModel.addStudyDay()
},
onDismiss = {
mainViewModel.updateStudyRoomEndDialogVisibility(false)
diff --git a/main-presentation/src/main/java/com/teamhy2/feature/main/MainViewModel.kt b/main-presentation/src/main/java/com/teamhy2/feature/main/MainViewModel.kt
index c31dc5cf..e0f866f4 100644
--- a/main-presentation/src/main/java/com/teamhy2/feature/main/MainViewModel.kt
+++ b/main-presentation/src/main/java/com/teamhy2/feature/main/MainViewModel.kt
@@ -5,12 +5,15 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
+import com.google.firebase.Firebase
+import com.google.firebase.auth.auth
import com.hongikyeolgong2.calendar.model.Calendar
import com.hongikyeolgong2.calendar.model.StudyDay
import com.hongikyeolgong2.calendar.model.StudyRoomUsage
import com.teamhy2.feature.main.model.MainUiState
import com.teamhy2.hongikyeolgong2.notification.NotificationHandler
import com.teamhy2.hongikyeolgong2.timer.prsentation.model.TimerUiModel
+import com.teamhy2.main.domain.StudyDayRepository
import com.teamhy2.main.domain.WebViewRepository
import com.teamhy2.main.domain.WiseSayingRepository
import com.teamhy2.onboarding.domain.repository.UserRepository
@@ -30,6 +33,7 @@ class MainViewModel
private val webViewRepository: WebViewRepository,
private val wiseSayingRepository: WiseSayingRepository,
private val userRepository: UserRepository,
+ private val studyDayRepository: StudyDayRepository,
val notificationHandler: NotificationHandler,
) : ViewModel() {
private val _mainUiState = MutableStateFlow(MainUiState())
@@ -38,6 +42,10 @@ class MainViewModel
var urls by mutableStateOf