Inspiration

Mpesa is a USSD based payment platform. People can send P2P payments and can also deposit and withdraw money using MPESA agents.

We as a team have been depositing and withdrawing money from mpesa agents for the last 8 years. The process of recording deposits and withdrawals through the agent and confirming by the customer with a signature has been manual to date ie. using paper to record the transaction and signatures.

This Paper process has several problems

Cost of the book is high - One book (500 pages) costs an average of 35 USD. With about 600,000 agents. This means about 21 million USD is used every year on paper costs.

Risk off loss of records - Paper is prone to wear and tear and cannot be preserved for many years.

Lack of privacy and risk of losing personal identifiable information. Here is a tweet sent by a customer.

“@SafaricomPLC I'm very concerned about data privacy in your services. Confirmation messages and mpesa agents recording everything on my Id is just too much. Can we do some kind of OTP with mpesa agents. As for confirmation messages, I've some ideas. As a sender, if I've the ...”

Tedious process as you have to repeat recording some of the data manually.

What it does

The M-sahihi app allows mpesa agents to record the deposit and withdrawal transactions digitally and allows users to sign the transactions digitally.

When a user comes to an Mpesa agent to withdraw money the Agent makes the transaction using mpesa and records the transaction using M-sahihi.

They do this by keying in the transaction code, the user's national ID , the amount transacted and the nature of the transaction( deposit or withdrawal). Finally after recording, the form is given to the user so that they can ascertain the details and sign digitally using hello sign.

How we built it

  • We started with ideation and identifying the users.
  • We later on made use case statements to allow us to know what features to build.
  • We designed mock ups for user experience design .
  • We finally designed the schema and went ahead to start coding.

The coding was done by Jane as she is well versed with python and flask.

Our app Stack is

*Python on the backend. Utilizing the flask framework *HTML/CSS for our frontend *The Database is Postgresql *App is Deployed in Heroku

Challenges we ran into

  • Inadequate developer information when we encountered bugs. For example while configuring to hello sign sdk using the beta api we encountered

“ ModuleNotFoundError: No module named 'metadict'”

There was no solution for this online.

Accomplishments that we're proud of

This was a chance for our team to put into practical use our knowledge gained from our one year software engineering course at Holberton School. This is the first project we have done that was not school related to our class work.

This is all us and we are proud that we put in work and were able to finish on our own.

What we learned

We learned how to use Hellosign api to

  • Create a template
  • Send a signature request using a template
  • We learned how to use postgres. We had only previously used sqlite. Especially on heroku
  • We learned more on how to peer program and work as a team

What's next for M-Sahihi

We will integrate the Mpesa API so that all the information on transaction ID , Amount and nature of transaction can be picked up automatically instead of keying in the information.

Share this project:

Updates