NAMES: Kwizera Dieudonne | ID: 27623 | Group: wednesday Lecturer: Eric Maniraguha
A production-ready Oracle PL/SQL solution that secures mobile money transactions through real-time fraud detection, automated alerts, and strict data modification restrictions (weekdays & public holidays).
Mobile money platforms across Africa suffer from increasing fraud activities such as abnormal transactions, unauthorized access, and identity misuse. Manual monitoring is slow and unreliable, resulting in financial losses and reduced customer trust. This system solves the problem by using automated PL/SQL intelligence to analyze transactions, detect high-risk activity, and alert administrators instantly.
Automatically detect fraudulent mobile money transactions
Track user activities and security events
Enforce weekday and holiday DML restrictions
Generate alerts with fraud scores and risk levels
Provide a clean Oracle-based architecture ready for BI
Enhance financial safety through real-time monitoring
-
Real-time fraud scoring based on transaction amount and patterns
-
Automatic insertion into
FRAUD_DETECTIONandALERTtables -
Compound trigger that blocks INSERT/UPDATE/DELETE on weekdays and public holidays
-
Full audit trail in
AUDIT_LOGtable (every blocked attempt logged) -
Procedures, functions, package, cursors, and analytic window functions
-
Realistic Rwandan data (names, phone numbers, balances, transactions)
-
3NF normalized schema with proper constraints and sequences
Customer sends money
Core System validates the request (checks balance, receiver) and creates a pending transaction
Fraud Detection calculates a risk score - if score > 70, flags as suspicious
Analyst Review - human reviews flagged transactions and either approves, rejects, or brokers them
One user can have multiple accounts (one-to-many relationship) Each transaction belongs to one account (sender's account) Alerts and security logs are user-specific, not account-specific Holidays affect transaction processing (may cause delays or restrictions)
Currency is implied (likely single currency system - no currency field) Destination_number can be phone or account (supports mobile money transfers) Balance can be negative (no constraint shown - may allow overdrafts) Transactions are one-way records (only source account tracked, not destination account_id)
All user activities are logged in security_log for audit trail Alerts are stored historically (no deletion, for compliance) Account_status controls access (suspended/blocked users can't transact)
Decimal(12,2) for money = supports up to 999 million with 2 decimal places Date fields store timestamps (though type shows 'date', likely datetime in practice) NN (Not Null) fields are mandatory for data integrity No soft deletes shown (records are permanent or hard-deleted)
tables where created successfully
** Cursors **
*** TRIGGERS ***
*** test results for my trigger shows that if anyone trys to make any transaction on weekdays it doesn't allow them ***


.png)
.png)
.png)
.png)
.png)













