A sleek, dark-themed analytics dashboard that transforms your exported WhatsApp chats into rich visual insights — timelines, heatmaps, word clouds, emoji breakdowns, and more.
| Feature | Description |
|---|---|
| 📊 Top Statistics | Total messages, words, media shared, and links |
| 📅 Monthly Timeline | Area chart of chat activity over time |
| 🗓️ Activity Map | Most active days of the week and months of the year |
| 🔥 Hourly Heatmap | Hour-by-day activity matrix to find peak chat times |
| 🏆 Busiest Users | Bar chart + percentage table for group chats |
| ☁️ Word Cloud | Visual frequency map with Hinglish stop-word filtering |
| 🔤 Common Words | Top 20 most used words ranked by frequency |
| 😄 Emoji Analysis | Emoji leaderboard with a donut chart breakdown |
All charts use a unified dark glassmorphism theme with neon gradient accents.
whatsapp_chat_analyzer/
├── app.py # Streamlit UI & visualisation logic
├── helper.py # Analytics functions (stats, charts, NLP)
├── preprocessor.py # Chat parser — raw .txt → structured DataFrame
├── requirements.txt # Python dependencies
└── stop_hinglish.txt # Stop-word list (English + Hindi/Hinglish)
git clone https://github.com/your-username/whatsapp-chat-analyzer.git
cd whatsapp-chat-analyzerpip install -r requirements.txtstreamlit run app.pyThe app will open at http://localhost:8501 in your browser.
- Open any WhatsApp chat or group
- Tap ⋮ Menu → More → Export chat
- Choose Without Media (recommended)
- Save the
.txtfile to your device
⚠️ The parser expects the US date format (MM/DD/YY, HH:MM AM/PM) used by WhatsApp on most Android and iOS devices set to English.
streamlit
matplotlib
seaborn
pandas
wordcloud
urlextract
emoji
Install all at once:
pip install streamlit matplotlib seaborn pandas wordcloud urlextract emoji- Launch the app and upload your exported
.txtfile in the sidebar - Select a specific user or choose Overall for the full group analysis
- Hit ⚡ Run Analysis — all charts render instantly
- Scroll through the dashboard to explore each section
ChatPulse uses a custom dark UI built entirely with Streamlit's st.markdown and injected CSS:
- Fonts — Syne (headings) · DM Sans (body) · Space Mono (data/mono)
- Palette — Deep
#07080dbase with atmospheric purple/teal/pink radial gradients - Charts — Unified dark matplotlib theme with gradient accent bars and glow line plots
- Cards — Glassmorphic stat cards with per-card gradient accents and hover effects
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
- Fork the repository
- Create your feature branch:
git checkout -b feature/cool-new-chart - Commit your changes:
git commit -m 'Add cool new chart' - Push to the branch:
git push origin feature/cool-new-chart - Open a Pull Request
This project is licensed under the MIT License.