A modern, full-stack form builder application for creating beautiful forms, collecting responses, and analyzing data.
- Form Builder - Intuitive drag-and-drop interface to create forms
- Multiple Field Types - Text, textarea, email, phone, number, date, dropdown, checkbox, radio, file upload, and rating fields
- Header Images - Add custom header images to your forms
- Real-time Preview - See your form as you build it
- Response Management - View, export to Excel, and delete responses
- User Authentication - Secure login and registration
- Dashboard - Manage all your forms in one place
- Edit & Delete Forms - Full CRUD operations on forms
Frontend:
- React 19
- React Router
- Tailwind CSS 4
- Lucide React (icons)
- Axios
- XLSX (Excel export)
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT Authentication
- Express Validator
- Node.js (v18+)
- MongoDB
- npm or yarn
- Clone the repository
git clone https://github.com/madnansultandotme/FormNest.git
cd FormNest- Install server dependencies
cd server
npm install- Install client dependencies
cd ../client
npm install- Configure environment variables
Create a .env file in the server directory:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
PORT=5000- Run the application
Start the server:
cd server
npm run devStart the client (in a new terminal):
cd client
npm run devThe app will be available at http://localhost:5173
FormNest/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── auth/ # Login, Register
│ │ │ ├── dashboard/ # Dashboard
│ │ │ ├── forms/ # Form builder, preview, responses
│ │ │ └── layout/ # Navbar, Alert, NotFound
│ │ ├── context/ # Auth & Alert context
│ │ └── App.jsx # Main app component
│ └── package.json
├── server/ # Express backend
│ ├── middleware/ # Auth middleware
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── server.js # Entry point
└── README.md
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth- Get authenticated user
GET /api/forms- Get all user formsGET /api/forms/:id- Get form by IDPOST /api/forms- Create new formPUT /api/forms/:id- Update formDELETE /api/forms/:id- Delete form
POST /api/responses/submit/:formId- Submit form responseGET /api/responses/:formId- Get form responsesDELETE /api/responses/:id- Delete response
The app uses a Charcoal + Green theme optimized for data & analytics:
| Color | Hex | Usage |
|---|---|---|
| Primary | #16A34A |
Buttons, links, accents |
| Secondary | #14532D |
Gradients, dark accents |
| Accent | #DCFCE7 |
Backgrounds, hover states |
| Background | #F9FAFB |
Page background |
| Card | #FFFFFF |
Card backgrounds |
| Text Primary | #1F2937 |
Main text |
| Text Muted | #6B7280 |
Secondary text |
| Border | #E5E7EB |
Borders, dividers |
MIT License
- Email: [email protected]
- GitHub: madnansultandotme
- LinkedIn: dev-madnansultan