Welcome to the SMS Broadcaster/Transceiver application! This Flutter app, a part of the FORUS initiative, ensures reliable people-to-people communication without the need for an internet connection. By utilizing SMS, it provides a robust API-like service for data transmission over 2G networks, making it viable in situations where internet connectivity is unavailable.
- 📨 SMS Broadcasting: Automatically forwards received messages to a list of predefined numbers.
- 📱 Phone Number Management: Add, delete, and manage phone numbers for broadcasting.
- 📂 Message Logging: Keep track of all sent and received messages.
- 🚀 Background Processing: Continuously listens and processes SMS messages even when the app is not running.
-
Clone the repository:
git clone https://github.com/yourusername/sms-broadcaster-transceiver.git
-
Navigate to the project directory:
cd sms-broadcaster-transceiver
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
-
Grant SMS permissions: Ensure the app has the necessary SMS permissions to send and receive messages.
-
Add Phone Numbers: Add phone numbers to the broadcasting list using the
Users
screen. -
Receive and Broadcast Messages: Incoming messages from listed numbers will be automatically forwarded to other numbers in the list.
-
View Logs: Check message logs for detailed information on sent and received messages.
Manage the list of phone numbers.
import 'package:flutter/material.dart';
import 'database_helper.dart';
import 'phone_number_log_screen.dart';
class UsersScreen extends StatefulWidget { ... }
class _UsersScreenState extends State<UsersScreen> { ... }
Listen for and process incoming SMS messages.
import 'package:flutter/material.dart';
import 'package:telephony/telephony.dart';
import 'database_helper.dart';
class ReadSmsScreen extends StatefulWidget { ... }
class _ReadSmsScreenState extends State<ReadSmsScreen> { ... }
View logs for a specific phone number.
import 'package:flutter/material.dart';
import 'database_helper.dart';
class PhoneNumberLogScreen extends StatelessWidget { ... }
The app uses SQLite for local data storage.
- phone_numbers table: Stores the list of phone numbers.
- broadcast_requests table: Logs of all broadcasted messages.
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper { ... }
Here are some of the snaps of the Application.
Screen | Image |
---|---|
Home Screen | ![]() |
Users Screen | ![]() |
Contributions are welcome! Please fork the repository and submit a pull request.
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
Made with ❤️ by Team FORUS.
Feel free to explore, use, and contribute to make communication easier and more accessible for everyone! 🌐📡