Inspiration

As computer scientists, we always dream of giving back to the society. Impacting lives and progressing the world as one. At Shellhacks, we realized the true opportunity of changing the lives our local minority groups. From various challenges faced by our minority group, we chose to solve inadequate financial literacy.

We believe that the best self improvement one can spend time on is educating about money. For someone like us, learning about "Power of compounding" really blew my mind.

What it does

We have created a web app to allow users to sign up and login, and a form where the user can enter their details such as age,gender, occupation, income, personal savings and many others.

We link to relevant articles and advice on financial literacy and wealth management, and return them based on the user's information and wealth status.

We are currently using a simple method of finding relevant articles, where we tag each user and article with certain values such as low_personal_savings or poor credit score, and then perform a string search and return articles with matching tags.

For example, an article on how to reduce outstanding debt may show up on the feed of a user with a poor credit score.

We have three main apis other than signup and login.

Save User Details, stores information such as:

{
    "name": "John Doe",
    "email": "jdoe@example.com",
    "age": "25",
    "gender": "male",
    "martial_status": "Single",
    "race": "Hispanic",
    "occupation": "Student",
    "income": "10000",
    "health_insurance": "on",
    "personal_savings": "low_personal_savings",
    "living_expenses": "low_monthly_living_expenses",
    "credit_cards_issued": "3",
    "credit_score": "poor",
    "city": "Miami"
}

An Advice API which matches the user's tags to articles and content and returns the relevant articles.

{
    "status": "Success", 
    "matched_content": [
        {
            "type": "CONTENT",
            "url": "https://finshots.in/archive/finshots-money-resolution-8-whats-your-investing-strategy/", 
            "title": "What's your investing strategy?",
            "excerpt" : "An explainer on how to figure out your investment strategy",
            "url_image": "https://cdn.finshots.app/images/2022/02/COV13.png",
            "tags" :["adult", "young_adult", "medium_credit_card_issued", "low_amount_invested","employed","excellent_credit_score",
            "medium_personal_savings"]
        },
        {
            "type": "CONTENT",
            "url": "https://www.wisebread.com/compare/pxd-outstanding-gas-credit-cards", 
            "title": "Save on Gas Today With These Great Rewards Credit Cards", 
            "excerpt" : "Tired of paying a fortune at the gas pump? If your gas bill is getting too expensive, you might need a credit card that can offer significant cash back on gas.", 
            "url_image": "https://www.wisebread.com/compare/images/logo-240x40.png",
            "tags" :["student", "young_adult", "less_credit_card_issued", "low_amount_invested","employed","poor_credit_score",
            "medium_personal_savings","hispanic","male","female"]
        }]
}

How we built it:

Frontend:

  1. We chose HTML, CSS, and Jquery in order to keep things simple and crisp and allow for speedy prototyping.
  2. For authentication, instead of reinventing the wheel we decided to go with Firebase for more secure, robust and easier user session and authentication. 

Backend:

  1. We chose Flask to construct a REST API for our business logic, because we decided to go with our team's strength and also it's simple and debug. 
  2. For database, we chose a mongo or NoSQL database, which provides speedy search based on keywords. 
  3. Finally, to ensure compatibility across our various operating systems and hardware, we containerized the application using Docker and Docker-compose.

Challenges we ran into:

The challenges which bogged down our progress:

Frontend:

  1. Integrating frontend with backend as there was CORS issue and user-agent issue since we have our frontend on local and backend on Ngork.
  2. Building a tag based search using NoSQL database.
  3. Configuring firebase was new for us and challenging as there document doesn't address alot of known issues with firebase.
  4. We tried to setup firebase authentication from frontend but most to articles available are outdated and wasted a lot of our previous time.

Backend:

  1. In the backend, we faced three main issues: Docker had caching issues and I had to delete the containers and images, before re-building and re-creating them to resolve the faulty cached layers. As a result of this, we ran into "Module not found" errors for the firebase sdk python library.
  2. Our Flask server was returning a HTTP 400 Bad Request to the frontend.

General

  1. Git issues were common and since we shared same repository for frontend and backend we had to come up with a strategy to integrate major changes without breaking others code.

Accomplishments that we're proud of

  1. Accomplishments, we wanted to cater the minority and underrepresented sections of the society. Our product has intensive categorization for the minority and even aids the other parts of the population on the basis of their financial status. Our spotlight is the minority section, we could use reference from a lot of research papers in the past for statistics and those stats bolster our decision making process for our business logic.

  2. Simplicity of the feature, so that anyone specially the senior citizens do not have to spend time understanding the complex UI. Even during the short time span we could still implement user identity authentication other than our main business logic.

  3. We achieved user transparency- A truly good product is one that doesn't just state facts, but puts forward adequate reasons for it. We believe "Don't just follow the financial advice, we provide reasons for it." Behind every intensive thought process that contributes towards the conditional financial advice we ensure transparency for every customer to careful understand our feedback, we value our user's money as our own.

  4. Customer privacy- One of the most important feature of our product, we do not reveal customer data, key highlights for the same would be we do not ask for sensitive user information. We utilized the principle of Zero Knowledge Proof, that allows a customer to prove his possesions without having to reveal the sensitive insights. Our model doesn't require sensitive user information to train for revealing model insights.

What we learned

  1. We learnt the important aspects of user privacy and user transparency, upon the development of our business logic.
  2. We paid heed to user identity authentication.
  3. We learnt the many aspects that revolve around the finances for a customer. Moreover, we learnt to challenge ourselves for competitive environment to ensure the end-to-end delivery of our product.
  4. We learned how to integrate many technical platforms and packages in a short while, hence we learnt to get past our real-time development challenges.

What's next for Shellhacks-2022 Fined Stacks

Future scope of the project

  1. Using machine learning to categorize articles and personalize user content.
  2. The real-time deployment challenges and customer review are not the scope of our product.
  3. More indepth end to end and unit testing of code will be done
  4. A more user friendly UI using React.js could be created to help people with disability.
  5. We'll deploy it to a cloud platform for scalability and reliability.
Share this project:

Updates