Hey dev.to 👋
After spending a month learning Machine Learning through Andrew Ng’s specialization, I wanted to build something real — not just notebooks.
So I created a Sentiment Analysis Web App — a full-stack project that takes any text and predicts whether it's Positive or Negative.
What I Built
- Frontend: React with clean, modern UI
- Backend: Flask API
- ML Model: Random Forest using Scikit-Learn + TF-IDF
- Features: Real-time prediction, confidence score, prediction history
Tech Stack
- React (frontend)
- Flask + Flask-CORS (backend)
- Scikit-Learn (RandomForestClassifier)
- TF-IDF Vectorizer for text processing
What I Learned
- From theory to practice — Going from notebooks to a real web app was the biggest leap.
- Connecting frontend and backend — Handling API calls, CORS, and state management.
- Model limitations — Small training data leads to bias. I learned the hard way why pre-trained models or larger datasets matter.
- Full-stack thinking — ML is not just about the model. Deployment, UI/UX, and user experience are equally important.
Challenges I Faced
- Version conflicts between Colab and local environment
- Model bias toward "Positive" predictions
Project Structure
sentiment-analysis/
├── backend/ # Flask API + ML model
│ ├── app.py
│ ├── train_model.py
│ └── sentiment_model.pkl
│
└── frontend/ # React application
├── src/
└── package.json
GitHub Repo: You can check out the full project here:
machine-learning-projects
(Go to projects/sentiment-analysis/ folder)
How to Run Locally
cd backend
python3 train-model.py
python3 app.py
cd frontend
npm start
What's Next?
I’m continuing to study ML and will be sharing more projects:
- Image classification
- Recommendation systems
- More full-stack ML apps
If you're also learning ML, I'd love to hear your journey in the comments!



Top comments (0)