Skip to content
princekumar-devPublic

About

Interactive Python CLI to collect, analyze and visualize student course feedback - TextBlob sentiment scoring, emotion and key phrase extraction, tabulated records and matplotlib rating charts, stored in a simple flat file.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

SFMS — Student Feedback Management System

Collect, analyze and visualize student feedback from an interactive Python CLI

Python TextBlob matplotlib License Type


📖 Overview

SFMS is a menu-driven command-line tool for managing student course feedback. Every piece of feedback submitted through the CLI is automatically analyzed — sentiment polarity and subjectivity via TextBlob, emotion tags via keyword extraction, and key phrases — then stored in a simple flat file and displayed in polished tables. An advanced sentiment summary and a rating-distribution pie chart turn raw comments into quick, presentable insight.

No database, no server — just Python, a text file, and your terminal.

✨ Features

Interactive 7-option menu:

# Action What it does
1 Add Feedback Enter registration no, student, course, comment and rating — sentiment, emotions and key phrases are extracted automatically
2 Delete Feedback Remove a record by registration number or student name
3 Search Feedback Look up records by registration number or student name
4 Display All Feedback Full tabular view (tabulate) of every record
5 Advanced Sentiment Analysis Aggregate sentiment breakdown across all feedback
6 Rating Distribution matplotlib pie chart of rating frequencies
7 Exit Saves and quits

NLP pipeline (runs on every submission)

  • Sentiment — TextBlob polarity scored and classified: > 0.1 Positive · < -0.1 Negative · otherwise Neutral, with the numeric score and subjectivity stored
  • Emotions — positive / negative / neutral keyword matching ("excellent", "boring", "average"…)
  • Key phrases — the three most substantial sentences from the comment

🗂️ Data Storage

Everything persists to student_feedback.txt (auto-created), a pipe-separated (|) table:

Column Description
Registration_No · Student_Name · Course Who and what
Feedback The free-text comment
Sentiment · Sentiment_Score · Subjectivity TextBlob analysis results
Emotions · Key_Phrases Extracted tags
Rating · Date Numeric rating and timestamp

🚀 Setup

python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

pip install pandas tabulate textblob matplotlib numpy python-dateutil pytz tzdata
python -m textblob.download_corpora

nltk, click, joblib, regex, tqdm and colorama are pulled in automatically as transitive dependencies of the core packages above.

▶️ Usage

python student_feedback_manager.py

Then follow the menu prompts — add a few feedback entries and try options 4–6 to see the table, sentiment summary and rating chart.

📁 Project Structure

SFMS/
├── student_feedback_manager.py   # The entire application (CLI, NLP pipeline, charting)
├── student_feedback.txt          # Data file (created automatically on first save)
├── LICENSE                       # MIT
└── README.md

🔧 Implementation Notes

  • StudentFeedbackManager class wraps load/save (pandas CSV with | separator), so data survives restarts and stays human-editable
  • Sentiment thresholds (±0.1) keep clearly negative comments from being masked by neutral text
  • The pie chart renders in a separate matplotlib window (plt.show())
  • Records are kept sorted by registration number for stable display

📄 License

MIT — see LICENSE.

👤 Author

Prince Kumar — @princekumar-dev


SFMS — student voices, scored and charted in one menu.

About

Interactive Python CLI to collect, analyze and visualize student course feedback - TextBlob sentiment scoring, emotion and key phrase extraction, tabulated records and matplotlib rating charts, stored in a simple flat file.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages