Skip to content

독서 기록 관리 모바일 애플리케이션 Booking의 레포지토리입니다.

Notifications You must be signed in to change notification settings

leesumin0526/Booking

 
 

Repository files navigation

📚 Booking - 독서 기록 관리 모바일 애플리케이션

"독서 시간과 장소, 진행 상황을 기록해 독서 습관을 관리하는 모바일 앱"

📖 프로젝트 개요

독서를 꾸준히 이어가기 위해서는 읽은 분량이나 장소, 흐름을 함께 파악하는 것이 중요하지만, 기존 독서 앱은 단순 기록이나 통계 위주로 실제 독서 과정이 잘 드러나지 않는 한계가 있었습니다.

Booking은 이러한 문제를 해결하기 위해 독서 시간을 직접 측정하고, 장소·페이지·메모를 함께 기록하는 구조로 설계된 독서 관리 앱으로, 사용자가 기록이 쌓이는 과정을 통해 자신의 독서 패턴을 자연스럽게 인식하고 습관으로 이어갈 수 있도록 돕습니다.

✨ 주요 기능

기능 설명
📖 독서 상태 관리 읽을 책 / 읽는 책 / 읽은 책 카테고리 분류
⏱️ 독서 타이머 실시간 독서 시간 측정 및 기록 저장
📝 독서 기록 작성 독서 장소, 페이지, 메모, 인상 깊은 구절 기록
📊 독서 통계 총 독서 시간, 연속 독서 일수(D-Day) 계산
📈 진행률 추적 책별 읽은 페이지 대비 전체 페이지 진행률 표시
🏠 홈 대시보드 현재 읽는 책, 독서 통계, 진행률 요약 표시
👤 사용자 관리 Firebase 인증 기반 프로필 및 닉네임 관리
🔄 실시간 동기화 Firestore 실시간 DB로 기록 즉시 반영
🗺️ 지도 기반 장소 카카오맵 연동 독서 장소 시각화 및 마커 표시
🔍 도서 상세 정보 표지, 저자, 출판사, 줄거리 등 상세 정보 제공
📚 도서 검색 알라딘·네이버 API 연동 도서 정보 검색 및 저장
📍 위치 기반 서비스 GPS 현재 위치 확인 및 독서 장소 자동 기록

🛠 기술 스택

Frontend (Android)

  • 언어: Java
  • 아키텍처: MVVM, Repository Pattern
  • UI: ViewBinding, Material Design
  • 네비게이션: Bottom Navigation, Fragment

Backend & Database

  • 데이터베이스: Firebase Firestore
  • 인증: Firebase Authentication
  • 실시간 동기화: Firestore 실시간 리스너

External APIs

  • 도서 검색: 알라딘 API, 네이버 도서 API
  • 지도 서비스: 카카오맵 SDK
  • 위치 서비스: Google Location Services

Development Tools

  • IDE: Android Studio
  • 빌드 도구: Gradle (Kotlin DSL)
  • 버전 관리: Git, GitHub

🏗 프로젝트 구조

app/
├── src/main/
│   ├── java/com/example/booking/
│   │   ├── MainActivity.java          # 메인 액티비티 (Bottom Navigation)
│   │   ├── HomeFragment.java          # 홈 화면 (대시보드)
│   │   ├── RecordFragment.java        # 독서 기록 화면
│   │   ├── MapFragment.java           # 지도 화면 (독서 장소)
│   │   └── MyFragment.java            # 마이페이지
│   ├── res/
│   │   ├── layout/                    # UI 레이아웃 파일
│   │   ├── drawable/                  # 아이콘 및 이미지 리소스
│   │   ├── menu/                      # Bottom Navigation 메뉴
│   │   └── values/                    # 문자열, 색상, 테마 리소스
│   └── AndroidManifest.xml
└── build.gradle.kts                   # 앱 수준 빌드 설정

🔧 기술적 의사결정

아키텍처 선택

  • MVVM + Repository Pattern: UI와 데이터 로직 분리로 유지보수성 향상
  • Fragment 기반 네비게이션: Bottom Navigation과 함께 직관적인 화면 전환
  • ViewBinding: 타입 안전한 뷰 참조로 런타임 오류 방지

데이터베이스 설계

users/{userId}/
 └─ books/{bookId}/
    ├─ 책 정보, 독서 상태
    └─ records/{recordId}/
       ├─ 독서 시간, 날짜
       ├─ 장소 좌표 및 주소
       └─ 메모, 페이지

Firebase 선택 이유

  • 실시간 동기화: 독서 기록 즉시 반영
  • 오프라인 지원: 네트워크 연결 없이도 기본 기능 사용 가능
  • 간편한 인증: Google 로그인 등 다양한 인증 방식 지원
  • 확장성: 사용자 증가에 따른 자동 스케일링

👥 팀 구성

이수민 장효원 백종원
[leesumin0526] [hyowon0204] [BAEK0111]

|

🚀 주요 성과

  • MVVM + Repository Pattern 기반 구조 설계
  • Firebase 실시간 데이터 연동 및 위치 기반 독서 기록 기능 구현
  • Bottom Navigation 기반 직관적인 사용자 인터페이스
  • ViewBinding 적용으로 타입 안전성 확보
  • Material Design 가이드라인 준수

📱 화면 구성

주요 화면

  1. 홈 화면: 현재 읽는 책, 독서 통계, 진행률 대시보드
  2. 기록 화면: 독서 타이머, 페이지 기록, 메모 작성
  3. 지도 화면: 독서 장소 시각화 및 위치 기반 기록
  4. 마이페이지: 사용자 프로필 및 설정 관리

🔄 개발 프로세스

커밋 컨벤션

Message 설명
feat 새로운 기능 추가
fix 버그 수정
refactor 코드 리팩토링
comment 주석 추가 및 변경
rename 파일 혹은 폴더명 수정
remove 파일 혹은 폴더 삭제
chore 기타 변경사항

브랜치 전략

  • main: 배포 가능한 안정 버전
  • develop: 개발 중인 기능들의 통합 브랜치
  • feature/*: 개별 기능 개발 브랜치

About

독서 기록 관리 모바일 애플리케이션 Booking의 레포지토리입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%