Cetin Cetindag

Software Engineer

Back to Projects

Formation

A dynamic form builder application with password protection and response tracking, built with a modern tech stack to provide a seamless and secure experience for creating and managing forms.

Next.js
TypeScript
PostgreSQL
Prisma ORM
Tailwind CSS
Framer Motion
shadcn/ui
Formation screenshot 1
Description

A dynamic form builder application with password protection and response tracking, built with a modern tech stack to provide a seamless and secure experience for creating and managing forms.

Core Features & Implementation

Form Building and Editing

  • Dynamic form component: creation and management
  • Support for multiple question types:
  • • Short Text
  • • Long Text
  • • Combo Box
  • • Multi Select
  • • Multi Choice
  • • Radio Group
  • • Slider with custom ranges
  • Drag-and-drop: question reordering
  • Real-time form preview: Immediate feedback
  • Option to add: descriptions and external links

Form Submission and Data Handling

  • Secure form submission: via RESTful API endpoints
  • Response data storage: in PostgreSQL database
  • Form response validation: Client and server-side
  • Comprehensive error handling: With clear messages
  • Support for file uploads: and rich media
  • Toast notifications: for user actions

User Dashboard

  • Response analytics: with basic visualization
  • Tabular view: of form submissions
  • Pagination: for handling large datasets
  • Response filtering: and search functionality
  • Data export capabilities: Various formats
  • Loading states: with appropriate visual feedback

Form Component System

  • Enum-based component: type definitions
  • Factory pattern: for rendering different question types
  • Component composition: for complex UI elements
  • Prop drilling minimization: through context
  • Sophisticated component system: for extensible form creation
Technical Architecture

Core Architecture & Technical Foundation

Technology Stack

  • Framework: Next.js with App Router architecture
  • Database: PostgreSQL with Prisma ORM
  • Form Management: React Hook Form with Zod validation
  • UI Components: Custom UI library based on shadcn/ui
  • State Management: React useState, useEffect, useRef hooks
  • Authentication: Token-based authentication
  • Animations: Framer Motion for UI transitions
  • Styling: Tailwind CSS with component-based design
  • Icons: Lucide React icon library

Database Design

  • PostgreSQL: with Prisma ORM
  • Form data: stored as JSON for flexibility
  • Relational model: connecting forms to responses
  • Efficient indexing: for query performance
  • API Implementation: with RESTful endpoints for form operations
  • Authentication middleware: for protected routes
  • CRUD operations: for form management
  • Dedicated endpoints: for response handling