This is a project for "Advanced Softwaretechnique" where a fixed website with vegan recipes is scraped and depending ingredients are extracted. You can search by a (list of) ingredient(s) to find matching recipes. Let's reduce some food waste! It is using the recipes from Bianca Zapatka (https://biancazapatka.com/de/), whom provides really good, easy and vegan recipes on her website/blog.
installing dependencies:
pip install -r requirements.txt
crawl data:
sh start.sh
start the program (default english recipes):
python src/main/python/main.py
for german option add:
-l de
usage of GitHub for the whole project time
UML Diagramm created with Planttext (Class, Component and User Diagrams for the project with Edlich's Fund)
Creation with Miro of Event Storming file and resulting Diagrams and DDD
→ PDF-file with Event Storming, Diagram and DDD
Creation of SonarCloud account and connecting to repository (with advanced settings) for metric badges:
Adding clen code developemnt for improved usage and readabilty as well as for better maintance of code.
→ throw exception with context
Creation of a Cheat Sheet for upcoming projects
Usage of Pybuilder to build Project and have the ability to install and import as a package for usage in other projects
→ with Pybuilder: find files here
Writing UnitTests to keep correctness and desired functionality of algortihm
! tests will be executed automatically with every push to respository -> with github actions (see 8.) → find tests here
run tests manually with:
python3 -m unittest -v src/unittest/python/ingredientfinder_tests.py
Adding Github Action Test exectuion on every push to verify correctness of algorithm
Adding most favorite shortcuts here and create own to allow faster developemnt without lifting hands from keyboard
→ own Shortcut:
option + r
(run)
→ build-in:
cmd + f
(find)cmd + r
(replace)option + c/v/x
(copy/paste/cut)cmd + /
(comment (out))shift + ctrl + d
(start debugger)
Usage of DSL like 'HTML' and 'regex'
→ extraction of information from HTML content
→ extraction of words with regex
Apply functional programming for it's understanding and adding a class for Recipe as learned in Prog. I for java
→ (mostly) side effect free functions
→ use closures / anonymous functions
→ the use of higher-order functions/functions as parameters and return values