Skip to content

Spamlyser Pro is a powerful, real-time SMS spam detection platform built with Streamlit and Transformers, backed by 4 custom-trained LLM backbones DistilBERT, BERT, RoBERTa, and ALBERT. It allows users to classify SMS messages as SPAM or HAM, visualise spam distribution, and analyse risky message features with an elegant, responsive UI.

License

Notifications You must be signed in to change notification settings

Developers-Capstone/Spamlyser

 
 

Repository files navigation

SPAMLYSER

🛡️ Advanced SMS Spam Detection & Analysis with Transformers

📖 Table of Contents

🔍 Overview

Spamlyser Pro is a powerful, real-time SMS spam detection platform built with Streamlit and Transformers, backed by 4 custom-trained LLM backbones DistilBERT, BERT, RoBERTa, and ALBERT. It allows users to classify SMS messages as SPAM or HAM, visualise spam distribution, and analyse risky message features with an elegant, responsive UI.

Thanks Banner Typing SVG

📊 Project Insights

🌟 Stars 🍴 Forks 🐛 Issues 🔔 Open PRs 🔕 Closed PRs 🛠️ Languages 👥 Contributors
Stars Forks Issues Open PRs Closed PRs Languages Count Contributors Count

🚀 Live Demo

Experience Spamlyser live here:
👉 Spamlyser

Open Source Love svg1 PRs Welcome Built with Love Visitors GitHub Contributors GitHub Last Commit GitHub Repo Size GitHub Total Lines Github

📸 Screenshots

🌟 Features

🤖 Transformer-Based Classification

  • Compare performance across 4 LLM backbones (DistilBERT, BERT, RoBERTa, ALBERT)
  • Trained on HuggingFace’s sms_spam dataset
  • Real-time predictions with confidence scores

🔍 Message Feature Analysis

  • Length, word count, digit and symbol ratio
  • URL and phone number detection
  • Uppercase and punctuation overuse analysis

⚠️ Risk Indicators

  • Flags spam indicators (e.g., URLs, ALL CAPS, exclamations, spam keywords)
  • Visual threat insights for each message

📊 Live Performance Metrics

  • Session-based spam/ham distribution pie charts
  • Model-wise classification count tracking

� Recent Additions (GSSoC 2025)

  • Responsive dark mode toggle in sidebar for professional UI
  • Unified blue theme for both dark and light modes
  • Pytest-based unit testing setup (tests/ folder)
  • Dockerfile and CI/CD workflow for easy deployment and automated testing

GSSoC Logo

🌟 Exciting News...

🚀 This project is now an official part of GirlScript Summer of Code – GSSoC'25! 💃🎉💻 We're thrilled to welcome contributors from all over India and beyond to collaborate, build, and grow Spamlyser! Let’s make learning and career development smarter – together! 🌟👨‍💻👩‍💻

👩‍💻 GSSoC is one of India’s largest 3-month-long open-source programs that encourages developers of all levels to contribute to real-world projects 🌍 while learning, collaborating, and growing together. 🌱

🌈 With mentorship, community support, and collaborative coding, it's the perfect platform for developers to:

  • ✨ Improve their skills
  • 🤝 Contribute to impactful projects
  • 🏆 Get recognized for their work
  • 📜 Receive certificates and swag!

🎉 I can’t wait to welcome new contributors from GSSoC 2025 to this Spamlyser project family! Let's build, learn, and grow together — one commit at a time. 🔥👨‍💻👩‍💻

🧠 Models Used

Model Repo URL Characteristics
DistilBERT 🔗 Link Lightweight & Fast
BERT 🔗 Link Balanced & Standard
RoBERTa 🔗 Link Robust & Accurate
ALBERT 🔗 Link Efficient & Compact

📺 Video Explanation

For a detailed walkthrough of Spamlyser's features and how to use them, check out this video:

[Insert YouTube Video Link Here]

🛠️ Technologies Used

Tool/Library Purpose
Python Core backend
Streamlit Web app interface
Transformers Model loading and inference
Hugging Face Hub Model hosting & deployment
Pandas & Plotly Data processing & visualization
Regex, Pathlib Feature engineering & file handling

⚙️ Installation and Setup

Clone and run locally using Python and Streamlit.

  1. Clone the repository:

    git clone https://github.com/eccentriccoder01/Spamlyser.git
    cd Spamlyser
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the app:

    streamlit run app.py

🚀 Example Usage

Once the app is running, it will open in your browser at
👉 http://localhost:8501

Now you can try Spamlyser in a few different ways:


🔹 (i). Analyze a sample message

  • Use the dropdown menu in the app.
  • Pick any example message (e.g., “You won a free prize 🎉”).
  • Spamlyser will instantly tell you if it’s Spam or Not Spam.

🔹 (ii). Try your own message

  • Find the text box that says “Enter your message here”.
  • Type any message you like (e.g., “Hey, are we meeting later?”).
  • Hit Analyze → see the live result right away!

🔹 (iii). Test with the sample dataset

Want to analyze multiple messages at once?

  • Click Browse files in the app.
  • Select the file: sample_data.csv (already included in the project folder).
  • Spamlyser will process the entire file and show which ones are spam vs. safe.

📊 You’ll see results in a neat table and charts — super useful for quick testing!

✨ That’s it — you’ve successfully used Spamlyser!

Issue Creation ✴

Report bugs and issues or propose improvements through our GitHub repository's "Issues" tab.

Contribution Guidelines 📑

  • Firstly Star(⭐) the Repository
  • Fork the Repository and create a new branch for any updates/changes/issue you are working on.
  • Start Coding and do changes.
  • Commit your changes
  • Create a Pull Request which will be reviewed and suggestions would be added to improve it.
  • Add Screenshots and updated website links to help us understand what changes is all about.

Contributing is fun🧡

We welcome all contributions and suggestions! Whether it's a new feature, design improvement, or a bug fix - your voice matters 💜

Your insights are invaluable to us. Reach out to us team for any inquiries, feedback, or concerns.

🙏 Acknowledgments

  • Thanks to all contributors of this project
  • Special shoutout to GirlScript Summer of Code (GSSoC’25) for the amazing community and support!
  • Built with dedication, collaboration, and lots of chai

📞 Contact

Feel free to reach out with any questions or feedback!

🤝How to Contribute

We love contributions from the community! Whether it's a bug report, a new feature, or a documentation improvement, we appreciate your help.

How to Contribute

  1. Fork the repository and create a new branch for your changes.
  2. Make your changes and ensure everything is working as expected.
  3. Submit a pull request with a clear description of your changes.

Found a Bug?

  • Check the issue tracker to see if the bug has already been reported.
  • If not, open a new issue and provide as much detail as possible.

Have a Feature Idea?

  • We'd love to hear it! Open an issue to discuss your idea.

🤝 Contributing

We welcome contributions from developers of all skill levels! Here are some ways you can contribute:

Ways to Contribute

  • 🐛 Bug fixes - Help us identify and fix bugs
  • ✨ New features - Suggest and implement new functionality
  • 📚 Documentation - Improve our docs and guides
  • 🎨 UI/UX improvements - Make the platform more user-friendly
  • 🔧 Performance optimizations - Help make Spamlyser faster and more efficient
  • 📱 Mobile responsiveness - Improve the mobile experience
  • 🔒 Security enhancements - Help keep user data safe

Thank you to everyone who has made Spamlyser better! 💚

📜 Code of Conduct

Please refer to the Code of Conduct for details on contributing guidelines and community standards.

🤝👤 Contribution Guidelines

We love our contributors! If you'd like to help, please check out our CONTRIBUTE.md file for guidelines.

Thank you once again to all our contributors who has contributed to Spamlyser! Your efforts are truly appreciated. 💖👏

Contributors

Contributors

See the full list of contributors and their contributions on the GitHub Contributors Graph.

Show some Red Heart by starring this awesome repository!

💡 Suggestions & Feedback

Feel free to open issues or discussions if you have any feedback, feature suggestions, or want to collaborate!

🙌 Show Your Support

If you find Spamlyser project helpful, give it a star! ⭐ to support more such educational initiatives:

  • Starring the repository
  • 🐦 Sharing on social media
  • 💬 Telling your friends and colleagues
  • 🤝 Contributing to the project

📄 License

This project is licensed under the MIT License - see the License file for details.

⭐ Stargazers

🍴 Forkers

🧑‍💻Project Admin:

Sagnik Chakraborty
Sagnik Chakraborty

👨‍🏫Mentors – Spamlyser (GSSoC'25)

Role Name GitHub Profile LinkedIn Profile
Mentor 1 Shaanif Ahmed shaanif-ahmed

Glowing Star Give us a Star and let's make magic! Glowing Star

Mirror Ball

👨‍💻 Built with ❤️ by Spamlyser Team

❤️ Sagnik Chakraborty and Contributors ❤️

Open an Issue | 🌟 Star on GitHub | 🚀 Live Demo

⬆️ Back to Top

Ready to show off your coding achievements? Get started with Spamlyser today! 🚀

About

Spamlyser Pro is a powerful, real-time SMS spam detection platform built with Streamlit and Transformers, backed by 4 custom-trained LLM backbones DistilBERT, BERT, RoBERTa, and ALBERT. It allows users to classify SMS messages as SPAM or HAM, visualise spam distribution, and analyse risky message features with an elegant, responsive UI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Dockerfile 0.1%