SurveyKaro is a customizable survey creation tool that enables Survey administrators and researchers to create, distribute, and analyze surveys seamlessly. With real-time responses and detailed analytical reports, SurveyKaro is designed to simplify the survey process for both creators and respondents.
- Survey Creation: Create customizable surveys with various question types, including multiple-choice, rating scales, and more.
- Real-time Responses: Collect and store survey responses seamlessly.
- Detailed Analysis: View analytical reports with graphs and statistics to interpret survey data.
- User Authentication: Secure login and registration system using JWT.
- User-Friendly Interface: Responsive and intuitive UI built with React.
- React.js: For building dynamic user interfaces.
- React Router: To handle routing between pages.
- Axios: For making API calls.
- React-Icons: For adding icons to the UI.
- Node.js: Server-side JavaScript runtime.
- Express.js: Web framework for Node.js.
- MongoDB: NoSQL database for data storage.
- Mongoose: Object Data Modeling (ODM) library for MongoDB.
- JWT: For secure user authentication.
- Postman: For API testing.
- Git: Version control.
- GitHub: Repository hosting.
- Node.js and npm installed on your machine.
- MongoDB installed or use a cloud database like MongoDB Atlas.
-
Clone the repository:
git clone https://github.com/Saifhuseni/SurveyKaro.git cd SurveyKaro
-
Backend Setup:
cd backend npm install
Create a
.env
file in the backend directory and add:MONGO_URI=your-mongodb-connection-string JWT_SECRET=your-jwt-secret PORT=5000
Start the backend server:
npm start
-
Frontend Setup:
cd ../frontend npm install
Create a
.env
file in the frontend directory and add:REACT_APP_API_URL=http://localhost:5000
Start the frontend development server:
npm start
-
Visit the Application:
- Frontend: http://localhost:5000
- Backend: http://localhost:5000
HTTP Method | Endpoint | Description |
---|---|---|
POST | /api/auth/register | Register a new user |
POST | /api/auth/login | Login a user |
GET | /api/users/profile | Get User Profile |
POST | /api/surveys | Create a Survey |
GET | /api/surveys | Get All Surveys Created by User |
GET | /api/surveys/:id | Get a Specific Survey |
PUT | /api/surveys/:id | Update a Survey |
DELETE | /api/surveys/:id | Delete a Survey |
POST | /api/surveys/:id/response | Submit Survey Response |
GET | /api/surveys/:id/results | Get Survey Results and Analysis |
- Create a Survey: Survey administrators create surveys with various types of questions.
- Share the Survey: Distribute the unique survey code to respondents.
- Respond to the Survey: Respondents fill out surveys and submit their responses.
- Analyze Results: Survey administrators view analysis with visual representations of collected data.
- Backend: Handles user authentication, survey CRUD operations, and data analysis.
- Frontend: Manages user interactions, data presentation, and calls to backend APIs.
- Database: MongoDB stores user details, surveys, and responses.
- Saif Huseni - Developer
- Smit Bhansali - Developer
⭐️ If you like this project, don't forget to give it a star!