This project is a web application designed for creating dynamic forms using a user-friendly form builder. The forms can be saved in the database and displayed dynamically for users to fill out. The application also allows admins to view user-submitted data, analyze feedback on a daily and monthly basis, and receive real-time notifications when feedback forms are submitted.
- Create dynamic forms with custom schema and user-friendly field names.
- Add options for form fields such as input types, placeholders, and validations.
- Save form schema in the database for reuse.
- Display the created forms dynamically for users.
- Allow users to submit feedback using the dynamic forms.
- View user-submitted feedback data.
- Analyze feedback trends using line charts (daily and monthly basis).
- Manage and review all submitted forms.
- Implement real-time notifications using the Pusher Laravel package.
- Show a toaster notification in the admin dashboard when a user submits a feedback form.
- HTML
- CSS
- JavaScript
- jQuery
- PHP
- Laravel Framework
- Pusher Laravel Package
- Chart.js (for displaying feedback trends in line charts)
Ensure you have the following installed on your system:
- PHP (>= 8.0)
- Composer
- Node.js and npm
- MySQL
-
Clone the repository:
git clone https://github.com/Shareiar-shams/Online-Feedback-Collection.git
-
Navigate to the project directory:
cd dynamic-form-builder -
Install dependencies:
composer install npm install npm run dev
-
Set up the
.envfile:- Copy
.env.exampleto.env - Configure the database connection:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_user DB_PASSWORD=your_database_password
- Configure Pusher credentials:
BROADCAST_DRIVER=pusher PUSHER_APP_ID=your-app-id PUSHER_APP_KEY=your-app-key PUSHER_APP_SECRET=your-app-secret PUSHER_APP_CLUSTER=your-cluster
- Copy
-
Run database migrations:
php artisan migrate
-
Start the development server:
php artisan serve
- Log in as an admin.
- Navigate to the "Form Builder" section.
- Add fields to your form and configure their properties.
- Save the form schema to the database.
- Users can access forms dynamically displayed in the user portal.
- Submit feedback through the provided forms.
- View all submitted feedback in the dashboard.
- Analyze trends in feedback using the line chart visualization.
- Receive real-time toaster notifications for new feedback submissions.
- Ensure Pusher credentials are correctly configured in the
.envfile. - Verify that broadcasting works by testing the Pusher Debug Console.
- Check Laravel logs for any errors if notifications are not working.
- Frontend: Implements form creation, user-friendly UI, and charts.
- Backend: Manages dynamic form schemas, user submissions, and broadcasting.
- Notifications: Handles real-time updates using Pusher.
Feel free to contribute to this project by submitting issues or pull requests. Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit changes and push to the branch.
- Open a pull request.
For any queries or support, feel free to contact [islamshareiar@gmail.com].