How rifat064/shobdodaily works
ShobdoDaily is a browser-based vocabulary-learning app. Learners enter through the home view, where they can study the daily card, hear pronunciations, bookmark words, and mark learning progress; app startup routes between home, bookmarks, settings, premium, and admin. Daily-card loading combines date utilities, Firebase retrieval, and IndexedDB support. The README only identifies this as a web app, so feature detail comes from sampled source; source for service-worker behavior and some premium flows was not inspected.
Main entry points: main.js App startup · home.js Daily learning · firebase.js Firebase services · state.js Local app state
Components 14
App shell
- App startup
src/app/main.js - View routing
src/app/router.js
Learning experience
- Daily learning
src/app/views/home.js - Bookmarks
src/app/views/bookmark.js - Premium access
src/app/views/premium.js - Card publishing
src/app/views/admin.js
Account and preferences
- Settings
src/app/views/settings.js - Local app state
src/core/state.js
Content and persistence
- Date utilities
src/core/dates.js - Firebase services
src/data/firebase.js - Offline card store
src/data/idb.js
Other components
- Learner
- Firebase backend
- Browser platform
Connections 27
- Learner → App startup: opens app
src/app/main.js - App startup → View routing: initializes
src/app/main.js - App startup → Daily learning: initializes
src/app/main.js - App startup → Settings: initializes
src/app/main.js - App startup → Bookmarks: initializes
src/app/main.js - App startup → Premium access: initializes
src/app/main.js - App startup → Card publishing: loads and initializes
src/app/main.js - App startup → Local app state: loads preferences
src/app/main.js - App startup → Firebase services: listens for auth
src/app/main.js - App startup → Browser platform: registers worker
src/app/main.js - Learner → View routing: selects view
src/app/router.js - View routing → Daily learning: shows view
src/app/router.js - Daily learning → Date utilities: gets today key
src/app/views/home.js - Daily learning → Firebase services: fetches daily card
src/app/views/home.js - Daily learning → Offline card store: reads and caches cards
src/app/views/home.js - Daily learning → Local app state: reads and saves progress
src/app/views/home.js - Daily learning → Premium access: opens paywall
src/app/views/home.js - Bookmarks → Local app state: reads bookmarks
src/app/views/bookmark.js - Settings → Local app state: saves preferences
src/app/views/settings.js - Settings → Firebase services: auth actions
src/app/views/settings.js - Premium access → Local app state: saves premium status
src/app/views/premium.js - Card publishing → Firebase services: publishes card
src/app/views/admin.js - Firebase services → Firebase backend: reads and writes
src/data/firebase.js - Firebase services → Browser platform: uses auth SDK
src/data/firebase.js - Offline card store → Browser platform: uses IndexedDB
src/data/idb.js - Local app state → Browser platform: persists locally
src/core/state.js - Settings → Browser platform: schedules notifications
src/app/views/settings.js