Detailed guide on the grant lifecycle, 11-step state machine, dynamic call builder, and automated acceptance compilation.
An 11-state machine managing the lifecycle of research grants.
A grant starts as a DRAFT. Once the proposals, budget, and teams are finalized, the Leader submits it (SUBMITTED) to the sponsor organization.
Councils evaluate the grant (REVIEWING). If modifications to budget or scope are needed, it is flagged as REVISION_REQUIRED for the Leader to update.
Upon approval (APPROVED), contracting documents are compiled and signed (CONTRACTING) to officially initiate the project.
The grant is executed (EXECUTING) with regular reports (REPORTING). Near completion, it undergoes final evaluation (ACCEPTANCE_REVIEW).
Depending on the outcome of the review, the grant transitions to completed (GRANT_COMPLETED) or failed (FAILED).
For Organization Admins to publish and customize public funding opportunities.
Configure sections like Hero, description, timeline, requirements, and sponsors dynamically via the template_config JSONB field.
Display sponsors cleanly grouped into four distinct categories: PLATINUM, GOLD, SILVER, and BRONZE to highlight partnership levels.
State-level guards securing proposal integrity during reviews.
While a grant proposal is pending approval, editing tasks (can_edit_tasks) and changing content (can_edit_content) are automatically disabled.
Modifying or requesting budgets (can_request_budget) is blocked during reviews to prevent discrepancies.
Reducing administrative overhead with background tasks.
A scheduled background task runs every 6 hours to automatically close expired grant call applications.
Transitioning to ACCEPTANCE_REVIEW triggers an async task to generate the acceptance report PDF via Browserless, signing it with Hybrid KMS.