VishingBackend
This is the django backend project for the vishing call detection with the java android front end
Install / Use
/learn @tarxemo/VishingBackendREADME
📞🔍 Vishing Detection System
Django Backend + Android Frontend
This project is a Vishing (Voice Phishing) Detection System that uses an Android mobile application to intercept incoming phone calls and send call information to a Django backend for real-time analysis. The backend analyzes the call data and determines whether the call is safe, suspicious, or potentially harmful.
🚀 Overview
This system consists of two major components:
1. Android App (Frontend)
- Runs on the user’s phone.
- Intercepts incoming calls (using Android Telephony API).
- Extracts caller phone number and metadata.
- Sends call information to the Django backend via REST API.
- Displays the backend’s analysis (Safe / Suspicious / Vishing).
2. Django Server (Backend)
- Receives call data from Android devices.
- Runs ML or rule-based vishing detection logic.
- Returns a JSON response with the risk analysis.
- Stores logs for future training and improvement.
🧠 How It Works (System Flow)
-
A call arrives on the Android phone.
-
Android App captures:
- Phone number
- Call time
- Call type (incoming/outgoing)
-
App sends this data to Django backend →
/api/call-detection/ -
Django backend:
- Processes the phone number
- Checks machine-learning or blacklist rules
- Generates a "risk score" or "threat category"
-
Backend responds with:
{ "status": "suspicious", "score": 87, "reason": "Number reported multiple times" } -
Phone displays an alert (RED / YELLOW / GREEN).
-
Django saves the call analysis for future dataset building.
🏗️ Technologies Used
Backend (Django)
- Django REST Framework
- Python
- SQLite / PostgreSQL
- Machine Learning model or rule-based detector
Frontend (Android)
- Android Studio (Java/Kotlin)
- TelephonyManager
- Retrofit for API calls
- Notifications / UI alerts
📦 Django API Endpoints
POST /api/call-detection/
Send call details to backend.
Example request:
{
"phone_number": "+123456789",
"call_type": "incoming",
"timestamp": "2025-11-16T10:30:00"
}
Example response:
{
"status": "vishing",
"confidence": 0.92,
"message": "Number associated with scam patterns"
}
🛠️ Setup Instructions (Backend)
1. Clone the project
git clone https://github.com/yourusername/vishing-detector-backend.git
cd vishing-detector-backend
2. Create virtual environment
python3 -m venv venv
source venv/bin/activate
3. Install dependencies
pip install -r requirements.txt
4. Apply migrations
python manage.py migrate
5. Run server
python manage.py runserver
📱 Android App Setup (Frontend)
-
Open
/android_app/folder with Android Studio -
Update backend URL in Retrofit service:
const val BASE_URL = "http://YOUR_SERVER_IP:8000/" -
Run on device
-
App requests permissions:
- READ_CALL_LOG
- READ_PHONE_STATE
- POST_NOTIFICATIONS
-
Intercepted calls will now be analyzed by Django server.
🤖 Detection Logic
You may use:
Option 1 — Machine Learning Model
- Train using past call logs + labels (safe/spam/vishing)
- Use logistic regression, SVM, or transformer language model on call remarks
Option 2 — Rule-Based Detection
-
Check phone number:
- Reported spam lists
- Known fraud numbers
- Short suspicious patterns (e.g., “+255 6XX 00XX”)
- Time-based anomalies
📊 Database Example
| Phone Number | Status | Score | Timestamp | | ------------ | ---------- | ----- | ---------- | | +255621XXXX | vishing | 0.91 | 2025-11-15 | | +1415555XXXX | safe | 0.02 | 2025-11-16 | | +255784XXXX | suspicious | 0.62 | 2025-11-16 |
📜 License
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
