This is a full-stack web application built to create, collect, and analyze feedback for events, projects, or experiences. Organizers can generate feedback forms and users can submit responses with star ratings and comments.
- Create feedback forms with titles and descriptions
- Generate a unique link to share the form
- Submit feedback with star rating and comments
- View feedback summary: average rating and total responses
- Role-based authentication (Admin/User)
- Secure login & JWT-based session management
- HTML, CSS, JavaScript
- Fetch API
- EJS (for rendering feedback forms)
- Node.js
- Express.js
- MySQL2
- JWT for authentication
- Bcrypt for password hashing
- CORS support
- dotenv for environment configuration
git clone https://github.com/Lukmanul-Hakeem/FeedBackCollector.git
cd FeedBackCollector
npm installPORT=3000
DB_HOST=localhost
DB_USER=your_mysql_user
DB_PASSWORD=your_mysql_password
DB_NAME=feedbackcollector
JWT_SECRET=your_secret_keyCREATE DATABASE feedbackcollector;
-- Example tables (simplified)
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
password VARCHAR(255)
);
CREATE TABLE feedbacks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
description TEXT,
uuid VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
CREATE TABLE feedback_responses (
id INT AUTO_INCREMENT PRIMARY KEY,
feedback_id INT,
rating INT,
comment TEXT,
submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (feedback_id) REFERENCES feedbacks(id)
);npm run devStart