is an AI-powered solution designed to protect mobile money users in Tanzania — particularly users of M-Pesa, TigoPesa, and HaloPesa — from SMS-based fraud.
# SMSGuard: AI-Powered SMS Spam Detection for Mobile Money Users
## Project Aim
**SMSGuard** is an AI-powered solution designed to protect mobile money users in Tanzania — particularly users of **M-Pesa**, **TigoPesa**, and **HaloPesa** — from **SMS-based fraud**.
The system automatically detects and filters **scam messages offline**, before they reach the user, and moves them to a separate **“Scam and Blocked”** section of the native messaging app.
**Our mission**: Ensure all scam messages are detected offline and routed to the "Scam and Blocked" folder — protecting users, especially in rural areas, who lack internet access or advanced smartphones.
---
## Getting Started
### 1. Clone the Repository
```bash
git clone
github.com
```
This includes:
```
Spring Boot backend
Python-based AI model
Sample configuration files
```
### 2. Set Up the AI Model
* Use **PyCharm** or any other Python IDE.
* Navigate to the `ai-model` directory.
* Set up your environment and install dependencies:
```bash
pip install -r requirements.txt
```
* Run the FastAPI server:
```bash
uvicorn main:app --host 0.0.0.0 --port 5000 --reload
```
* Make sure the model is available at:
`
localhost`
### 3. ☕ Set Up the Spring Boot Backend
* Open the backend project using **IntelliJ IDEA**.
* Ensure **Java 21** is installed and selected.
Configure your PostgreSQL database connection in `application.yml`:
```properties
spring.datasource.url=jdbc:postgresql://localhost:5432/smsguard
spring.datasource.username=postgres
spring.datasource.password=mdsoln
```
* Run the backend application using the IDE or terminal:
```bash
./mvnw spring-boot:run or click Run in your IDEA
```
### 4. Connect EnvayaSMS to Backend
* Ensure your **Android device running EnvayaSMS** and your **backend server** (AI + Spring Boot) are on the **same local network**.
#### On the EnvayaSMS app:
* Set the **Server URL** to:
`http:// :8080/incoming-sms/receive`
* A …