Skip to content

Full-Stack Assessment - Suleiman Yahaya#2

Open
garogenius wants to merge 5 commits into
paxpass:mainfrom
garogenius:feature/fullstack-form-builder-suleiman-yahaya
Open

Full-Stack Assessment - Suleiman Yahaya#2
garogenius wants to merge 5 commits into
paxpass:mainfrom
garogenius:feature/fullstack-form-builder-suleiman-yahaya

Conversation

@garogenius

@garogenius garogenius commented Oct 27, 2025

Copy link
Copy Markdown

Live Deployment URLs
Frontend: https://form-frontend-beige-five.vercel.app/
Backend: https://form-builder-backend-production-e5f8.up.railway.app/
paostman docs: https://documenter.getpostman.com/view/28328497/2sB3WmS2SV
Overview
A complete form builder web application with user authentication and a drag-and-drop interface for building structured forms.
The solution includes a Laravel 10 backend and a React (Next.js 16) frontend deployed on Railway using Docker.

Authentication

User registration and login with email & password

JWT token-based authentication with auto refresh

Protected routes for authenticated users

Logout functionality

Form Builder

Create and edit forms with custom titles and descriptions

Drag-and-drop fields and groups

Collapsible groups

Support for 8 field types:

Text Input

Email Input

Phone Number

Radio Buttons

Checkboxes

Select Dropdown

Date Picker

File Upload

Form Management

List, edit, delete, and auto-save forms

Real-time UI updates on changes

Confirmation dialogs for destructive actions

User Experience

Clean, modern teal/green UI

Responsive layout

Error handling and loading states

##Key Technical Decisions

Frontend: Next.js 16 + React 19 + TailwindCSS + shadcn/ui

Backend: Laravel 10 + JWT (tymon/jwt-auth)

State Management: React Context API

Database: MySQL with JSON column for form structure

API Design: RESTful JSON endpoints

Why: Next.js and Laravel provide a robust, scalable stack with excellent developer productivity.

##Trade-Offs & Simplifications

Used JSON column instead of multiple normalized tables to simplify schema.

Did not implement full versioning or multi-tenant support to focus on core builder logic.

JWT authentication over session cookies for simplicity of SPA integration.

  1. Clone repository
    git clone https://github.com/paxpass/fullstack-devops-assessment.git
    cd fullstack-devops-assessment

  2. Copy environment files
    cp backend/.env.example backend/.env
    cp frontend/.env.example frontend/.env

  3. Build and start containers
    docker-compose up --build

  4. Run migrations
    docker exec -it backend php artisan migrate --seed

@garogenius

Copy link
Copy Markdown
Author

refactored

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