How hayeon-lee/bookarchive-2025 works
BOOKARCHIVE-2025 is a React app for a reading group to track book goals and completion. Members sign in, view monthly reading summaries, open a member’s shelf, and—on their own shelf—add, edit, delete, or mark books complete with a separate completion date. Admins have routes for reading status and password requests. The sampled pages and services show the main shelf and summary flows; admin and password-management implementations were not sampled, so their internal links are not inferred.
Main entry points: App.tsx Route shell · MyShelfPage.tsx Member shelf · firebaseConfig.ts Firebase configuration · HomePage.tsx Monthly overview
Components 27
App & Access
- Route shell
src/App.tsx - Protected routes
src/routes/ProtectedRoute.tsx - Admin routes
src/routes/AdminRoute.tsx
Reading Experience
- Monthly overview
src/pages/HomePage.tsx - Member shelf
src/pages/book/MyShelfPage.tsx - Book goal card
src/components/book/BookCard.tsx - Add-book form
src/components/book/AddBookModal.tsx - Member summary
src/components/book/MemberSummaryCard.tsx - Month selector
src/components/common/MonthSelector.tsx - Book data types
src/types/book.ts
Identity & Admin
- Login page
src/pages/auth/LoginPage.tsx - Login form
src/components/auth/LoginForm.tsx - Login lookup
src/services/auth/authService.ts - Persistent user state
src/services/auth/useUsrStoreService.ts - Change password
src/pages/auth/ChangePasswordPage.tsx - Reset guidance
src/pages/auth/ResetPasswordInfoPage.tsx - Password reset service
src/services/admin/resetPasswordService.ts - Admin dashboard
src/pages/admin/AdminDashboardPage.tsx - Password requests
src/pages/admin/PasswordRequestPage.tsx - Reading status
src/pages/admin/ReadingStatusPage.tsx
Firebase Data
- Book collection reads
src/services/book/getMemberBookService.ts - Add book
src/services/book/addBookService.ts - Update book
src/services/book/modifyBookService.ts - Delete book
src/services/book/deleteBookService.ts - Firebase configuration
src/firebase/firebaseConfig.ts
Other components
- Reading group member
- Cloud Firestore
Connections 32
- Reading group member → Route shell: opens
src/App.tsx - Route shell → Login page: routes to
src/App.tsx - Route shell → Protected routes: guards
src/App.tsx - Route shell → Admin routes: guards
src/App.tsx - Route shell → Monthly overview: routes to
src/App.tsx - Route shell → Member shelf: routes to
src/App.tsx - Route shell → Admin dashboard: routes to
src/App.tsx - Route shell → Password requests: routes to
src/App.tsx - Route shell → Reading status: routes to
src/App.tsx - Login page → Login form: renders
src/pages/auth/LoginPage.tsx - Login form → Login lookup: authenticates with
src/components/auth/LoginForm.tsx - Login form → Persistent user state: sets user state
src/components/auth/LoginForm.tsx - Protected routes → Persistent user state: checks session
src/routes/ProtectedRoute.tsx - Admin routes → Persistent user state: checks session
src/routes/AdminRoute.tsx - Monthly overview → Book collection reads: loads summaries
src/pages/HomePage.tsx - Monthly overview → Member summary: renders
src/pages/HomePage.tsx - Monthly overview → Month selector: selects month
src/pages/HomePage.tsx - Member shelf → Book collection reads: loads books
src/pages/book/MyShelfPage.tsx - Member shelf → Add-book form: renders
src/pages/book/MyShelfPage.tsx - Member shelf → Add book: adds book
src/pages/book/MyShelfPage.tsx - Member shelf → Book goal card: renders
src/pages/book/MyShelfPage.tsx - Member shelf → Month selector: selects month
src/pages/book/MyShelfPage.tsx - Book goal card → Update book: updates goal
src/components/book/BookCard.tsx - Book goal card → Delete book: deletes book
src/components/book/BookCard.tsx - Login lookup → Firebase configuration: uses database config
src/services/auth/authService.ts - Book collection reads → Firebase configuration: uses database config
src/services/book/getMemberBookService.ts - Add book → Firebase configuration: uses database config
src/services/book/addBookService.ts - Update book → Firebase configuration: uses database config
src/services/book/modifyBookService.ts - Delete book → Firebase configuration: uses database config
src/services/book/deleteBookService.ts - Firebase configuration → Cloud Firestore: initializes
src/firebase/firebaseConfig.ts - Change password → Password reset service
- Password requests → Password reset service