How waasilaasif/thoughtbook works
ThoughtBook is an Android reading tracker centered on adding books to personal shelves and recording emotional reading entries over time. The main user journey spans book discovery or entry, shelf management, book details, and a per-book mood/page/note timeline; recommendations and persistent display preferences are additional capabilities. The README documents Firebase-backed identity and repository-mediated data access. Java implementation files were not sampled, so some screen-to-repository and external-service wiring is based on documented architecture rather than inspected call sites.
Main entry points: BookRepository.java Book repository · MainActivity.java App navigation · BookshelfFragment.java Bookshelf · LogBookActivity.java Reading timeline
Components 21
App entry
- App navigation
app/src/main/java/com/example/thoughtbook/MainActivity.java - Anonymous identity
app/src/main/java/com/example/thoughtbook/AuthManager.java - Theme preference
app/src/main/java/com/example/thoughtbook/ThemeManager.java
Library workflow
- Bookshelf
app/src/main/java/com/example/thoughtbook/BookshelfFragment.java - Shelf state
app/src/main/java/com/example/thoughtbook/BookshelfViewModel.java - Add book
app/src/main/java/com/example/thoughtbook/AddBookFragment.java - Recommendations
app/src/main/java/com/example/thoughtbook/ExploreFragment.java - Shelf filters
app/src/main/java/com/example/thoughtbook/LibraryFilterActivity.java
Reading journal
- Book details
app/src/main/java/com/example/thoughtbook/BookDetailActivity.java - Reading timeline
app/src/main/java/com/example/thoughtbook/LogBookActivity.java - Log entry editor
app/src/main/java/com/example/thoughtbook/AddLogEntryActivity.java - Timeline display
app/src/main/java/com/example/thoughtbook/LogTimelineAdapter.java
Data and discovery
- Book repository
app/src/main/java/com/example/thoughtbook/BookRepository.java - Cloud Firestore
- Firebase Auth
- Google Books API
- API client
app/src/main/java/com/example/thoughtbook/RetrofitClient.java - Books API service
app/src/main/java/com/example/thoughtbook/GoogleBooksApiService.java
Domain models
- Book and shelf data
app/src/main/java/com/example/thoughtbook/Book.java - Reading log data
app/src/main/java/com/example/thoughtbook/ReadingLogEntry.java
Other components
- Reader
Connections 25
- Reader → App navigation: opens app
- App navigation → Anonymous identity: establishes identity
- Anonymous identity → Firebase Auth: anonymous sign-in
- App navigation → Bookshelf: navigates
- App navigation → Add book: navigates
- App navigation → Recommendations: navigates
- Bookshelf → Book repository: loads library
- Bookshelf → Shelf state: observes state
- Bookshelf → Shelf filters: opens filters
- Bookshelf → Book details: opens book
- Add book → Book repository: adds book
- Book details → Book repository: loads book
- Book details → Reading timeline: opens timeline
- Reading timeline → Book repository: manages entries
- Reading timeline → Log entry editor: edits entry
- Reading timeline → Timeline display: displays entries
- Log entry editor → Book repository: saves changes
- Recommendations → Book repository: requests recommendations
- Book repository → Cloud Firestore: reads and writes
- Book repository → API client: requests book data
- API client → Books API service: creates client
- Books API service → Google Books API: searches titles
- Book repository → Book and shelf data: maps library data
- Book repository → Reading log data: maps journal data
- Reader → Theme preference: changes appearance