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 00000000..d373a618 Binary files /dev/null and b/docs/final_documentation/images/images.png differ diff --git a/docs/final_documentation/images/internet.svg b/docs/final_documentation/images/internet.svg new file mode 100644 index 00000000..05d8ce49 --- /dev/null +++ b/docs/final_documentation/images/internet.svg @@ -0,0 +1,21 @@ + + + + + + + + + \ 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 00000000..077cedef Binary files /dev/null and b/docs/final_documentation/images/systemArchitecture.drawio.pdf differ diff --git a/docs/final_documentation/images/web-development.svg b/docs/final_documentation/images/web-development.svg new file mode 100644 index 00000000..6bd4ac9c --- /dev/null +++ b/docs/final_documentation/images/web-development.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + \ 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 00000000..7da714f1 Binary files /dev/null and b/docs/final_documentation/main.pdf differ 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