Skip to content

Parantap-Mishra/CVOTER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š CVOTER Survey Data Dashboard

This is a web-based dashboard created during my internship at CVOTER, designed to display, sort, and visualize large-scale survey data using modern web technologies. The project connects an Excel-based dataset to a Microsoft SQL Server backend and uses Flask to serve dynamic content including tables and interactive charts powered by Highcharts.


πŸš€ Features

  • πŸ“₯ Automated Data Ingestion from Excel to MS SQL Server
  • πŸ—ƒοΈ Dynamic Database Schema Creation using SQLAlchemy
  • πŸ“„ Paginated Data Table View with sorting options
  • πŸ“ˆ Interactive Satisfaction Trend Chart using Highcharts
  • πŸ” Custom Views:
    • Most satisfied respondents
    • Least satisfied respondents
    • Latest and oldest survey entries
  • 🌐 Responsive and Clean UI using HTML, CSS, and JS
  • πŸ“Š Real-time data visualization over time across 8500+ entries

🧠 Skills & Technologies Learned

During this project, I worked with and gained hands-on experience in:

  • Python (Flask) – Web development and backend routing
  • MS SQL Server – Handling and querying large structured datasets
  • SQLAlchemy – ORM for seamless interaction between Python and SQL
  • Pandas – Data preprocessing and manipulation from Excel files
  • Highcharts – Building real-time, interactive graphs
  • HTML/CSS/JavaScript – Frontend templating and interactivity
  • Jinja2 – Dynamically rendering HTML with Flask backend

πŸ—‚οΈ Project Structure


πŸ“ project-root/
β”œβ”€β”€ main.py                  # Flask backend logic
β”œβ”€β”€ data.xlsx                # Raw survey data source
β”œβ”€β”€ templates/
β”‚   └── index.html           # Main UI template
β”œβ”€β”€ static/
β”‚   └── style.css            # Custom CSS styles
└── README.md                # This file


πŸ“Œ How It Works

  1. Data Ingestion:

    • Loads data from data.xlsx using pandas.
    • Dynamically creates a SQLAlchemy model based on the Excel columns and data types.
    • Initializes a MS SQL Server database and stores the entire dataset.
  2. Web Interface:

    • A home route (/) displays a paginated table of all responses.
    • Sorting routes (/msatisfied, /lsatisfied, /latest, /oldest) display sorted subsets of data.
  3. Data Visualization:

    • The / route also renders a Highcharts line graph to track satisfaction levels over time.
    • The chart includes four series:
      • Very much satisfied
      • Satisfied to some extent
      • Not at all satisfied
      • Don't Know/Can’t say

βš™οΈ How to Run Locally

  1. Install Dependencies

    pip install flask flask_sqlalchemy pandas openpyxl pyodbc
    
  2. Ensure MS SQL Server is Running

    • Update the database URI in main.py if needed:

      app.config["SQLALCHEMY_DATABASE_URI"] = "mssql+pyodbc://<username>:<password>@<server>/<db_name>?driver=ODBC+Driver+17+for+SQL+Server"
  3. Run the App

    python main.py
  4. Open your browser at http://127.0.0.1:5000/


Screenshots

Screenshot 2025-06-28 230909

Screenshot 2025-06-28 230932

Screenshot 2025-06-28 231012

Screenshot 2025-06-28 231032

Sorted by most satisfied image


πŸ§‘β€πŸ’» Author

Parantap Mishra Intern – CVOTER LinkedIn β€’ GitHub

About

πŸ“Š CVOTER Survey Data Dashboard

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors