Bachelor's Thesis

Application for Analysis of Data from Bank Transactions

Final Thesis 3.89 MB

Author of thesis: Bc. Petr Hýbl

Acad. year: 2022/2023

Supervisor: Ing. Vladimír Bartík, Ph.D.

Reviewer: Ing. Jiří Hynek, Ph.D.

Abstract:

The goal of this thesis is to design and implement a web application for analyzing bank transactions. The application uses the Flask web framework on the server and the React framework on the client. The focus of the work was simplicity and user experience. The main function of this application is automatic categorization of transactions using artificial intelligence. The core of this feature is a two-layer architecture. In this architecture we were able to achieve a success rate of 85 %. This application allows the user to upload a monthly statement and view a summary graph with the category where they spend the most money. In addition, the user can compare each month and think about how to optimize their finances.

Keywords:

web application, bank transaction, analysis by artificial intelligence, React, Javascript, Python, Flask, bank statements

Date of defence

14.06.2023

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Bylo by technicky možné pro dané účely využít aplikaci jedné banky (např. George), která by importovala účty jiných bank prostřednictvím tzv. funkce multibanking? Vyhodnoťte proveditelnost a případné výhody/nevýhody přístupu oproti Vašemu systému.

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Ing. Peter Chudý, Ph.D., MBA (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Vojtěch Mrázek, Ph.D. (člen)
Ing. Ondřej Lengál, Ph.D. (člen)

Supervisor’s report
Ing. Vladimír Bartík, Ph.D.

S přístupem studenta během řešení jsem byl spokojen a i výslednou práci hodnotím jako kvalitní. Navrhuji proto hodnocení stupněm B (velmi dobře).

Evaluation criteria Verbal classification
Informace k zadání

Cílem této bakalářské práce bylo vytvoření aplikace, které bude načítat bankovní výpisy z různých bank, analyzovat je a zobrazovat statistiky o výdajích v přehledné formě. Také bylo potřeba implementovat klasifikaci pro automatické určení typů jednotlivých položek. Výsledná aplikace je kvalitní a prakticky využitelná, student své zadání splnil.

Práce s literaturou

Většinu literatury si student obstaral samostatně, k volbě literatury nemám výhrady.

Aktivita během řešení, konzultace, komunikace

Student své řešení pravidelně konzultoval, dohodnuté termíny dodržoval a na konzultace býval dobře připraven. Studentův přístup během řešení tedy hodnotím pozitivně.

Aktivita při dokončování

Práce byla dokončena včas, technická zpráva byla konzultována a realizační výstup byl včas prezentován. Student mé připomínky zohlednil.

Publikační činnost, ocenění
Points proposed by supervisor: 82
Display more

Grade proposed by supervisor: B

Reviewer’s report
Ing. Jiří Hynek, Ph.D.

Student vytvořil použitelný systém řešící zajímavé téma. Práce obsahuje některé výše zmíněné nedostatky (jak v technické zprávě, tak v realizačních výstupech). Navrhuji hodnocení stupněm C.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Cílem práce bylo navrhnout systém pro zpracování a vyhodnocování serializovaných dat exportovaných z aplikací internetového bankovnictví reprezentující vykonané transakce. Student dále řešil klasifikaci těchto transakcí do kategorií a jejich vizualizaci. Pro tyto účely využil jazyk Python a přidružené knihovny PyTorch, Sentence Transformer, Pandas a NLTK. Klasifikaci provádí pomocí výpočtu vektorů vět a porovnávání podobnosti pomocí kosinové podobnosti. Zadání hodnotím jako obtížnější a považuji ho za splněné.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Prezentační úroveň technické zprávy

Prezentační úroveň technické zprávy je na nízké úrovni. Teoretická část představuje seznam existujících aplikací a technologií. Analýza pojednává o formátech exportovaných souborů z bank. Návrh působí značně triviálním dojmem. Popis principu klasifikace působí spíše jako černá skříňka. Student se místy vyjadřuje neohrabaně.

55
Formální úprava technické zprávy

Po formální stránce je práce na přijatelné úrovni. Místy chybí čárky, případně se vyskytují typografické chyby (např. pomlčka místo spojovníku). Pojmy nejsou v mnoha případech vhodně zvýrazněné. Některé výpisy nejsou číslované.

80
Práce s literaturou

Práce s literaturou je na přijatelné úrovni. Student kombinuje odborné a online zdroje týkající se zejména použitých technologií.

80
Realizační výstup

Výsledné řešení je použitelné. Nástroj pro klasifikaci pomáhá automatizovaně roztřídit zpracované transakce (student uvádí úspěšnost 85%). Klientská část systému (dashboard) implementovaná s využitím rámce React působí spíše jednodušším dojmem. Je možné nalézt různé nedodělávky (chybějící paginace nebo správa kategorií).

70
Využitelnost výsledků

Výsledky jsou potenciálně využitelné pro analýzu osobních výdajů. Student systém uveřejnil online pod názvem MoneyTracker na své osobní doméně.

Topics for thesis defence:
  1. Bylo by technicky možné pro dané účely využít aplikaci jedné banky (např. George), která by importovala účty jiných bank prostřednictvím tzv. funkce multibanking? Vyhodnoťte proveditelnost a případné výhody/nevýhody přístupu oproti Vašemu systému.
Points proposed by reviewer: 70
Display more

Grade proposed by reviewer: C