GithubHelp home page GithubHelp logo

diary's Introduction

💡 AI 일기장

AI를 사용하여 편리하고 똑똑하게 작성하는 감정 일기장 앱



🔥 Google Play

https://play.google.com/store/apps/details?id=com.pass.diary



🛠 사용

  • android, android studio
  • kotlin
  • MVI, Clean Architecture, Hilt, Room, DataStore, Retrofit, Coroutine, Junit, MockK
  • Google STT (SpeechRecognizer), Naver CLOVA Summary API, Google OAuth(Firebase Authentication), Google Drive API



🚀 설계



⭐️ 기능

  • 일기 쓰기 / 수정
    • 음성으로 내용 입력 (AI)
    • 일기 내용 요약하여 제목으로 작성하기 (AI)
    • 이모티콘(기분, 감정 등)
    • 내용
    • 이미지 (미구현)
  • 일기 조회 (월별)
    • 달력으로 보기
    • 타임라인으로 보기
  • 디자인 기능
    • 일기장 테마 설정 (분홍, 검정 등) (미구현)
    • 다크모드 설정 (미구현)
    • 여러 폰트 설정
  • 다양한 기능
    • 감정 통계
    • 일기장 잠금 기능 (미구현)
    • 알림 기능 (미구현)
  • 추가 사항
    • 위젯 기능 (미구현)
    • 한 주의 시작 요일 설정 (일요일 / 월요일) (미구현)



📷 화면



🧩 코드 구조

│── presentation
│   ├── ui
│   │   └── theme
│   │       ├── Color.kt
│   │       ├── Theme.kt
│   │       └── Type.kt
│   ├── state
│   │   ├── AddDiaryState.kt
│   │   ├── LoginState.kt
│   │   ├── MainState.kt
│   │   ├── SettingState.kt
│   │   ├── TimelineState.kt
│   │   └── WorkState.kt
│   ├── view
│   │   ├── activity
│   │   │   ├── MainActivity.kt
│   │   │   └── AddDiaryActivity.kt
│   │   ├── composable
│   │   │   └── ...
│   │   └── screen
│   │       ├── MainScreen.kt
│   │       ├── TimelineScreen.kt
│   │       ├── CalendarScreen.kt
│   │       ├── AddDiaryScreen.kt
│   │       ├── AnalysisScreen.kt
│   │       ├── SettingsScreen.kt
│   │       └── Constants.kt
│   ├── viewmodel
│   │   ├── AddDiaryViewModel.kt
│   │   ├── AnalysisViewModel.kt
│   │   ├── CalendarViewModel.kt
│   │   ├── SettingsViewModel.kt
│   │   ├── ThemeViewModel.kt
│   │   └── TimelineViewModel.kt
│   ├── intent
│   │   ├── AddDiaryIntent.kt
│   │   ├── AnalysisIntent.kt
│   │   ├── CalendarIntent.kt
│   │   ├── SettingsIntent.kt
│   │   └── TimelineIntent.kt
│   ├── di
│   │   └── AppModule.kt
│   └── DiaryApplication.kt
│
├── domain
│   ├── entity
│   │   └── Diary.kt
│   ├── repository
│   │   ├── diary
│   │   │   └── DiaryRepository.kt
│   │   ├── google
│   │   │   └── GoogleManagerRepository.kt
│   │   └── settings
│   │       └── SettingsRepository.kt
│   └── usecase
│       ├── diary
│       │   ├── AddDiaryUseCase.kt
│       │   ├── DeleteDiaryUseCase.kt
│       │   ├── GetAllDiariesUseCase.kt
│       │   ├── GetDiariesByMonthUseCase.kt
│       │   ├── SummaryDiaryUseCase.kt
│       │   └── UpdateDiaryUseCase.kt
│       ├── google
│       │   ├── BackupDiariesToGoogleDriveUseCase.kt
│       │   ├── isLoggedInUseCase.kt
│       │   ├── LogInForGoogleUseCase.kt
│       │   ├── LogOutForGoogleUseCase.kt
│       │   └── RestoreDiariesForGoogleDriveUseCase.kt
│       └── settings
│           └── font
│               ├── GetCurrentFontUseCase.kt
│               ├── GetCurrentTextSizeUseCase.kt
│               ├── UpdateCurrentFontUseCase.kt
│               └── UpdateCurrentTextSizeUseCase.kt
│
└── data
    ├── di
    │   ├── DataBaseModule.kt
    │   ├── NetworkModule.kt
    │   └── RepositoryModule.kt
    ├── db
    │   ├── diary
    │   │   ├── DiaryDao.kt
    │   │   └── DiaryDataBase.kt
    │   └── entity
    │	    └── DiaryEntity.kt
    ├── mapper
    │   └── DiaryMapper.kt
    ├── remote
    │   ├── dto
    │   │   ├── SummaryRequest.kt
    │   │   └── SummaryResponse.kt
    │   └── service
    │       └── SummaryService.kt
    └── repository
        ├── diary
        │   └── DiaryRepositoryImpl.kt
        ├── google
        │   └── GoogleManagerRepositoryImpl.kt
        └── settings
            └── SettingsRepositoryImpl.kt

diary's People

Contributors

jungwoogeon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.