Village Banking App: A MongoDB Submission Post
Tags: atlashackathon, mongodb, react, actionstar
Published: 2022-01-12 08:30:38

---
title: Village Banking App: A MongoDB Submission Post
published: true
description: My submission to the MongoDB Atlas Hackathon on DEV!
tags: atlashackathon, mongodb, react, actionStar
---


### Overview of My Submission

{% youtube yHAORDEifYA %}
#### The inspiration

Village Banking is a phenomenon that has gained popularity in my country and most African countries, there is a version of it in the U.S as well with a different name. Most small village banking groups keep track of their finances in whatsapp messages or by one person. What is village banking you ask?

Village banking is a microcredit methodology whereby financial services are administered locally rather than centralized in a formal bank. Village banking has its roots in ancient cultures and was most recently adopted for use by micro-finance institutions (MFIs) as a way to control costs. [Definition from wikipedia](https://en.wikipedia.org/wiki/Village_banking)

#### The Solution

The solution to people using excel sheets or tracking the village banking money through messages is a web application that can be used on a mobile phone or desktop.

#### How I built it

This application started its life as a react native application but was then switched to react to reach more people than a mobile app can. 
It is a react app with Material UI for the look and feel. On the mongo side it is a MongoDB Realm application using an atlas database, realm functions and realm triggers.

#### Challenges I went through

I had a couple of challenges:

- I haven't developed in react or react native in over a year so I had to dust of some of the rust
- I had a couple of issues understanding how roles affect how you can access data in a mongo db collection from a realm application.
- Understanding realm sync destructive changes (the documentation was pretty helpful here)
- Time is an ever present challenge, switching halfway through to react certainly took some time and doing it during the Christmas break was not ideal.

#### Accomplishments I'm proud of

- I have a working application integrated with MongoDB Realm
- I have deployed a version of the application

#### Things I learned

- MongoDB Realm: Almost everything under realm, Authentication, functions, triggers, Schema and values
- React native: It was basically like learning react native again after over 2 years of not developing it.
- Integrating libraries like Twilio with MongoDB Realm

#### What's next for village banking

The following is the roadmap for village banking

- Adding loan requests for users of village banking groups
- Adding profile editing
- Complete the sms and email notifications
- Develop a mobile application
- Writing up bite sized tutorials on MongoDB Realm.

### Submission Category: 

My submission is in the Action Star category and uses realm functions and triggers.

To view the deployed demo please check [this link](https://village-banking.vercel.app)

### Link to Code

{% github https://github.com/kachaMukabe/village-banking %}

The realm backend code can also be found in the repository in the folder called backend.

### Additional Resources / Info

Used Libraries:
[React](https://reactjs.org)
[MongoDB](https://docs.mongodb.com/)
[Twilio](https://www.twilio.com)

#### Screenshots

![Village Banking dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ezkb6utyi8me25njafcq.png)![Village Banking drawer menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jgosmtgmd4fp6qz5qefe.png)![Village banking deposit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7o34yep873qjd0qmo08.png)