/SurveyKaro

A platform mainly designed for Researchers and Businesses to help them create surveys consisting of various types of questions and get graphical responses on loads of responses recieved on a survey. The website is a SPA(Single Page Application) developed using MERN stack by me and my partner Saif Huseni as a part of our colllege project.

Primary LanguageJavaScript

SurveyKaro

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.

🚀 Features

  • 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.

🛠️ Tech Stack

Frontend

  • 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.

Backend

  • 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.

Tools & Platforms

  • Postman: For API testing.
  • Git: Version control.
  • GitHub: Repository hosting.

⚙️ Installation

Prerequisites

  • Node.js and npm installed on your machine.
  • MongoDB installed or use a cloud database like MongoDB Atlas.

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/Saifhuseni/SurveyKaro.git
    cd SurveyKaro
  2. 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
  3. 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
  4. Visit the Application:

📊 API Endpoints

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

🎨 UI Screenshots

Homepage homescreen

Loginpage Login

Register Page Register

Dashboard Dashboard

Create Survey page createSurvey

View All Survey page Viewsurveys

View Particular Survey page viewparticularsurvey

survey Management

Update Survey page updatesurvey

Survey Analysis page survey Analysis 1

Survey Analysis 2

survey Analysis 3

🚀 How It Works

  1. Create a Survey: Survey administrators create surveys with various types of questions.
  2. Share the Survey: Distribute the unique survey code to respondents.
  3. Respond to the Survey: Respondents fill out surveys and submit their responses.
  4. Analyze Results: Survey administrators view analysis with visual representations of collected data.

👨‍💻 Development Workflow

  • 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.

Contributors

⭐️ If you like this project, don't forget to give it a star!