USRSE / USRSE/usrse.github.io

feat(admin): integrate form builder for events, surveys, and custom forms

Open
#1,974 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
33
Forks
104
Avg merge
12h 3m
Merged PRs (30d)
10

Description

Summary

Add a drag-and-drop form-builder surface to the admin UI so staff/super_admins can compose forms (event registrations, surveys, applications, custom intake) without code, then publish them to the public site for members to fill out.

Requirements

  • Evaluate candidate libraries and pick one. Initial shortlist:
  • Define the form-schema persistence model (likely `forms` + `form_submissions` tables, schema stored as jsonb)
  • Admin route at `/forms` (or similar) gated by an appropriate policy (likely `canEditForms`, staff+)
  • Builder UI styled consistently with the existing admin design system (white background, rounded purple primaries, cool-toned palette — not a vendor's default theme)
  • Server-side schema validation when submissions land (don't trust client-built schemas blindly)
  • Public renderer on the member-facing site that consumes the same schema
  • Submission storage + a basic admin view of submissions per form
  • Audit-log entries for form publish / unpublish / edit actions

Context

This is groundwork for several near-term workflows: annual event registration, post-event surveys, leadership-position applications, ad-hoc community polls. Each one would otherwise be a one-off Google Form or a custom-coded page.

The four candidate libraries have very different shapes — picking one is the load-bearing decision. Library evaluation should weigh: license, bundle size, theming flexibility, schema portability (can we read the schema server-side without the builder runtime?), and how well the renderer integrates with our existing Tailwind/design-system surface on the public site.

Implementation Notes

  • The form schema should be portable: serialized JSON that we own, not a library-specific binary blob.
  • Renderer on the public site needs to work without authoring dependencies (admins build, members render — different bundles).
  • Permissions: who can build forms? who can publish? who can read submissions? Tie into the existing `canEditMembers` / role tier model.
  • Consider whether form approval (next issue) is a v1 feature or a follow-up gate.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by evaluating the four listed builder libraries against license, bundle size, theming, schema portability, and renderer integration. Then inspect the existing admin design system and canEditMembers/role-tier model to shape /forms access. Done means a library choice and a defined path for schema persistence, validation, rendering, submissions, permissions, and audit entries.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, react, tailwindcss
Domain
authorization, backend, database, frontend, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.