🇵🇱 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.
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
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:
Manual deployment process
- Enable Docker
sudo systemctl enable docker
- Run MongoDB:
docker run -d \ --name financier-mongo \ --env-file ./enviromental.txt \ -v mongodbdata:/data/db \ mongo:7.0.6
- 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
- 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
- Build and Run LoanProphet:
docker build -t loan-prophet ./approve-model/ docker run -d --rm \ -v /PRODUCTION/Financier/app/package/:/model/package \ loan-prophet
- 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
Login to MongoDB:
mongosh --username <username> --password <password>
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