From e2e4e21484f758d89f0b1cfbecb12bd952eb67e0 Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Tue, 18 Jun 2024 16:06:47 +0200 Subject: [PATCH] feat: finished system architecture documentation --- .gitignore | 309 +++++++++++++++++- docs/final_documentation/images/images.png | Bin 0 -> 4020 bytes docs/final_documentation/images/internet.svg | 21 ++ .../images/notification.svg | 38 +++ docs/final_documentation/images/oauth.svg | 106 ++++++ .../images/search-analytics.svg | 26 ++ .../images/systemArchitecture.drawio | 45 +++ .../images/systemArchitecture.drawio.pdf | Bin 0 -> 51544 bytes .../images/web-development.svg | 56 ++++ docs/final_documentation/main.pdf | Bin 0 -> 55993 bytes docs/final_documentation/main.tex | 54 +++ 11 files changed, 654 insertions(+), 1 deletion(-) create mode 100644 docs/final_documentation/images/images.png create mode 100644 docs/final_documentation/images/internet.svg create mode 100644 docs/final_documentation/images/notification.svg create mode 100644 docs/final_documentation/images/oauth.svg create mode 100644 docs/final_documentation/images/search-analytics.svg create mode 100644 docs/final_documentation/images/systemArchitecture.drawio create mode 100644 docs/final_documentation/images/systemArchitecture.drawio.pdf create mode 100644 docs/final_documentation/images/web-development.svg create mode 100644 docs/final_documentation/main.pdf create mode 100644 docs/final_documentation/main.tex diff --git a/.gitignore b/.gitignore index 535289b5..f94096ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,310 @@ connector/Lib/* connector/Scripts/* -pyvenv.cfg \ No newline at end of file +pyvenv.cfg + +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync +*.rubbercache +rubber.cache + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hypdoc +*.hd + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib \ No newline at end of file diff --git a/docs/final_documentation/images/images.png b/docs/final_documentation/images/images.png new file mode 100644 index 0000000000000000000000000000000000000000..d373a618a669e7e4ae9aaacffa6fb164fde8b897 GIT binary patch literal 4020 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

hi0<>HfBpx68w=ZOt}?>BId$xu-W|q z|1C+SDH+Ty7SeVsg&-UrzoH-03%~JsDdjo?&?TykQUTbq4Hbrru0*Tv9by!6= z@93**<`5pnYV@&)6@{JLWs3yj9J#Z=BH}vg`Ig4Gj#`{ALl7ehbB742WT6k4H)8qW zk-7@N`OYpYOWS>IM$=Zwq)QiKZfq7tS!D?-Xv+@oz)xb9o_f(9dW29Klj2o+{MD7x z!s_xbaF4b|nAP>USt@DQsBlNkgLddG1O;K!kcB~+{B~&egq>F%{lkNN6Y<;ls{9;@B ak?{}a?8_%-b)~NW0000 + + + + + + + + \ No newline at end of file diff --git a/docs/final_documentation/images/notification.svg b/docs/final_documentation/images/notification.svg new file mode 100644 index 00000000..9a28051f --- /dev/null +++ b/docs/final_documentation/images/notification.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/final_documentation/images/oauth.svg b/docs/final_documentation/images/oauth.svg new file mode 100644 index 00000000..68d7bab9 --- /dev/null +++ b/docs/final_documentation/images/oauth.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/final_documentation/images/search-analytics.svg b/docs/final_documentation/images/search-analytics.svg new file mode 100644 index 00000000..798da233 --- /dev/null +++ b/docs/final_documentation/images/search-analytics.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/final_documentation/images/systemArchitecture.drawio b/docs/final_documentation/images/systemArchitecture.drawio new file mode 100644 index 00000000..ebd2ed25 --- /dev/null +++ b/docs/final_documentation/images/systemArchitecture.drawio @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/final_documentation/images/systemArchitecture.drawio.pdf b/docs/final_documentation/images/systemArchitecture.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..077cedeff2c756886200c283afb7cae286863126 GIT binary patch literal 51544 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 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/final_documentation/main.pdf b/docs/final_documentation/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7da714f1df6029a8e3122a3b14566abb3d4a16a3 GIT binary patch literal 55993 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� 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 ug5u6gKBsj6 literal 0 HcmV?d00001 diff --git a/docs/final_documentation/main.tex b/docs/final_documentation/main.tex new file mode 100644 index 00000000..aaad2462 --- /dev/null +++ b/docs/final_documentation/main.tex @@ -0,0 +1,54 @@ +\documentclass{article}[11pt] +\usepackage{graphicx} +\usepackage{float} + +\title{ERSMS, Group F, Project Documentation} +\author{Hubert Dwornik, Michał Łezka, Jakub Mazur \\ Michał Sar, Krzysztof Rudnicki} +\begin{document} +\maketitle + +\section{System Architecture} +We have designed and implemented 4 microservices, +all of microservices are written in Python using Flask framework +\paragraph{AI recommendations} +Based on a list of movies ids, calculates and returns list of ids recommended for user who likes given movies +\paragraph{Analytics} +Holds information about number of +ratings, number of users, +average movie ratings, ratings of +given user which are later used in +webinterface to show data for admins +concerning website usage +\paragraph{Notifications} +Notifies user whenever there is a new movie recommend by AI recommender for them +\paragraph{Backend} +Updates database and mantains all ongoing and incoming communication between all microservices, both between microservies and from microservices to the webinterface +\paragraph{Caching} +We implemented two caches +\begin{enumerate} + \item Backend is cached inside Analytics Service \\ + Analytics service holds tata about users and movies, + in order to not pull all the data from backend every time we update analytics + (for example every day), we keep the cache of backend date in our analytics + service + \item AI recommendations are cached inside Notification Service \\ + AI recommendations can change whenever new movie appears, notification + service keeps the cache of ai recommendation service in order to not + pull all the data from the ai recommendation every time it wants to notify + the users about new movies to recommend +\end{enumerate} + + +\begin{figure}[H] + \caption{System architecture representation, webinterface although not part of microservices included to show relation with backend} + \centering +\includegraphics[width=\textwidth]{images/systemArchitecture.drawio.pdf} +\end{figure} + + +\section{Automated Infrastructure Management solution} +\section{Federated authorization and authentication management in the project} +\section{Threat model with mitigations} + + +\end{document} \ No newline at end of file