Our company Enigma, is developing an accurate and affordable fraud detection and whistleblowing system that will help Anti Corruption Agencies and relevant authorities, investigate fraud seamlessly while ensuring that the general public is able to report fraud safely and anonymously.
This project uses technology to fight corruption within our African Countries, specifically Kenya. We will be using machine learning and other software tools to detect fraudulent activities within the public procurement system while allowing the public to anonymously report any fraud.
This system is designed for 2 end users:
- Anticorruption Agency [for speedy investigations and for easy collaboration between authorities]
- The general public [for use in anonymous whistleblowing]
Ideally, the fraud detection model will be deployed at Treasury for use in the IFMIS system. We have trained the model to be able to detect fraud, using data that has various features such as:
- Time taken between transactions (usually fraud takes place when many transactions are done together)
- The nature of the transaction
- The amount of transaction.
- Other features as will be informed to constitute 'fraud'.
For contractor bidding, the below metrics have been used.
- Bid price (if the bid is too low, then it should be flagged
- Time taken to present the bid
- Other features as will be informed to constitute 'fraud'.
Once fraud is detected, the system automatically flags these transactions and alerts sent automatically to 3 independent parties. For example: if fraud occurs within the Kenya Revenue Authority, then the alerts are sent to:
- An officer in the Anticorruption Office (EACC)
- An officer in Kenya Revenue Authority (KRA)
- An officer at the Director for Public Prosecutions (DPP)
An Officer at the Anticorruption Agency is able to view a dashboard that has 4 items;
- Fraud alerts from whichever office
- SMS alerts
- Website reports received through the website.
- Details of the reports
KeywordsMeaning
- $sessionId: This generates a unique value when the session starts and sent every time a mobile subscriber response has been received.
- $serviceCode: This refer to your USSD code
- $text: This shows the user input. which is an empty string in the first notification of a session which after that concatenates all the user input within the session until the session ends.
- $response: This hold the answer to the user input.
- echo: Prints out the response for the user to read.
- CON: It means an intermediate menu Or that the session is CONtinuing
- END: Means the final menu and will trigger session termination i.e session is ENDing.
A user will be able to access the ussd through dialing *384# and a menu shall pop up for the user to report any corruption activities going on.
First Prompt | Second Prompt |
Third Prompt | Fourth Prompt |
Thank you! |
To run this project on your local machine and contribute on this project use the below procedure:
- git clone
- cd coding4integrity
- virtualenv virtenv
- source virtenv/bin/activate
- pip install -r requirements.txt
- python manage.py makemigrations
- python manage.py migrate
- python manage.py runserver
- access port 127.0.0.0 on your local browser
- git clone https://github.com/Enigmm/Coding4Integrity
- cd coding4integrity
- virtualenv virtenv
- source virtenv/bin/activate
- pip install -r requirements.txt
- python manage.py makemigrations
- python manage.py migrate
- python manage.py runserver
- Access port 127.0.0.0 on your local browser