Skip to content

Repository files navigation

Customer Experience Analytics for Ethiopian Fintech Apps

Project Overview

This project is a multi-stage Data Engineering and Analytics Pipeline designed to analyze customer satisfaction and pain points for three major Ethiopian mobile banking applications: Commercial Bank of Ethiopia (CBE), Bank of Abyssinia (BOA), and Dashen Bank.

The pipeline executes the full data lifecycle: scraping, NLP-based analysis, data warehousing in PostgreSQL, visualization, and final reporting.

Target Objectives

  • Source Data: Google Play Store user reviews (1,200+ total reviews).
  • Core Deliverables: Cleaned dataset, Sentiment Scores, Thematic Analysis, PostgreSQL Data Warehouse, and Actionable Recommendations Report.

🚀 Execution & Setup

1. Prerequisites

  • Python 3.8+
  • PostgreSQL installed and running locally.
  • The bank_reviews database must be created in PostgreSQL before running Task 3.

2. Setup Environment

Create and activate a Python virtual environment (venv).

3. Install Dependencies

pip install -r requirements.txt
# Ensure NLTK resources are downloaded (run this in Python interpreter once):
# import nltk
# nltk.download('stopwords')
# nltk.download('punkt')

Project Structure & Files

fintech-app-reviews/
├── .gitignore
├── README.md
├── requirements.txt
├── task_1_data_collection/
│   └── scrape_reviews.py        # Task 1: Scrapes and cleans raw data.
├── task_2_analysis/
│   └── nlp_analysis.py          # Task 2: Executes Sentiment and Thematic Analysis.
├── task_3_database/
│   ├── database_schema.sql      # Task 3: SQL to define Banks and Reviews tables.
│   └── insert_data.py           # Task 3: Python script for PostgreSQL ETL.
├── task_4_reporting/
│   └── visualization.py         # Task 4: Connects to DB, generates charts (Matplotlib/Seaborn).
│   └── final_report.md          # Task 4: Comprehensive report with insights and recommendations.
└── data/
    ├── fintech_reviews_*.csv    # Output of Task 1 (Raw/Cleaned)
    └── analyzed_reviews_*.csv   # Output of Task 2 (With Sentiment and Themes)

Analysis Methodology

Task 2: Sentiment and Thematic Analysis Sentiment Model: distilbert-base-uncased-finetuned-sst-2-english (Hugging Face Transformers).

Thematic Clustering: Rule-based keyword matching (e.g., 'crash', 'login', 'slow transfer') clustered into 5 themes: Account Access/Security, Transaction Performance, User Interface/UX, Bugs/Reliability, and Customer Support.

Task 3: Data Persistence (PostgreSQL) Schema: Two tables: Banks (stores bank names and IDs) and Reviews (stores all scraped data, sentiment scores, and themes, linked by bank_id FOREIGN KEY).

Task 4: Insights and Visualization Visualizations are used to clearly communicate:

Sentiment Distribution by Bank: Percentage breakdown of Positive, Negative, and Neutral reviews.

Rating Distribution: Bar chart showing the frequency of 1-star through 5-star ratings per bank.

Top Thematic Pain Points: Count of reviews mentioning the top 5 themes per bank.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages