Platform Overview
Live snapshot of all managed instances
Managed Instances
—
All application categories
Running Containers
—
Running / total containers
Docker Storage
—
Images · volumes · containers · build cache
Managed Instances
Live applications grouped by category
| Instance | Category | Status | Created | Version | Ports | Storage | Actions |
|---|
Server Capacity
Reading host filesystem capacity…
Recent Deployments
Automated release events
Instances
All managed applications grouped by product category
| Instance | Category | Status | Created | Version | Ports | Storage | Actions |
|---|
Server management
Host health, Docker usage, and managed-instance capacity
Host Disk Total
—
Detected root filesystem capacity
Docker Storage
—
Images + volumes + containers + build cache
Managed Instance Volumes
—
Subset of Docker volume storage
Host & Docker Storage
Host disk usage includes Docker data; Docker rows below are components of host usage.
Per-Instance Storage
Attributed Docker volumes or writable container layers where available
Release operations
Releases
School apps (frontend + backend) and the admin console deploy separately — same tag family, different targets
School application
ghcr.io/amalgamate/zawadi-frontend + zawadi-backend — all tenant stacks
Loading schools…
Deploy output
Per school: backup → pull → migrate → restart → health
Choose scope and promote the school application.
Platform console
ghcr.io/amalgamate/zawadi-console — admin panel only (this UI)
Does not change school sites. Use after UI or console API changes, or when main deploy already updated the canary.
Release history
Workflow
1Push main builds all images
2Canary auto-deploys demoschool + console
3QA on demoschool.trendscore.co.ke
4Promote same
sha-… to production schoolsFull guide: deploy/WORKFLOW.md
General Settings
Platform-wide configuration and defaults
Platform defaults
Configuration shared by platform workspaces and all school instances.
School-specific actions, logs, assessment activity, and release promotion are available from each instance’s management drawer.
Communications
Email provider and sender details used for quotes and invoice messages.
Checking email configuration…
Validation checks the API key and sender-domain status without sending an email. The API key is stored on the server and is never returned to the browser.
Billing
Manage customer quotes and invoice records in one finance workspace.
Needs attention
Actions based on the current billing records.
Loading billing records…
Recent documents
Latest quotes and draft invoices.
Loading billing records…
Finance readiness: Invoices are still drafts. Seller identity, tax treatment, invoice numbering, and payment instructions must be confirmed before issuing.
Customers
Billing contacts linked to provisioned schools where available.
| Customer | Tenant key | Billing contact | Currency | Status | Contracts | Actions |
|---|---|---|---|---|---|---|
| Loading customers… | ||||||
Service contracts
Signed service terms and cadence. Contract prices and recurring schedules are not yet configured.
| Customer | Reference | Service | Cadence | Term | Status | Actions |
|---|---|---|---|---|---|---|
| Loading contracts… | ||||||
Quotes
Prepare a quote, send its PDF, record the customer decision, and convert accepted quotes into draft invoices. Sent quotes are kept as history.
| Quote | Customer | Students | Quoted total | Valid until | Status | Actions |
|---|---|---|---|---|---|---|
| Loading quotes… | ||||||
Invoice register
Review draft invoices, issue commercial invoices, send them, and monitor allocated payments.
Issue creates a commercial invoice that can be emailed and paid. It does not create or submit an eTIMS tax invoice.
| Draft reference | Customer | Source quote | Amount | Status | Created | Document |
|---|---|---|---|---|---|---|
| Loading invoices… | ||||||
Payments recorded—Manual entries in the ledger
Collected—Payments allocated to invoices
Outstanding—Issued invoices less payments
Payment history
Record verified bank, M-Pesa, cheque, or cash payments against issued invoices. Entries are kept in the ledger.
Record a payment only after confirming receipt in your bank or payment provider. This does not initiate or verify a transfer.
| Payment date | Invoice | Customer | Method | Reference | Amount | Recorded by | Receipt |
|---|---|---|---|---|---|---|---|
| Loading payments… | |||||||
Open invoice balances
Only issued invoices can receive payment allocations.
| Invoice | Customer | Issued | Due | Amount | Paid | Balance | Status |
|---|---|---|---|---|---|---|---|
| Loading invoices… | |||||||
School platform rate card
Current quoted student rate is selected by the school's total enrollment. This rate card applies to new quotes; each saved quote retains its pricing snapshot.
| Enrolled students | Rate per student | Cadence |
|---|---|---|
| 1–300 | KSh 50 | Selected quote cadence |
| 301–500 | KSh 40 | Selected quote cadence |
| 501–1,000 | KSh 35 | Selected quote cadence |
| 1,001+ | KSh 30 | Selected quote cadence |
The quote form offers flat-tier pricing (one rate applied to all students based on total enrollment) or progressive pricing (each rate applies only to students in that band). The selected method is saved with the quote. Tax is not included; existing quotes keep their original rate snapshots.
Invoices issued—Commercial invoices only
Invoice value—Issued invoice totals
Cash collected—Recorded payments
Open balance—Outstanding on issued invoices
Collections by month
Based on payment dates entered in the billing ledger.
| Month | Payments | Collected |
|---|---|---|
| Reports will populate from the ledger. | ||
These are management totals from manually recorded commercial invoices and payments, not audited accounts, bank reconciliation, or eTIMS tax reporting.
Billing configuration readiness
Configuration values are shown as readiness only; credentials are never displayed.
Checking email configuration…
Invoice statusCommercial invoice issuance enabled
Invoice numberingINV- prefix · based on quote reference
PaymentsManual recording · allocation to issued invoices
Tax invoice / eTIMS integrationNot configured
Seller legal identity and tax detailsConfirm before tax invoice use
Payment instructionsUse customer-approved terms and verified references
The issue action creates a commercial invoice and does not certify tax compliance or submit anything to eTIMS. Configure seller tax identity and an approved eTIMS route before treating these as tax invoices. Email sender credentials are managed in Communications.
Users & roles
Create console accounts and control their platform access.
Console users
System Administrators can access sensitive platform controls. Platform Owners can access approved business workspaces.
| Name | Role | Status | Last sign in | Actions | |
|---|---|---|---|---|---|
| Loading users… | |||||
Audit Log
All platform-level actions are recorded here
Activity Log
| Time | Action | Instance | Performed By | Details | Status |
|---|
Leads & CRM
Track prospective schools through the sales pipeline
Total Leads
--
All time
Contacted This Week
--
Last 7 days
Converted
--
Became customers
↑ Active
Conversion Rate
--
Converted / total