Loading repository data…
Loading repository data…
Arison99 / repository
Sparrow is a comprehensive telecommunications system designed to handle modern mobile money transactions, and services. Built with Java and Spring Boot, Sparrow provides a robust backend to manage the complexities of mobile money and exposes REST API and XML endpoints that can be used in your apps to test mobile money
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Sparrow is a comprehensive mobile money simulation platform built with Spring Boot and modern web technologies. It provides a complete ecosystem for testing, developing, and learning mobile money services with both USSD simulation and RESTful API endpoints. The platform features a professional web-based admin dashboard, comprehensive service management, and extensive API documentation.
Clone the repository
git clone https://github.com/arison99/Sparrow.git
cd Sparrow
Build the project
mvn clean compile
Run the application
mvn spring-boot:run
Access the platforms
MoMoUSDDApplication.java for traditional USSD interface# Build Docker image
docker build -t sparrow-momo .
# Run container
docker run -p 8080:8080 sparrow-momo
http://localhost:8080/admin/admin/service/send-money/admin/service/buy-airtime/admin/service/pay-with-momo/admin/service/pay-bill/admin/service/savings-loans/admin/service/invest-insure# Add a new user
curl -X POST http://localhost:8080/admin/addUser \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "phone=+1234567890&pin=1234&balance=1000.00"
# Send money
curl -X POST http://localhost:8080/admin/sendMoney \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "fromPhone=+1234567890&toPhone=+0987654321&amount=100.00"
# Get user balance
curl -X POST http://localhost:8080/api/users/balance \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "phone=+1234567890"
MoMoUSDDApplication.java for traditional USSD interfaceSparrow/
├── src/main/java/
│ ├── adapters/ # Service adapters for different operations
│ │ ├── BackendServiceSendMoneyAdapter.java
│ │ ├── BackendServiceAirtimeAdapter.java
│ │ ├── BackendServicePayWithMoMoAdapter.java
│ │ ├── BackendServicePaymentsAdapter.java
│ │ ├── BackendServiceSavingsLoansAdapter.java
│ │ ├── BackendServiceInvestInsureAdapter.java
│ │ ├── BackendServiceFinancialServicesAdapter.java
│ │ ├── BackendServiceJsonAdapter.java
│ │ └── BackendServiceXmlAdapter.java
│ ├── core/ # Core business logic
│ │ ├── BackendService.java
│ │ ├── Menu.java
│ │ ├── MenuSystem.java
│ │ └── MenuSystemImpl.java
│ ├── handlers/ # HTTP request handlers
│ │ ├── Rest*Handler.java # REST endpoint handlers
│ │ └── Xml*Handler.java # XML endpoint handlers
│ └── ui/ # User interface controllers
│ ├── AdminController.java
│ ├── BackendServer.java
│ └── MoMoUSDDApplication.java
├── src/main/resources/
│ └── templates/ # Thymeleaf templates
│ ├── admin.html # Main dashboard
│ ├── users.html # User management
│ ├── services.html # Service overview
│ ├── transactions.html # Transaction management
│ ├── api-docs.html # API documentation
│ └── [service-name].html # Individual service pages
├── pom.xml # Maven configuration
├── API_DOCUMENTATION.md # Comprehensive API guide
└── README.md # This file
# H2 Database (default)
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# MySQL Configuration (production)
spring.datasource.url=jdbc:mysql://localhost:3306/sparrow
spring.datasource.username=your_username
spring.datasource.password=your_password
# Server Configuration
server.port=8080
server.servlet.context-path=/
# Logging
logging.level.org.springframework=INFO
logging.level.ui=DEBUG
# Thymeleaf Configuration
spring.thymeleaf.cache=false
spring.thymeleaf.enabled=true
All endpoints support form-based authentication. No API key required for development.
http://localhost:8080
POST /admin/addUser - Create new userGET /api/users - Get all users (JSON)GET /api/users/xml - Get all users (XML)POST /api/users/balance - Get user balancePOST /api/users/transactions - Get user transactionsPOST /admin/sendMoney - Send money between usersPOST /admin/buyAirtime - Purchase airtimePOST /admin/payWithMoMo - Pay merchantPOST /admin/payBill - Pay utility billsPOST /admin/savingsLoans - Savings and loan operationsPOST /admin/investInsure - Investment and insurance servicesFor detailed API documentation with examples, visit: /admin/api-docs
mvn test
mvn verify
Use the built-in API documentation page or tools like Postman:
/admin/api-docsBuild the JAR
mvn clean package
Run the application
java -jar target/sparrow-1.0.0.jar
Configure production database
java -jar target/sparrow-1.0.0.jar --spring.datasource.url=jdbc:mysql://localhost:3306/sparrow
We welcome contributions! Please follow these guidelines:
git checkout -b feature/your-feature-name
mvn test
Please include: