</> Coduo Docs
Version 1.0 · May 2026

Admin Panel User Guide

A complete, screenshot-by-screenshot walkthrough of every section in the Coduo admin panel.

Welcome to the Coduo Admin Panel

The Coduo Admin Panel is a web-based control centre that gives you full control over every aspect of your platform — from managing learners and content to processing payments and configuring gamification. This guide walks through every section with screenshots so you know exactly what each screen does.

How to Access the Admin Panel

Open your admin panel URL in any browser. The default URL after deployment is:

https://YOUR_APP_NAME-admin.web.app

Admin Panel Sidebar Navigation

The left sidebar contains all main sections. Click any section header to expand or collapse its sub-items. The panel is fully responsive — on smaller screens the sidebar collapses into a hamburger menu at the top.

Sidebar SectionWhat It Contains
OVERVIEWDashboard stats, charts, and Audit Logs
CONTENTReserved for future content management features
USERS & COMMUNITYUser management, Public Profiles, Clubs Manager
PAYMENTS & REVENUEPayment Settings, Transactions, Bank Transfers, Revenue Analytics, Currency Management, Subscription Plans, Author Withdrawals
CODING PLATFORMTrack Manager, Lessons, Challenges, Assessment Editor, Playground Config, Project Editor, Interview Sets, Onboarding Config
ENGAGEMENT & REWARDSStreak Freeze Config, Gem Shop Config, Daily Challenge Manager, Cosmetics Manager, Certificates Manager
NOTIFICATIONS & SUPPORTNotifications, Support & Donations
SETTINGSApp Settings, AdMob Settings
Note: Always log in with an account that exists in the admin_users Firestore collection. Regular student accounts cannot access the admin panel.

1.1 — Platform Overview Dashboard

The Platform Overview is the first screen you see after logging in. It gives you a real-time snapshot of your platform's health and activity.

Coduo Admin Panel - Platform Overview Dashboard
Platform Overview Dashboard — showing key stats, charts, and engagement metrics.

Top Stats Row

Stat CardWhat It Shows
Total UsersAll registered accounts on the platform (registered)
Active LearnersUsers who have started at least one learning track (with progress)
Learning TracksNumber of published coding tracks (published)
Certificates IssuedTotal completion certificates issued to learners (all time)

Charts Section

Engagement & Gamification Stats (below fold)

Tip: Click the Refresh button (top right) to pull the latest data. Stats update in real time from Firestore.

1.2 — Audit Logs

Audit Logs record every significant action taken on the platform — logins, payments, content changes, and user modifications. Use this to investigate issues, track admin activity, and maintain accountability.

Coduo Admin Panel - Audit Logs
Audit Logs — filterable table of all platform actions with timestamps.

Filtering Audit Logs

FilterHow to Use
Action TypeFilter by category (All, login, payment, content, user change, etc.)
User IDEnter a specific User UID to see only that user's actions
SearchSearch by ID, username, or transaction ID
Start Date / End DateSet a date range to narrow results
Apply FiltersClick to apply all selected filters simultaneously
ClearReset all filters and show all entries

Reading an Audit Log Entry

Tip: Audit logs are read-only. They cannot be deleted or modified. This ensures a tamper-proof record of all platform activity.

2.1 — Users

The Users screen is your central directory of every person registered on your platform. You can search, sort, view detailed profiles, and manage roles from here.

Coduo Admin Panel - Users Management
Users list — showing all registered accounts with role badges, subscription status, and follower counts.

Users Table Columns

ColumnWhat It Shows
UserDisplay name with role badge (student / editor / admin)
EmailRegistered email address
Enrolled CoursesNumber of courses/tracks the user has started
SubscriptionCurrent plan (None / Pro / Premium)
PlatformDevice platform (android / ios / web)
Followers / FollowingSocial follow counts
ActionsEdit and context menu for role management

Creating a New User

  1. Click “Create User”

    The navy “+ Create User” button is at the top right of the Users screen.

  2. Fill in the form

    Enter name, email, and password. Select the role: student, editor, or admin.

  3. Save

    The user is created in Firebase Auth and added to Firestore simultaneously.

Searching & Sorting

User Actions (Context Menu)

2.2 — User Profile

Clicking a user opens the User Profile modal. This gives you a complete picture of that learner's progress, activity, and job readiness.

Coduo Admin Panel - User Profile Modal
User Profile modal — showing XP level progress, activity breakdown, 7-day streak history, and Job Readiness Score.
Coduo Admin Panel - User Profile Modal Detail
User Profile — full XP total and Job Readiness Score breakdown for a learner.

Profile Charts Explained

ChartWhat It Shows
XP Level Progress (donut)Current level number and percentage progress towards next level. Total XP shown below.
Activity Breakdown (donut)Mix of activity types: Challenges, Lessons, Playground usage
Streak History (bar chart)Daily streak activity over the last 7 days
Job Readiness Score (progress bar)Composite score across skills, streaks, and challenge completions. Status labels: Getting Started / In Progress / Ready
Tip: The Job Readiness Score is a great way to identify your most skilled learners for potential testimonials, case studies, or advanced content invitations.

2.3 — Public Profiles

Public Profiles shows the leaderboard-style list of all users who have enabled public visibility. You can search by username and toggle any user's visibility from here.

Coduo Admin Panel - Public Profiles
Public Profiles — searchable list showing XP, streak, track count, and badge count per user, with a toggle to make profiles public or private.

Managing Public Profiles

2.4 — Clubs Manager

Coding Clubs are user-created groups where learners can team up, share challenges, and learn together. The Clubs Manager lets you view, moderate, and remove clubs.

Coduo Admin Panel - Clubs Manager
Clubs Manager — showing all active clubs with member count, visibility, and creation date.

Club Entry Fields

Available Actions

Note: Deleting a club is permanent. Members lose access to the club's shared challenges and message history.

3.1 — Payment Settings

Payment Settings is where you configure your payment gateways. The screen is organised into five tabs: Stripe, Paystack, Bank Transfer, Currency, and Author Payouts.

Coduo Admin Panel - Payment Settings Stripe Tab
Payment Settings — Stripe tab showing Cloud Functions URL configuration, Enable Stripe toggle, Test Mode toggle, and Publishable Key field.

Cloud Functions URL — Required First Step

Before enabling any payment method, you must set the Cloud Functions base URL. This is required for payment processing webhooks.

  1. Find your Cloud Functions URL

    Firebase Console → Functions → copy the base URL (format: https://REGION-PROJECTID.cloudfunctions.net)

  2. Paste it in the field

    Enter the URL in the “Cloud Functions URL” field at the top of the Payment Settings screen.

  3. Click Save URL

    The URL is saved to Firestore and immediately available to the payment functions.

Stripe Tab Settings

FieldWhat to Enter
Enable Stripe toggleTurn ON to activate Stripe card payments for users
Test Mode toggleON = uses test API keys (development); OFF = uses live keys (production)
Publishable KeyYour Stripe publishable key (pk_live_... or pk_test_...)
Secret KeySet via Firebase CLI only: firebase functions:secrets:set STRIPE_SECRET_KEY (never stored in Firestore)

Paystack Tab Settings

Bank Transfer Tab

Note: Secret keys (Stripe and Paystack) are never stored in Firestore. They must be set via the Firebase CLI: firebase functions:secrets:set KEY_NAME. Only the publishable/public keys are stored in the admin panel.

3.2 — Transactions

The Transaction Dashboard shows every payment attempt on your platform — successful, failed, pending, expired, and refunded. You can filter, search, and export the full history.

Coduo Admin Panel - Transaction Dashboard
Transaction Dashboard — showing Total Revenue, Transaction Count, Average Value, and a full filterable transaction list with payment method badges.

Summary Stats (Top Row)

Filtering Transactions

FilterOptions
StatusAll / pending / completed / failed / expired / refunded / pendingVerification
Payment MethodAll / stripe / paystack / bankTransfer
User EmailType to filter by a specific user's email
Course IDFilter by a specific course or track slug
Date RangeSelect start and end dates

Transaction Detail

Click the eye icon on any row to open the Transaction Details modal:

Coduo Admin Panel - Transaction Details Modal
Transaction Details modal — showing full transaction information, user details, course information, and payment information.
Tip: Use the download icon (top right of the Transactions screen) to export the filtered transaction list to CSV for accounting or reconciliation.

3.3 — Revenue Analytics

The Revenue Analytics Dashboard gives you a visual breakdown of earnings. Use it to understand which payment methods are most popular and which courses are generating the most revenue.

Coduo Admin Panel - Revenue Analytics
Revenue Analytics Dashboard — donut chart showing revenue split across Stripe, Paystack, and Bank Transfer.

Available Charts

Filters

3.4 — Currency Management

Currency Management lets you add, activate, and manage the exchange rates for all currencies your platform accepts. This controls what currency options users see at checkout.

Coduo Admin Panel - Currency Management
Currency Management — table showing currencies with exchange rates, status, and action icons for base currency, default, edit, and delete.

Understanding BASE and DEFAULT Currency

LabelWhat It Means
BASEThe anchor currency — all exchange rates are relative to it (rate = 1.0). USD is typically the base. Only one BASE at a time.
DEFAULTThe currency displayed to users for all prices and at checkout. Only one DEFAULT at a time.
ActiveCurrency is enabled and available for transactions
InactiveCurrency is disabled and hidden from users

Adding a Currency

  1. Click “+ Add Currency”

    Top right of the Currency Management screen.

  2. Enter currency details

    Currency code (e.g. NGN), name (Nigerian Naira), symbol, and exchange rate relative to your base currency.

  3. Set status

    Toggle Active to make it immediately available.

  4. Save

    The currency appears in the list and becomes available at checkout.

Note: If you change the BASE currency, you must update all other exchange rates manually. The system does not automatically recalculate rates.

3.5 — Subscription Plans

Subscription Plans defines the tiers available to users — Free, Pro, and Premium. These tiers gate access to AI features, lesson limits, challenge attempts, and other premium content.

Coduo Admin Panel - Subscription Plans
Subscription Plans — Free, Pro, and Premium tiers with monthly pricing and edit, delete, and reorder actions.

Plan Actions

Plan Fields (When Editing)

FieldDescription
NameDisplay name (e.g. Pro Monthly)
PriceAmount in the selected currency
CurrencyUSD, NGN, GHS, or any active currency
Intervalmonthly or yearly
TierInternal identifier: free / pro / premium — used by the app to gate features
Features ListBullet points shown on the paywall (e.g. AI Code Review, Unlimited Lessons)
Is ActiveToggle to show/hide this plan on the paywall
Tip: Mark your best-value plan with “Popular” by adding it to the plan's badge field. This highlights it with a badge on the mobile app paywall.

4.1 — Track Manager

The Track Manager is where you create and organise your entire learning curriculum. A Track is a complete coding course — it contains Modules, and each Module contains Lessons.

Coduo Admin Panel - Track Manager
Track Manager — listing all learning tracks with difficulty badges, subscription tier, lesson count, and published toggle.

Track List Fields

FieldDescription
Order numberThe display order in the app (0, 1, 2, 3...)
Track name + descriptionTitle and short description shown to learners
Difficulty badgebeginner / intermediate / advanced
Subscription tier badgefree / pro / premium — determines who can access this track
Lesson countTotal lessons across all modules in this track
Language IDJudge0 language ID (71=Python, 63=JS, 82=SQL, 62=Java, 54=C++)
Published toggleBlue = live and visible to learners; Grey = draft (hidden)

Creating a New Track

  1. Click “+ Add New Track”

    Top right button on the Track Manager screen.

  2. Fill in the Edit Track form

    See the form fields described below.

  3. Add Modules

    Scroll down in the form to the Module Order section. Click “+ Add Module” to create modules within this track.

  4. Save

    Click Save. The track appears in the list as a Draft. Toggle Published when ready to go live.

Coduo Admin Panel - Edit Track Modal
Edit Track modal — showing all fields: Language Name, Slug, Description, Icon URL, Difficulty, Subscription Tier, Learning Path Tier, Judge0 Language ID, Display Order, Published toggle, and Module Order section.

Edit Track Form Fields

FieldWhat to Enter
Language NameThe display name (e.g. Python Fundamentals)
SlugURL-friendly ID auto-generated from name (e.g. python)
DescriptionShort description shown on the track card
Icon URLURL to a track icon image (optional — hosted on Firebase Storage)
DifficultyBeginner / Intermediate / Advanced
Subscription TierFree / Pro / Premium — gates who can enrol
Learning Path TierBeginner → Intermediate → ML Fundamentals → Advanced AI (the overall learning journey stage)
Judge0 Language ID71=Python, 63=JS, 82=SQL, 62=Java, 54=C++, 60=Go, 74=TypeScript, 78=Kotlin
Display OrderInteger controlling position in the track list (lower = higher)
PublishedToggle to make the track visible to learners
Module OrderAdd, reorder, and manage modules within this track

4.2 — Lessons

The Lesson Editor gives you two ways to work: the global Lessons view lists every lesson across all tracks, while the Track Manager drill-down shows lessons within a specific module. Use the global view to search and edit; use the Track Manager path to create new lessons in context.

Coduo Admin Panel - Lesson Editor Global View
Lesson Editor (global view) — listing all lessons across all tracks, showing track ID, module ID, item count, XP reward, and published/draft status.
Coduo Admin Panel - Lessons Within a Module
Lessons within a Module — ordered list showing lesson number, title, item count, XP reward, estimated minutes, and published status with view/edit/delete actions.

Lesson Actions

Adding a New Lesson

  1. Navigate via Track Manager

    Track Manager → click a track → click a module → click “+ Add Lesson”

  2. Fill in lesson details

    Title, estimated time, XP reward, and published status

  3. Add lesson items

    Each lesson contains items: concept cards (explanatory text), coding exercises, fill-in-the-blank, or multiple choice

  4. Add test cases

    For coding exercises, add test cases with expected inputs and outputs

  5. Save and publish

    Toggle Published when the lesson is ready for learners

Tip: New lessons are always created in Draft status. This means you can build and review them without learners seeing incomplete content.

4.3 — Challenge Editor

Standalone coding challenges are separate from tracks. They appear in the Challenges section of the mobile app and can be used for daily challenges. Each challenge has a difficulty, XP reward, and can be set to any subscription tier.

Coduo Admin Panel - Challenge Editor
Challenge Editor — listing all challenges with difficulty colour coding, Judge0 language ID, XP reward, and draft/published status.

Creating a New Challenge

  1. Click “+ New Challenge”

    Top right button on the Challenge Editor screen.

  2. Fill in the New Challenge form

    See form fields below.

  3. Write Problem Statement

    Use Markdown to describe the problem. A live Preview pane shows how it renders.

  4. Add Test Cases

    Scroll down to add input/output test cases. These are run against the learner's code.

  5. Save

    Click Save. Toggle Published when ready.

Coduo Admin Panel - New Challenge Form
New Challenge form — Challenge Title, Slug, Difficulty, Subscription Tier, XP Reward, Time Limit, Topic Tags, Published toggle, Challenge Type, and markdown Problem Statement editor with live preview.

New Challenge Form Fields

FieldDescription
Challenge TitleDisplay name shown in the app
SlugAuto-generated URL-friendly ID from title
DifficultyEasy / Medium / Hard
Subscription TierFree / Pro / Premium
XP RewardXP awarded on successful completion (default: 50)
Time LimitSeconds allowed per attempt (0 = no limit)
Topic TagsComma-separated tags for filtering (e.g. arrays, strings, loops)
PublishedToggle to make visible to learners
Challenge TypeFree Form (open coding) / Fix the Bug / Fill Blank
Problem StatementMarkdown-formatted problem description with live preview

4.4 — Playground Config

The Code Playground is a free-form code editor available to learners for experimenting outside of lessons. Here you control whether it's enabled and how many executions each user gets per day.

Coduo Admin Panel - Playground Config
Playground Config — Enable Playground toggle and Daily Execution Limit field.
SettingDescription
Enable PlaygroundToggle ON to give learners access to the free-form code editor
Daily Execution LimitMaximum number of code runs per user per day (default: 20). Set to 0 for unlimited.
Tip: Set a lower Daily Execution Limit (e.g. 5) for free-tier users to encourage Pro upgrades. Configure per-tier limits in your Subscription Plans.

4.5 — Project Editor

Projects are capstone assignments that appear at the end of a learning track. They give learners a practical goal to apply everything they've learned. Each track can have one capstone project.

Coduo Admin Panel - Project Editor
Project Editor — left panel shows existing projects list; right panel shows the project form with Track selector, Title, Description, XP Reward, Published toggle, and Steps builder.
FieldDescription
TrackSelect which learning track this project belongs to
TitleProject name (e.g. Build a Calculator in C++)
DescriptionWhat learners will build — shown on the project card
XP RewardXP awarded on project completion
PublishedToggle to make the project visible in the track
StepsClick “+ Add Step” to break the project into guided milestones

4.6 — Interview Sets Editor

Interview Sets are curated question banks for the Interview Prep feature in the mobile app. Learners take timed practice sessions from these sets to build interview confidence and track their readiness score.

Coduo Admin Panel - Interview Sets Editor
Interview Sets Editor — listing all available sets with topic, difficulty, question count, and time estimate.

Creating a New Interview Set

  1. Click “+ New Set”

    Bottom right of the Interview Sets Editor screen.

  2. Enter set details

    Set name, topic (e.g. Algorithms), difficulty (easy/medium/hard), and time estimate.

  3. Add questions

    Click the “view questions” icon on any set to open its question bank and add individual questions.

  4. Set question format

    Each question has: prompt text, expected answer type, hints, and time allocation.

Pre-Loaded Interview Set Topics

4.7 — Onboarding Configuration

The Onboarding Configuration controls the first-run experience for new users. When a new learner installs the app, they are asked about their goals, experience level, and daily time commitment. This screen lets you customise those options.

Coduo Admin Panel - Onboarding Configuration
Onboarding Configuration — Branding section (mascot image URL, App Tagline), Learning Goal Options, Experience Level Options, and Daily Time Commitment Options.
SectionWhat It Controls
Branding — Mascot Image URLThe AI tutor character image shown during onboarding (upload to Firebase Storage, paste the URL)
Branding — App TaglineMotivational tagline shown on the onboarding splash (e.g. “Code Daily. Think Better.”)
Learning Goal OptionsThe list of goals users can select (e.g. “Get a developer job”, “Learn for fun”, “Prepare for interviews”)
Experience Level OptionsSelf-reported experience levels (e.g. “Complete Beginner”, “Some experience”, “Professional developer”)
Daily Time Commitment OptionsHow long users say they can study daily (e.g. “5 minutes”, “10 minutes”, “30+ minutes”)
Tip: Click “+ Add Option” in any section to add a new choice. Drag options to reorder them. The adaptive skill assessment at the end of onboarding places users in the right learning track automatically.

5.1 — Streak Freeze Config

Streak Freezes let learners protect their daily streak on days they cannot study. This screen controls how expensive streak repairs are, how long the repair window lasts, and how many freezes a user can hold at once.

Coduo Admin Panel - Streak Freeze Config
Streak Freeze Config — Repair XP Cost, Repair Window, Max Streak Freezes, and Freeze Earn Threshold settings.
SettingDescriptionDefault
Repair XP CostXP required for a user to repair a broken streak50
Repair Window (days)Days after a streak break during which a repair is allowed24
Max Streak FreezesMaximum number of freeze tokens a single user can hold at one time3
Freeze Earn Threshold (days)Consecutive streak days needed to earn a free freeze token7
Tip: Setting the Freeze Earn Threshold to 7 means a user earns a free freeze after 1 week of consistent studying — a great retention incentive without giving freezes away too easily.

5.2 — Gem Shop Config

Gems are the virtual currency in Coduo. Learners earn gems by completing lessons and challenges. They can spend gems in the Gem Shop on streak freezes, hint reveals, and cosmetic items. This screen sets the gem cost for each item.

Coduo Admin Panel - Gem Shop Config
Gem Shop Config — Streak Freeze Cost, Hint Reveal Cost, Frame Unlock Cost, and a Top 20 User Balances leaderboard.
ItemDescriptionDefault Cost
Streak Freeze CostGems required to purchase one streak freeze token from the shop100 gems
Hint Reveal CostGems to unlock one hint in a Fix-the-Bug challenge20 gems
Frame Unlock CostGems to unlock a cosmetic avatar frame500 gems

Below the configuration form, the screen shows the User Balances (Top 20) — a live leaderboard of the 20 users with the highest gem balances. This is useful for monitoring gem economy health and identifying power users.

5.3 — Daily Challenge Manager

The Daily Challenge Manager schedules one coding challenge per day. Learners see a countdown timer to the next challenge and can track their 7-day completion history. You can schedule challenges weeks or months in advance using the calendar view.

Coduo Admin Panel - Daily Challenge Manager
Daily Challenge Manager — calendar view with scheduled challenges listed below; today's date is highlighted.

Calendar View

Creating a New Daily Challenge

  1. Click “+ New Challenge”

    Bottom right button on the Daily Challenge Manager screen.

  2. Fill in the Edit Challenge form

    Title, Description, Problem Statement (markdown), Starter Code (optional), and select the challenge date.

  3. Save

    The challenge is scheduled and will automatically become available to learners on the assigned date.

Coduo Admin Panel - Edit Challenge Modal
Edit Challenge modal — Title, Description, Problem Statement in markdown with live preview, and a Starter Code field pre-filled with code for learners to fix.
FieldDescription
TitleChallenge name shown to learners (e.g. Fix the Off-by-One)
DescriptionOne-line summary of what the challenge involves
Problem StatementFull problem description in Markdown (supports code blocks, headings, bold)
Starter CodePre-filled code shown in the editor — useful for Fix-the-Bug challenges
Assign ParticipantsView which users have attempted or completed this challenge

5.4 — Certificates Manager

Certificates are issued automatically when a learner completes an entire learning track. The Certificates Manager has three tabs: All Certificates (view all issued certs), Configuration (set your branding), and Verify Certificate (authenticate any cert by ID).

Coduo Admin Panel - Certificates Manager
Certificates Manager — All Certificates tab showing issued certificates with learner name, track, issue date, and credential ID.

Certificate Status

StatusMeaning
ActiveCertificate is valid and can be verified by employers or institutions
RevokedCertificate has been invalidated — shown with a red background row

Certificate Template Configuration

Coduo Admin Panel - Certificates Configuration
Certificates Configuration tab — live certificate preview with Issuer Name, Organization Name, Organization Address, and Certificate Tagline fields.
FieldDescription
Issuer NameName shown prominently on the certificate (e.g. Coduo Web Services)
Organization NameShown when Issuer Name is blank
Company/Organization Name (metadata)Used in verification metadata and digital signature
Organization AddressDisplayed at the bottom of the certificate
Certificate TaglineMotivational subtitle (e.g. “Empowering the next generation of developers”)

Verifying a Certificate

Use the Verify Certificate tab to confirm whether a credential ID is authentic. Employers, institutions, or the admin can enter a credential ID and get an immediate Valid/Invalid response.

Coduo Admin Panel - Verify Certificate Valid Result
Verify Certificate — a valid result showing Recipient, Track, Completion Date, and Credential ID in a green confirmation box.
Coduo Admin Panel - Verify Certificate Not Found Result
Verify Certificate — a “Certificate Not Found” result, shown when no certificate matches the entered credential ID.
Tip: Share the Verify Certificate URL with your learners so they can give it to employers for instant credential authentication. The format is: https://YOUR_ADMIN_URL/#/verify

6.1 — App Settings

App Settings is where you control the global branding and configuration of your platform — the name, logos, social links, legal URLs, and store links that appear throughout the mobile app and admin panel.

Coduo Admin Panel - App Settings
App Settings — Branding section showing App Name, Tagline, and Logo section with Light Logo URL and Dark/Sidebar Logo URL upload fields.

Branding Section

FieldDescription
App NameThe name of your app — appears on splash screen, app bar, and home screen icon label
TaglineShort motivational phrase shown on the onboarding screen (e.g. “Code Daily, Think Better.”)
Light Logo URLURL of your logo for light backgrounds (login page, splash). Upload to Firebase Storage → paste download URL.
Dark / Sidebar Logo URLURL of your logo for dark backgrounds (admin sidebar, dark mode screens)

How to Update Logos via App Settings

  1. Upload logo to Firebase Storage

    Firebase Console → Storage → Upload your PNG logo file. Right-click → Get Download URL.

  2. Paste URL in App Settings

    Paste the Firebase Storage download URL into the Light Logo URL or Dark Logo URL field.

  3. Click Upload (or Save Changes)

    The URL is saved to Firestore. The app reads it dynamically — no rebuild required.

Other App Settings Sections

Note: Always click “Save Changes” (top right) after making any changes in App Settings. Changes take effect immediately in the live app without requiring a rebuild.

6.2 — AdMob Settings

AdMob Settings controls all advertising for your mobile app. You can enable/disable ads globally, and configure the App ID and ad unit IDs for each ad format. Premium users automatically see no ads regardless of this setting.

Coduo Admin Panel - AdMob Settings
AdMob Settings — Ad Status section with Enable Ads toggle, and AdMob Configuration fields for App ID, Banner, Interstitial, and Rewarded Ad Unit IDs.

Ad Status

ToggleEffect
Enable Ads — ONAds are shown to free-tier users throughout the app (home banner, challenge interstitial)
Enable Ads — OFFNo ads are shown to any users regardless of subscription tier

AdMob Configuration Fields

FieldFormat & Description
AdMob App IDFormat: ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX — from AdMob Console → Apps → your app → App ID
Banner Ad Unit IDFormat: ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX — shown at the bottom of the home screen
Interstitial Ad Unit IDFormat: ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX — full-screen ad shown after challenge completion
Rewarded Ad Unit IDFormat: ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX — user watches to earn gems
Note: Never enter real AdMob IDs while testing. Use Google's official test IDs (ca-app-pub-3940256099942544/...) during development to avoid policy violations. Only switch to your real IDs when submitting to the app stores.
Tip: Setting show_ads_to_premium: false in Firestore (admob_configuration/default) ensures Premium users never see ads. This is the default setting — do not change it unless you have a specific reason.

7.1 — The Editor Role Explained

The Editor role is designed for content creators — writers, instructors, or subject matter experts who need to add and update learning content without having access to financial data, user management, or platform settings.

How to Assign the Editor Role

  1. Go to Users

    Sidebar → USERS & COMMUNITY → Users

  2. Find the user

    Search by email or scroll to find the user you want to promote

  3. Open their action menu

    Click the three-dot menu on the right of their row

  4. Select “Assign As Editor”

    The user's role badge immediately changes from student to editor

  5. Inform the user

    They now see a different version of the admin panel when they log in — with content tools only

Editor Access Summary

SectionEditor CanEditor Cannot
Track ManagerCreate and edit tracks, modulesDelete tracks
LessonsCreate and edit lessons, exercisesDelete lessons
ChallengesCreate and edit challengesDelete challenges
Daily ChallengesSchedule and edit daily challengesDelete daily challenges
Users & CommunityNo accessNo access
Payments & RevenueNo accessNo access
Engagement & RewardsNo accessNo access
SettingsNo accessNo access
DashboardContent stats only (editor dashboard)Platform-wide stats
Tip: The Editor role is perfect for hiring freelance content creators or bringing on teaching assistants to build out your course library without exposing sensitive platform data.

Common Admin Tasks

A quick-reference table for the most frequent actions you'll perform in the admin panel.

TaskWhere to GoHow
See platform statsOverview → Platform OverviewCheck the 4 stat cards and 3 charts
Find a userUsers & Community → UsersSearch by email in the search field
View a user's progressUsers → click a user rowUser Profile modal shows XP, streaks, job readiness
Promote a user to EditorUsers → context menu → Assign As EditorRole badge changes to “editor” immediately
Create a learning trackCoding Platform → Track Manager → + Add New TrackFill in the Edit Track form, add modules
Add a lessonTrack Manager → track → module → + Add LessonBuild lesson items in the Lesson Builder
Create a standalone challengeCoding Platform → Challenges → + New ChallengeFill form, write problem statement in markdown
Schedule a daily challengeEngagement & Rewards → Daily Challenge Manager → + New ChallengeSelect date, write title and problem
Verify a certificateEngagement & Rewards → Certificates Manager → Verify Certificate tabPaste credential ID → click Verify
Process a bank transferPayments & Revenue → Bank TransfersReview proof of payment → Approve or Reject
Change subscription plan pricePayments & Revenue → Subscription Plans → edit iconEdit price and save
Enable/disable adsSettings → AdMob SettingsToggle “Enable Ads”
Update app logoSettings → App Settings → Logo sectionUpload to Firebase Storage → paste URL → Save Changes
Check audit trailOverview → Audit LogsFilter by action type, user ID, or date range
Change gem pricesEngagement & Rewards → Gem Shop ConfigUpdate costs and click Update