Skip to content

AdrianStankiewicz/Financier

Repository files navigation

Financier

🇬🇧 Engineering Bachelor Thesis - Web Application for Long-Term Financial Decision-Making

🇵🇱 Temat Pracy Inżynierskiej - Aplikacja webowa wspierająca podejmowanie długoterminowych decyzji finansowych

Financier is a web application developed as part of my Bachelor Thesis, designed to assist users in making informed long-term financial decisions. This project aims to provide valuable insights and tools for effective financial planning and management.

The thesis based on this application was awarded the highest possible grade of 5 at Polish universities. Additionally, the defense was rated 5.5, also the highest score attainable for this stage.

I graduated with distinction, achieving an overall grade of 6.


Development process

Current stage

I decided to develop the app more in order to learn more about DevOps and CI-CD concepts. Hopefully my resolve will lead me to extending the app into fully automatic CI-CD pipeline, but the current goal is:

  • Organising loosely-connected containers using docker compose

First stage

At the time when Financier was being submitted as part of my Engineering Thesis it was a couple of loosely connected containers with fully manual deployment process. Whole implementation looked like this:

implementation diagram

Manual deployment process
  1. Enable Docker
    sudo systemctl enable docker
  2. Run MongoDB:
    docker run -d \
    	--name financier-mongo \
    	--env-file ./enviromental.txt \
    	-v mongodbdata:/data/db \
    	mongo:7.0.6
  3. Build and Run GetRates:
    docker build -t get-rates ./get-rates-app/
    docker run -d --rm \
    	--name financier-get-rates \
    	--env-file ./enviromental.txt \
    	--env-file ./get-rates-app/enviromental.txt \
    	get-rates
  4. Build and Run GetInflation:
    docker build -t get-inflation . # run inside script folder
    docker run -d --rm \
    	--name financier-get-inflation \
    	--env-file ./enviromental.txt \
    	get-inflation
  5. Build and Run LoanProphet:
    docker build -t loan-prophet ./approve-model/
    docker run -d --rm \
    	-v /PRODUCTION/Financier/app/package/:/model/package \
    	loan-prophet
  6. Build and Run FinancierAPI:
    docker build -t financier-api ./app
    docker run -d \
    	-p 80:8080 \
    	--env-file ./enviromental.txt \
    	--name financier-api_container \
    	financier-api

Useful snippets:

Login to MongoDB:

mongosh --username <username> --password <password>

Importat details:

Created volume to make data persistant inside MongoDB:

docker volume create mongodbdata

Added financier-get-rates.sh to /etc/cron.daily/


Used icons: Icons created by Freepik - Flaticon
Inflation data: Wikipedia data

About

Engineering Bachelor Thesis - Application that helps with making long-term financial decisions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published