Overview

Folders

0

Books

0

Users

0

Folder Management

Name Description Created Actions

No folders found.

Book Management

Title Folder Uploaded Actions

No books found.

User Management

Phone GH Number UID Role Active Updated Actions

No users found.

Broadcast Notifications

Send updates to all app users and review recent sends.

Time Title Message Sent By Status

No notifications sent yet.

Usage Dashboard

Daily Active Users

0

Today

Monthly Active Users

0

This month

Book Opens (30d)

0

All tracked reads

Users Currently Reading

User GH Number Book Last Opened

No active reading sessions yet.

Top Books (Last 30 Days)

Book Opens Reader Days Folder

No book activity yet.

Daily Login Trend (Last 14 Days)

Date Active Users

No daily login trend yet.

Help & Support Center

Comprehensive guidance for reader app usage, admin portal operations, and technical troubleshooting. Use this section as your runbook.

1. How to use the app

This covers the complete user journey from first launch to daily reading. The mobile app authenticates with phone verification and reads content from Firestore/Storage.

Infographic: Reader Journey
Launch App Intro slides + onboarding
Phone Sign-In Enter phone, receive OTP, verify
Discover Browse folders and searchable books
Open Book PDF viewer loads from secure URL
Usage Tracked Daily/monthly login + book opens
1.1 First-time setup and sign-in
  1. Install and launch the app. The first-time user intro appears.
  2. Complete or skip intro. On mobile, intro completion is stored locally.
  3. Enter phone in international format (example: +233XXXXXXXXX).
  4. Request verification code and enter the 6-digit OTP.
  5. After successful auth, user lands on the Home shell with tabs: Home, Discover, Profile.
  6. On first authenticated entry each day/month, usage metrics are automatically updated.

If OTP never arrives, confirm SIM network, number format, and region restrictions in Firebase Auth settings.

1.2 Discovering folders and books
  1. Open the Discover tab to see folders and searchable book list.
  2. Use the search bar for title/folder filtering.
  3. Use folder chips (including “All”) to narrow content.
  4. Tap any book card to open book detail.
  5. Book detail page shows folder, metadata, and related titles.

Book visibility depends on available Firestore records in library_files. If content is missing, check admin upload history.

1.3 Reading books (PDF flow)
  1. Tap Open Book from a book detail screen.
  2. The app opens Syncfusion PDF viewer using the stored file URL.
  3. If load succeeds, user reads/scrolls/zooms the PDF as needed.
  4. If load fails, the app displays error text from viewer callback.
  5. Each open action writes analytics (event + per-book counters + current reading state).
Reading analytics currently tracked:

open count, reader days, current book per user, daily and monthly login activity.

1.4 Profile and account behavior
  1. Profile screen shows user identity information from Firebase Auth.
  2. User can sign out at any time from the Profile screen.
  3. Next sign-in on a new day counts toward daily and monthly active usage.

If you must disable a user, use Admin Portal user controls and enforce access in Firestore/Storage rules.

1.5 Reader best-practice checklist
  • Keep app updated to latest deployed build.
  • Use reliable data/Wi-Fi for large PDF files.
  • Avoid sharing OTP codes between personnel.
  • Report missing/incorrect book metadata to admins with title and screenshot.
  • Sign out on shared devices after reading.

2. How to use the admin portal

The admin portal is a Firebase Hosting web app for library operations: folders, books, users, and usage analytics.

Infographic: Admin Operations Loop
Authenticate Email/password admin sign-in
Create Structure Define folders for catalog organization
Upload Content PDF to Storage + metadata to Firestore
Manage Access Users, roles, active/inactive state
Review Usage DAU/MAU, top books, active readers
2.1 Access and security prerequisites
  1. Ensure Email/Password is enabled in Firebase Authentication.
  2. Create admin auth user in Firebase Authentication.
  3. Grant admin portal rights in Firestore admins collection.
  4. Use secure Firestore/Storage rules that allow writes only for admins.
  5. Avoid sharing admin credentials; assign individual accounts per operator.
2.2 Overview section
  • Shows total folders, books, and users loaded in real time.
  • Quick action buttons jump to create folder/upload book/add user flows.
  • Use this as a quick health check before any bulk operation.
2.3 Folder management workflow
  1. Create folders with operational names and meaningful descriptions.
  2. Edit names/descriptions when doctrine structure changes.
  3. Delete only empty folders. The portal blocks deletion if books are still linked.
  4. Use consistent naming conventions (e.g., Training, Doctrine, Signals).
2.4 Book management workflow
  1. Select target folder and upload PDF.
  2. Upload writes file bytes to Storage and metadata to library_files.
  3. Edit title/folder metadata as needed without re-uploading binary file.
  4. Delete removes metadata and attempts to remove underlying storage object.
  5. Use search input to quickly locate any title/folder association.
Metadata quality checklist:

title accuracy, correct folder, clear file naming, and no duplicate variants unless intentional.

2.5 User management workflow
  1. Create/update users with phone number, GH number, role, and active state.
  2. Use GH number format consistently (example: GH001, GH5288).
  3. Admin access sync depends on UID already present in the stored user record.
  4. Delete user records carefully. It does not automatically delete Authentication accounts.
2.6 Usage dashboard interpretation
  • Daily Active Users: unique users logged in today.
  • Monthly Active Users: unique users logged in during current month.
  • Book Opens (30d): total open actions across all books in last 30 days.
  • Users Currently Reading: last opened book per active user.
  • Top Books: highest opened books, plus reader-day depth.
  • Daily Trend: 14-day active user trend for command reporting.
2.7 Operational cadence (recommended)
  • Daily: monitor failed uploads, user lockouts, and usage anomalies.
  • Weekly: review top books and prune low-quality duplicates.
  • Monthly: archive obsolete content and validate admin accounts.
  • Quarterly: review security rules, password policies, and access logs.
2.8 Deployment and environment operations
  1. Run local checks and verify syntax before deploy.
  2. Deploy portal with firebase deploy --only hosting.
  3. Validate login, uploads, and dashboard after deploy.
  4. Keep incident notes for each production change window.

3. Technical troubleshooting

Use this section as a practical runbook during incidents. Start with symptom isolation, then validate environment, auth, data, and permissions in that order.

Infographic: Troubleshooting Decision Path
Step 1: Classify Auth issue, data issue, upload issue, or render issue?
Step 2: Scope Single user, single role, or entire tenant/project?
Step 3: Validate Config Rules, auth providers, collection paths, storage bucket
Step 4: Correct + Verify Apply minimal fix, test, then monitor for regression
3.1 Rapid diagnosis matrix
Symptom Likely Cause Action Plan
Admin cannot sign in Email/password disabled or invalid credentials Check Auth provider enablement, reset password, verify admin record
“No admin access” after successful sign-in Missing/incorrect admins doc Create/fix admins/{uid} or email-seeded admin mapping
Book upload fails Storage rules deny write, network timeout, invalid file Inspect console errors, verify rules, retry with small test PDF
Books visible in portal but not app App reads different project/env or invalid file URL Verify Firebase options in app build, inspect library_files record fields
Usage dashboard empty No tracked events yet or blocked writes Open a book from app, check usage collections, validate Firestore rules
PDF open fails on app Broken URL/token or unsupported PDF Test URL in browser, re-upload file, validate file integrity
3.2 Authentication and user identity issues
  1. Verify Authentication provider settings in Firebase Console.
  2. Confirm affected account exists and is enabled.
  3. Check whether admin entitlement exists in admins.
  4. For phone users, verify phone format and SMS delivery constraints.
  5. For repeated failures, gather exact error message and timestamp before changing configuration.
3.3 Firestore/Storage permission-denied errors
  1. Open browser developer console and capture failing request path.
  2. Match request path to relevant Firestore/Storage rule clause.
  3. Validate auth context (request.auth.uid) and admin condition documents.
  4. Test with Emulator Suite if available before production rule change.
  5. Deploy smallest rule fix possible; avoid broad allow-all changes.
Security warning:

Never relax production rules globally just to bypass one failing operation. Fix path- and role-specific conditions instead.

3.4 Data integrity and migration issues
  1. For RTDB-to-Firestore migration, run dry-run scripts first.
  2. Check GH number format consistency (GH###).
  3. Re-run idempotent seeders to normalize records safely.
  4. Validate duplicate detection keys (phone + GH number, storagePath, or UID).
  5. Audit sample/legacy records separately from production records.
3.5 Performance troubleshooting
  • High latency in dashboard: reduce query scope, add indexes where required.
  • Slow file uploads: test network path and file size, then inspect Storage logs.
  • Heavy client rendering: limit table rows and use narrower date windows.
  • App PDF lag: verify file size and PDF optimization.
3.6 Incident report template (recommended)
  1. Incident ID and start time (UTC)
  2. Affected scope (users, region, role, feature)
  3. Observed errors with screenshots/log excerpts
  4. Root cause summary
  5. Actions taken and rollback details
  6. Post-incident prevention tasks