Analytics Dashboard for the Empower Student Center
A web application that transforms Qualtrics survey CSV exports into interactive visualizations and statistics — reducing hours of manual Excel work to minutes.
Live app: https://project5deploy.onrender.com
Note: The app is hosted on Render's free tier. If it hasn't been visited in a while, the first load may take 30-60 seconds to wake up.
- Upload a Qualtrics CSV export (or use the built-in example file)
- Browse all survey questions, search, and filter by type
- Select a question to see a response preview and auto-detected question type
- Adjust the question type if the auto-detection was wrong
- View statistics and a generated chart (mean, median, mode, standard deviation where applicable)
- Download the chart as a PNG
- Python 3.9+
- A modern web browser (Chrome, Firefox, Safari, Edge)
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install -r requirements.txtpython backend/main.pyThe server will start on http://localhost:5001.
macOS note: Port 5000 is reserved by AirPlay Receiver, so we use 5001. If you see a 403 error, make sure you're hitting port 5001, not 5000.
Navigate to http://localhost:5001 in your browser. Do not open the HTML files directly — they need to be served through Flask for the upload endpoints to work.
On the Upload page, either:
- Click Choose File and select
backend/coffee_test.csv(or any Qualtrics CSV export), then click Upload File - Or click Use Example File to load the example coffee shop survey instantly
pytest backend/test_main.py -v36 tests covering upload parsing, question type auto-detection, and all API endpoints.
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Charts | Chart.js |
| Backend | Python 3.9+, Flask |
| Deployment | Render (free tier) |
| Version Control | GitHub |
| CI | GitHub Actions (lint + tests on every push) |
project5/
frontend/ HTML, CSS, and JavaScript
backend/ Flask app, tests, and example CSV
.github/ CI workflows (lint + tests)
index.html GitHub Pages landing page
README.md
requirements.txt
Makefile
make run # Start the Flask dev server
make test # Run the test suite
make lint # Run all linters (Python, HTML, JS)
make format # Run all formatters
make check # Format then lint- Ari - Backend Development, Data Science — osmunjai@gmail.com
- Chrys - Frontend Development, UX Design — howlhund@gmail.com
- Susan - Empower Student Center, Montana State University