Formify is a modern web application designed to simplify form creation, management, and response collection. Built using the MERN stack, it provides an intuitive interface and powerful backend for seamless form workflows.
- Dynamic Form Builder: Create and customize forms with real-time previews.
- Response Management: View, search, and analyze responses efficiently.
- User Authentication: Role-based access control and secure authentication.
- Field Validation: Conditional validation based on field types.
formify/
├── backend/ # Backend services
├── frontend/ # Frontend application
├── README.md # Project documentation
├── TODO.md # Task list and progress
The backend is powered by Node.js and Express.js, providing RESTful APIs for form and user management.
- RESTful APIs for form and response handling.
- Secure authentication with Passport.js.
- Caching and session management.
- Logging with Winston.
- Rate limiting to prevent abuse.
- CORS and CSRF protection.
-
Navigate to the backend directory:
cd backend
-
Install dependencies:
npm install
-
Set up environment variables in a
.env
file:PORT=YOUR_VALUE_GOES_HERE NODE_ENV=YOUR_VALUE_GOES_HERE MONGO_URI=YOUR_VALUE_GOES_HERE SESSION_SECRET=YOUR_VALUE_GOES_HERE CLIENT_URL=YOUR_VALUE_GOES_HERE
-
Start the server:
npm start
The backend will be accessible at http://localhost:5000
.
The frontend is built with React.js, providing a responsive and user-friendly interface.
- Customizable field components.
- Integration with backend APIs.
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Create a
.env.local
file in the frontend directory:VITE_API_URL=YOUR_VALUE_GOES_HERE
-
Start the development server:
npm start
The app will be accessible at http://localhost:3000
.
- Node.js (v16 or higher)
- MongoDB (v4 or higher)
- Redis
git clone https://github.com/joehsn/formify.git
cd formify
- Start the backend server as described above.
- Start the frontend application.
- Backend:
npm start
: Start the backend server.npm run dev
: Start the backend server in development mode.
- Frontend:
npm start
: Start the frontend development server.npm run build
: Build the frontend for production.
- User Analytics Dashboard: Provide insights into form responses.
- Mobile App: Build native applications for iOS and Android.
- Third-party Integrations: Google Sheets, Slack, and more.
For questions or support, reach out at [email protected].