Skip to content

Administration

The Administration section contains tools for monitoring system activity, reviewing logs, managing notifications, and configuring portal settings. In the Admin Portal sidebar, these appear under the Administration group.


Notifications are messages the system sends automatically when something important happens — like a new membership signup, a session registration, an agreement being signed, or a volunteer shift being completed. This page is where you manage those notifications.

The system sends notifications to admins when things happen on the platform. For example:

  • A user signs up for a membership
  • Someone registers for a session
  • A volunteer completes a shift
  • An agreement is signed
  • A payment is received

Each notification shows up here and in the bell icon in the top-right corner of the Admin Portal.

Every notification has a type that tells you what kind of message it is:

Info — General information. Something happened that you should know about.

Success — Something good happened — like a payment going through or a task being completed.

Warning — Something needs your attention, but it’s not urgent.

Action Required — Something needs your attention right away.

Each notification card has a colored dot on the left side that matches its type.

Notifications are organized into three tabs based on their status:

Unread (3) Read (5) Trash (1)
TabWhat It Shows
UnreadNew notifications you haven’t dealt with yet. These are the ones that show up in the bell icon count.
ReadNotifications you’ve already reviewed. They stay here until you trash or resolve them.
TrashNotifications you’ve dismissed. You can restore them or permanently resolve (delete) them from here.

Each notification appears as a card with:

DetailWhat It Shows
Colored dotLeft side of the card — matches the notification type (blue, green, yellow, or red)
TitleA short summary of what happened
MessageMore detail about the event
TimeHow long ago the notification was created (e.g., “5m ago”, “2h ago”, “3d ago”)
LinkSome notifications include a link to the related page (e.g., a user profile or session)

What you can do depends on which tab you’re on:

TabAvailable Actions
UnreadMark Read — Moves the notification to the Read tab
ReadTrash — Moves the notification to the Trash tab
TrashRestore — Moves it back to Unread. Resolve — Permanently removes it (with an optional reason).

When you click Resolve on a trashed notification, a popup appears asking if you’d like to add details about why you’re resolving it. This is optional but helpful for record-keeping — the reason is saved to the Audit Log.

The bell icon in the top-right corner of the Admin Portal shows a count of your unread notifications. Clicking it opens a dropdown with your most recent notifications and a Mark All Read button. The bell updates automatically every 30 seconds.


The Audit Log records every action an admin takes on the platform — creating users, updating agreements, logging payments, adjusting credits, and more. Think of it as a history book for everything that happens in the Admin Portal. Every entry shows who did what, when, and to whom.

Here are some examples of actions that show up in the Audit Log:

ModuleExample Actions
UsersCreated a user, updated a user, deleted a user, suspended a user, verified an email, revoked an agreement
AgreementsCreated, updated, trashed, restored, or permanently deleted an agreement; revoked signatures
VolunteersAssigned a volunteer, marked a no-show, adjusted credits, created or deleted a timeslot
SubscriptionsActivated or cancelled a membership, created a credit pack, adjusted wallet credits
SessionsCreated, updated, cancelled, or deleted a session event; registered a student
BillingLogged a payment, marked an invoice as paid, voided an invoice
InventoryCreated or updated a product, adjusted stock, processed a quick sale
SettingsUpdated system settings or preferences
MediaUploaded or deleted media files

Each log entry has a severity level so you can quickly spot important actions:

Info — Routine actions like creating a user or updating a setting. Nothing unusual.

Warning — Actions that deserve attention, like suspending a user or adjusting credits.

Danger — Critical or destructive actions, like deleting a user or voiding an invoice.

TimeAdminModuleSeverityDescription
Mar 23, 2026 9:40 AM · 42m ago
Admin Jones
USERS
INFO
Sarah Lin updated profile settings User Updated · Sarah Lin
Mar 23, 2026 9:15 AM · 1h ago
Admin Jones
BILLING
WARNING
Invoice INV-0004 voided for James Kim Invoice Voided · James Kim

Every row in the audit log table shows:

ColumnWhat It Shows
TimeThe date, time, and how long ago it happened (e.g., “Mar 15, 2026 · 2:30 PM · 2h ago”)
AdminThe name of the admin who performed the action (with avatar initials)
ModuleA color-coded badge showing which part of the system was affected (e.g., “users”, “billing”)
SeverityA color-coded badge — Info (blue), Warning (yellow), or Danger (red)
DescriptionWhat happened, including the name of the person or item affected

All columns except Description are sortable — click a column header to sort ascending or descending. The default sort is newest first.

All Modules All Severity All Time Export CSV

Above the table, you can narrow down the log using four controls:

ControlWhat It Does
Search boxSearch by description, admin name, or target name
Module dropdownFilter to a specific module — Users, Agreements, Volunteers, Subscriptions, Sessions, Inventory, Billing, or Settings
Severity dropdownFilter by severity — Info, Warning, or Danger
Date Range dropdownShow entries from Today, Last 7 Days, Last 30 Days, or All Time

A Clear button appears when any filter is active. Click it to reset all filters.

Click the Export CSV button to download the current view as a CSV file. The export respects your active filters — so if you’re filtering to “billing” module and “danger” severity, only those entries are exported.

The file is named audit-log-YYYY-MM-DD.csv and includes: Timestamp, Admin, Action, Module, Severity, Target, and Description.


The Error Log automatically captures every server error that happens on the platform. Unlike the Audit Log (which tracks what admins do), the Error Log tracks what goes wrong — failed API requests, server crashes, and unexpected errors. You don’t have to do anything to log errors — the system captures them automatically.

Every time a request to the server fails with an unhandled error, the system records:

  • The HTTP method (GET, POST, PATCH, DELETE) and request path (which API endpoint failed)
  • The error message explaining what went wrong
  • The stack trace (technical details showing where in the code the error occurred)
  • The user ID of whoever triggered the error (if they were logged in)
  • The timestamp of when it happened

Each error appears as a row you can expand to see more detail. Click the arrow icon on the left to expand or collapse an entry.

Here’s an example of an expanded error entry:

GET /api/me Failed query: select "id", "username", "name", "email", "personal_email", "password_h... Mar 17, 2026 03:45:31 PM
Status: 500 User: usr-1234567
Failed query: select "id", "username", "name", "email", "personal_email", "password_hash", "pin_hash", "date_of_birth", "status", "roles", "consent", "parent_email", "parent_name", "parent_phone", "consent_date" from "users" where "users"."id" = $1 params: usr-349ba3bc
Error: Failed query: select "id", "username", "name" from "users" where "users"."id" = $1 params: usr-349ba3bc at PostgresJsPreparedQuery.queryWithCache (functionsWorker:15423:19) at async functionsWorker:15660:24 at async functionsWorker:40379:22 at async dispatch (functionsWorker:2450:21) at async functionsWorker:19158:7

Collapsed view shows:

FieldWhat It Shows
Method badgeColor-coded HTTP method — GET , POST , PATCH , or DELETE
PathThe API endpoint that failed (e.g., /api/users/usr-abc123) in monospace font
MessageA short version of the error message
TimestampWhen the error happened (e.g., “Mar 23, 2026 14:30:05”)

Expanded view adds:

FieldWhat It Shows
Status CodeThe HTTP error code (usually 500 for server errors)
User IDWho was logged in when the error happened (if available)
Full MessageThe complete error message without truncation
Stack TraceThe full technical trace showing where in the code the error occurred. This is scrollable and uses monospace font.

The HTTP method badge is color-coded so you can quickly see what type of request failed:

GET — A read request failed (fetching data)

POST — A create request failed (adding new data)

PATCH — An update request failed (changing existing data)

DELETE — A delete request failed (removing data)

Type in the search box to filter errors by their message content. The search updates as you type (with a short delay to avoid flickering).

At the top of the page, two buttons let you clean up the error log:

ButtonWhat It Does
Clear OldRemoves all error entries older than 30 days
Clear AllRemoves every error entry in the log
Audit LogError Log
What it tracksAdmin actions (things people do)Server errors (things that break)
How entries are createdAutomatically when an admin takes an actionAutomatically when the server hits an error
FiltersSearch, Module, Severity, Date RangeSearch only
ExportCSV export availableNot available
SortingSortable columnsNewest first (fixed)

The Reports page pulls data from across the entire platform — billing, users, volunteers, inventory, and subscriptions — and displays it in one place. It’s a read-only dashboard for understanding how the organization is doing.

7 Days30 Days90 DaysAll Time
Print Report

Use the time range pills to filter revenue data — choose 7 Days, 30 Days, 90 Days, or All Time. This affects the Total Revenue metric and the Monthly Revenue chart. The other metrics always show current totals regardless of the time range.

Click Print Report to generate a print-ready version of the full report. This opens a new window with all metrics, tables, and stats formatted specifically for printing — it’s not a screenshot of the page, but a clean, professional layout with proper spacing, headers, and a timestamp showing when the report was generated. Use your browser’s print dialog to save it as a PDF or send it to a printer.

Four main cards are displayed across the top:

TOTAL REVENUE 225
ACTIVE STUDENTS 4
INVENTORY VALUE 350
ACTIVE VOLUNTEERS 5
CardWhat It Shows
Total RevenueSum of all paid billing transactions within the selected time range
Active StudentsNumber of users with an Active status and the Student role
Inventory ValueTotal value of active inventory products (quantity × cost)
Active VolunteersNumber of volunteer records with Active status

A bar chart showing the last 3 months of revenue from paid transactions. Helps spot revenue trends over time.

Monthly Credit Revenue
$65
Jan 2026
$120
Feb 2026
$225
Mar 2026
Credit Revenue

Below the metrics and chart, several tables break down the data further:

Users by Role
ROLECOUNT%
Students583.3%
Admins116.7%

Shows how your user base is distributed between students and admins.

Inventory Status
STATUSPRODUCTSVALUE
Active5$350.00
Low Stock1$24.00
Inactive2$0.00

Shows a breakdown of your inventory by status, including how many products are running low.

Shows each subscription tier as a card with the tier name and how many active subscribers it has. Only tiers with active subscribers are shown.

Four more cards appear at the bottom covering volunteer and system health metrics:

VOLUNTEER HOURS 33
NO-SHOW RATE 0
LOW STOCK PRODUCTS 0
PENDING CONSENTS 0
CardWhat It Shows
Volunteer HoursTotal hours volunteered across all volunteers
No-Show RatePercentage of volunteer assignments that were no-shows
Low Stock ProductsCount of active products below their low stock threshold
Pending ConsentsNumber of users with parental consent still in “Awaiting” status

My Profile in the Admin Portal works the same way as the Profile page in the User Portal. You can update your personal information, change your password, and manage your security settings.

  • Full name and date of birth
  • Email address (requires verification)
  • Password (click “Set New Password”)
  • PIN passcode (optional 4-digit PIN)
  • Two-Factor Authentication (2FA) — enable or disable
  • You cannot remove your own Admin role. This prevents you from accidentally locking yourself out of the Admin Portal. Another admin must make that change for you.
  • You cannot change your own username. Usernames are set when the account is created and cannot be edited.

For full details on profile fields and security settings, see the User Portal Profile documentation.


The Preferences page is where you configure how the portal works. Changes here affect the entire platform. Click Save Preferences at the bottom of the page to apply changes.

Basic information about your organization. These values are used across the portal for display, scheduling, and billing.

SettingWhat It ControlsExample
Organization NameYour organization’s display name shown throughout the portalFundedYouth Academy
TimezoneUsed for scheduling, reports, and timeslot calculationsPacific (PT)
CurrencyDefault currency for billing and invoicesUSD ($)

Default values applied when creating new inventory products. These can be overridden per product.

SettingWhat It ControlsDefault
Default Tax Rate (%)Applied to taxable products by default8.25
Default Low Stock ThresholdTriggers a low stock alert when product quantity falls below this number10
Default SKU PrefixPrepended to auto-generated SKU codes for new productsFY

Control which system notifications you receive. Each toggle turns a notification type on or off.

NotificationWhat It DoesDefault
Low stock alertsNotifies you when product inventory drops below its thresholdOn
New volunteer sign-upsNotifies you when a new volunteer registersOn
Payment receivedNotifies you when a payment is successfully processedOff
Overdue invoice alertsNotifies you when an invoice becomes overdueOn

Customize how the Admin Portal looks and behaves for your account.

SettingWhat It ControlsDefault
Table Rows Per PageNumber of rows shown in data tables (e.g., users, invoices, transactions)25 rows
Default Landing PageThe first page you see when you log in to the Admin PortalDashboard

Connect third-party payment services to the portal. Each integration shows a status badge:

CONNECTED — The API key is saved and the service is active.

NOT CONNECTED — No API key has been provided yet.

IntegrationWhat It’s For
SquareYour Square API key for in-person POS payments. Used by the Storefront POS and Log Payment features.
StripeYour Stripe API key for online payment processing. Used for memberships, credit packs, and add-ons.

This is where you control which portal features each role can access. There are two tabs — Admin Portal and User Portal — each with its own permission grid.

The grid has a row for each feature and a column for each role. Check or uncheck a box to enable or disable access to that feature for that role.

Admin Portal example:

FeatureAdminInstructorVolunteerStudent
Admin Portal Access
Dashboard

User Portal example:

FeatureAdminInstructorVolunteerStudent
User Billing
User Sessions

Security settings appear at the bottom of both tabs:

SettingWhat It Controls
Enable 2FAWhether users with this role can enable two-factor authentication
2FA RequiredWhether users with this role are required to set up 2FA before using the portal

Each role has its own Save button at the bottom of the grid (e.g., “Save Admin”, “Save Instructor”, “Save Volunteer”, “Save Student”). This lets you save changes to one role without affecting the others.