🧠 Sentiment Analysis Web Tool
-
TextBlob (Python NLP Library) — Configured and integrated a sentiment-analysis pipeline capable of evaluating text polarity and subjectivity for user-submitted entries.
-
Flask Framework — Built a lightweight, modular web application supporting real-time text input, prediction processing, and dynamic template rendering.
-
Flask-SQLAlchemy ORM — Implemented relational data modeling for persistent storage of sentiment entries using an SQLite backend.
-
SQLite Database — Designed a compact, file-based database for efficient local data management during development and testing.
-
HTML5 / CSS3 Front-End — Developed responsive user interfaces for data input and results display with clean, minimal styling.
-
Render Cloud Hosting — Deployed the Flask application via Render for continuous integration and delivery (CI/CD) directly from GitHub.
🚀 How to Run Locally
- Clone the repository git clone https://github.com/ldodson10/sentiment-app.git cd sentiment-app
- Create and activate a virtual environment (recommended): python -m venv venv venv\Scripts\activate # On Windows
- Install the required packages: pip install -r requirements.txt
- Run the application: python app.py Visit http://localhost:5000 in your browser.
☁️ Deployment with Render This project is deployed using Render, a cloud hosting platform that enables developers to launch web applications with ease.
⚡ Why Render? Render simplifies the process of hosting and running backend applications like this Flask-based sentiment analysis tool. It automatically pulls the latest code from GitHub and deploys it, eliminating the need to manually manage infrastructure.
🔧 Workflow Overview GitHub is used to store, version, and manage the project code. Render connects to the GitHub repository, builds the application, and hosts it live.
The local Flask environment was successfully rebuilt and verified on Windows PowerShell 5.1.
The application launched successfully on http://127.0.0.1:5000, confirming that dependencies, routes, and templates were restored correctly.
🔗 Live Demo: https://sentiment-app-6y17.onrender.com
🗂️ Project Structure
📁 sentiment-app/
├── app.py # Main application logic
├── requirements.txt # Python dependencies
├── render.yaml # Render deployment configuration
├── templates/
│ ├── index.html # Input form page
│ └── result.html # Output results page
├── static/ # Static assets (if any)
├── docs/
│ └── *.png # Sentiment screenshots and verification evidence
└── README.md # Project documentation
After resolving the textblob.exceptions.MissingCorpusError and restoring Flask server connectivity, the Sentiment App was tested using three statements representing different emotional tones. Each statement referenced gratitude for the TKH Cybersecurity Fellowship and an interaction with a Career Specialist.
-
Positive
"I feel deeply grateful for the TKH Cybersecurity Fellowship and inspired after speaking with a Career Specialist, whose wisdom and guidance have filled me with clarity and renewed motivation."
-
Neutral
"I am thankful for the TKH Cybersecurity Fellowship, and my recent conversation with a Career Specialist offered helpful insights that clarified my next professional steps."
-
Negative (Expected)
"Although I'm grateful for the TKH Cybersecurity Fellowship, I felt discouraged after realizing how much I still have to learn despite my Career Specialist's efforts to guide me."
| Test Case | Expected Sentiment | App Result | Notes |
|---|---|---|---|
| Positive | Positive 😊 | ✅ Positive | Matches expectation |
| Neutral | Neutral 😐 | ➡️ Positive | Lexical bias toward gratitude phrasing |
| Negative | Negative 😞 | ➡️ Positive | Model interprets learning/growth terms as positive contextually |
| Description | File Name |
|---|---|
| Positive Result #1 | LocalApp_Run_Success_SentimentApp_Positive_1.png |
| Positive Result #2 | LocalApp_Run_Success_SentimentApp_Positive_2.png |
| Positive Result #3 (Expected Negative) | LocalApp_Run_Success_SentimentApp_Positive_3.png |
TextBlob's sentiment analyzer displays a consistent bias toward positive classification when sentences contain gratitude-oriented or reflective language.
This demonstrates a common limitation of rule-based sentiment models: they evaluate polarity primarily through individual words rather than contextual nuance.
- Enhanced Sentiment Modeling — Integrate advanced Transformer-based models such as DistilBERT, RoBERTa, or VADER for improved contextual understanding and more accurate classification of nuanced emotions.
- User Authentication — Implement secure user login and personalized dashboards to track sentiment history across multiple sessions.
- Data Visualization Dashboard — Add interactive charts and graphs (using Plotly or Chart.js) to visualize overall sentiment trends and distribution over time.
- Multilingual Support — Extend TextBlob or Hugging Face pipelines to support additional languages, enhancing inclusivity and global usability.
- Automated Testing & CI/CD Pipeline — Integrate GitHub Actions to automate testing, linting, and deployments to Render with every push.
- Containerization — Package the application using Docker for consistent environment replication and seamless deployment to other platforms.
- API Endpoint Expansion — Develop RESTful API endpoints for third-party integration, enabling external systems to submit text and retrieve sentiment results programmatically.
This roadmap ensures that the Sentiment App continues to evolve as a scalable, intelligent, and production-ready NLP application.
Developed by: Latrisha Dodson
Project Repository: https://github.com/ldodson10/sentiment-app
Status: ✅ Functional — Verified local Flask execution, Render deployment, and sentiment classification results.
The Render service and URL were verified as active on October 18, 2025.
| Evidence | Description |
|---|---|
![]() |
Render dashboard showing all services up and running. |
![]() |
Successful access of deployed app via Render URL. |
The deployment confirms the Sentiment App is live and functional on Render’s Free Tier environment.
This project represents an applied demonstration of natural language processing (NLP) and cloud deployment fundamentals, integrating model testing, debugging, and performance validation.
Updated and verified: October 18, 2025 — Functional Sentiment App deployment confirmed on Render and localhost.





