0%
balqalam Logo
balqalam
FeaturesCommunityPricingDocumentation
Login
  • Introduction
  • Help center
  • Common questions
  • Get Started
  • Localhost
  • Architecture
  • Structure
  • Pattern
  • Page
  • Layout
  • Content
  • Types
  • Config
  • Actions
  • Queries
  • Authorization
  • Validation
  • Form
  • Table
  • Detail
  • Card
  • Util
  • Hooks
  • List Params
  • Views
  • README.md
  • ISSUE.md
  • Technology Stack
  • Database
  • File
  • CDN Assets
  • Entry Points
  • Dashboard
  • Authentication
  • Credentials
  • OAuth
  • Flow Diagrams
  • Multi-Tenancy
  • Offline
  • Onboarding
  • Onboarding Videos
  • Add Values
  • Admission
  • Application
  • Attendance
  • Compliance
  • Profile
  • Exams
  • Exam Wizard
  • Timetable
  • Classrooms
  • Notifications
  • Conference
  • LMS (Lumos)
  • Finance
  • Fee Management
  • Invoice
  • Wallet
  • Salary
  • Payroll
  • Timesheet
  • Expenses
  • Budget
  • Receipt
  • Accounts
  • Banking
  • Reports
  • Dashboard
  • Permissions
  • Messages
  • Integration Flow
  • Provision
  • AI Document Processing
  • Document Intelligence
  • Internationalization
  • Translation
  • Translation Guide
  • Icons
  • Docs Factory
  • Inspiration
  • Listings
  • Teachers
  • Students
  • Catalog
  • Library
  • Contributing
  • Code of conduct
  • GitHub Workflow
  • Database Seeds
  • Database Safety
  • Test Accounts
  • Bulk import
  • Playwright
  • Prettier
  • Block Rebound
  • Transportation

Budget

PreviousNext

Budget creation, allocation, and variance tracking. Category CRUD, allocation, and variance math work; variance-alert notifications and the budget-vs-actual report UI are pending, and the validation factory isn't wired to consumers.

Budget defines spending envelopes, allocates them across categories, and tracks spent-vs-allocated variance. Expenses draw down allocations on approval; the resulting variance feeds reports.

Flow

Create budget  →  allocate to categories  →  track spent vs allocated (variance)
  →  (planned) alert when a threshold is crossed

Status

FeatureStatus
Category CRUD (schoolId-scoped)Production
Allocation + spent trackingProduction
Variance calculation (allocated vs spent)Production
Validation factory createBudgetSchema(v)Exported, but consumers still import the legacy static schema
Variance-alert notificationsPlanned (threshold → dispatch, not wired)
Budget-vs-actual report pagePlanned (data exists, no UI)
Approval workflowPlanned
Multi-period budgets (quarterly/annual)Planned

Routes

RoutePageStatus
/{lang}/finance/budgetOverviewReady
/{lang}/finance/budget/allAll budgets listReady
/{lang}/finance/budget/newCreate budgetReady
/{lang}/finance/budget/[id]Budget detail & varianceReady

Server actions

ActionPurpose
createBudget / updateBudgetBudget create / edit
createBudgetAllocationAllocate budget to a category
getBudgetsList budgets + allocations

Ledger / accounting

Not a ledger money-mover. Budget tracks planned vs actual spend; the "actual" side is decremented by expense approvals, not by journal postings.

Schema

prisma/models/finance-budgets.prisma: Budget, BudgetAllocation — schoolId-scoped. Budget/category names have no lang field.

Stubs

  • validation.ts:29 — hardcoded date-range message; the exported createBudgetSchema(v) factory is not yet adopted by form.tsx / actions.ts (legacy static budgetSchema still imported).

Tests

None.

Key files

ComponentPath
Server actionssrc/components/school-dashboard/finance/budget/actions.ts
Validationsrc/components/school-dashboard/finance/budget/validation.ts
Contentsrc/components/school-dashboard/finance/budget/content.tsx
Schemaprisma/models/finance-budgets.prisma

See also

  • Finance — block overview
  • Expenses — draws down allocations
  • Reports — consumes variance data
ExpensesReceipt

On This Page

FlowStatusRoutesServer actionsLedger / accountingSchemaStubsTestsKey filesSee also

Built by Databayt ·

Welcome to balqalam.

A great journey is about to begin.