Form management system built with Next.js and Supabase. The system consists of three main interfaces:
- User Interface: A dynamic form flow that adapts based on layout configuration route = "/"
- Admin Interface: Layout management system for creating and configuring form flows route = "/admin"
- Data Interface: Data visualization dashboard for collected user responses route = "/data"
- Frontend: Next.js with App Router
- Database: Supabase (PostgreSQL)
- UI Components: Shadcn/ui
- State Management: React Context + Hooks
- Authentication: Supabase Auth
[slug]/page.jsx
: Page renderer for form flowsadmin/page.js
: Admin interface for layout managementdata/page.js
: Data visualization interfaceSignIn.jsx
: Authentication component
LayoutSelector
: Layout selection and default managementComponentList
: Component management for form pagesCreateLayoutSheet
: Layout creation interfaceLayoutPreview
: Real-time layout preview
UserTable
: User data visualizationRefreshButton
: Data refresh management
-
layouts
- id (UUID)
- layout_name (String)
- is_default (Boolean)
- created_at (Timestamp)
-
layout_pages
- layout_id (UUID, FK)
- page_number (Integer)
- components (Array)
-
users
- id (UUID)
- email (String)
- current_page (String)
- form_data (JSON)
- layout_id (UUID, FK)
- Dynamic form progression based on layout configuration
- Progress tracking
- Form data persistence
- Responsive design with modern UI
- Success page on completion
- Layout creation and management
- Component drag-and-drop interface
- Default layout selection
- Real-time layout preview
- Component validation
- Real-time user data visualization
- Form completion tracking
- Data export capabilities
- User progress monitoring