Skip to content

RFC: Introduce Forms System#166

Draft
BuddyWinte wants to merge 8 commits into
PlanetaryOrbit:mainfrom
BuddyWinte:main
Draft

RFC: Introduce Forms System#166
BuddyWinte wants to merge 8 commits into
PlanetaryOrbit:mainfrom
BuddyWinte:main

Conversation

@BuddyWinte

@BuddyWinte BuddyWinte commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Introduce Forms System

Important

This is a Draft RFC and is not ready for merge.

The purpose of this pull request is to discuss the architecture, API, database design, and user experience of a generic Forms system for Orbit before implementation begins.

Goal

The Forms system is intended to provide a reusable foundation for features such as:

  • Applications
  • Feedback Forms
  • Bug reports
  • Incident Records
  • etc.

Current Progress

Architecture

  • RFC approved
  • API design finalized
  • Database schema finalized
  • Permission model finalized
  • Form lifecycle finalized (drafts, publishing, archiving)
  • Response lifecycle finalized (pending, review, approved, denied)

Database

  • Initial Form schema
  • Pages schema
  • Questions schema
  • Responses schema
  • Answers schema
  • Reviews schema
  • Database indexes reviewed
  • Database migrations created

Backend API

  • Forms CRUD endpoints
  • Pages CRUD endpoints
  • Questions CRUD endpoints
  • Question reordering
  • Form duplication
  • Response submission endpoint
  • Response listing endpoint
  • Response viewing endpoint
  • Response editing endpoint
  • Review endpoints
  • Response status management
  • Form permissions API
  • Form statistics API
  • Response export API

Backend Logic

  • Form validation system
  • Question validation system
  • Answer validation system
  • Anonymous submission handling
  • Multiple submission handling
  • Permission checks
  • Audit logging
  • Rate limiting
  • File upload handling

Frontend - Form Builder

  • Form list page
  • Create form UI
  • Edit form UI
  • Form settings UI
  • Question builder
  • Question type selector
  • Question editor
  • Question reordering
  • Drag-and-drop support
  • Page management
  • Form preview mode
  • Autosave
  • Validation editor

Frontend - Submission

  • Public form view
  • Authenticated submission flow
  • Anonymous submission flow
  • Question rendering system
  • Text input fields
  • Choice fields
  • User selector fields
  • File upload fields
  • Submission confirmation page
  • Submission editing

Frontend - Review Interface

  • Response list
  • Response filtering
  • Response search
  • Response viewer
  • Answer display
  • Approve/deny actions
  • Review comments
  • Review history

Permissions

  • Define form permissions
  • Define submission permissions
  • Define review permissions
  • Define builder permissions
  • Role integration
  • Permission middleware

Documentation

  • API documentation
  • Database documentation
  • Frontend component documentation
  • Form developer guide
  • Admin guide

Testing

  • API tests
  • Database tests
  • Permission tests
  • Form validation tests
  • Submission tests
  • Frontend tests
  • End-to-end tests

Request for Feedback

Please review and comment on anything

Contributing to this RFC

If your proposal requires code changes or is substantial, please open a Draft Pull Request against this branch and reference this RFC.

For smaller ideas, questions, or concerns, simply leave a review or request changes on this pull request so they can be discussed here.

Status

This RFC will remain open until there is general agreement on the architecture. Once the design is finalized, implementation will continue and this Draft PR will eventually be converted into a merge-ready pull request.

The main settings option in the Feature Flags has been disabled but is technically usable.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4fcf33e9-bfb6-4bdf-b817-637d237d20a1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant