Haystack is a Django application that provides
modular search for Django.
Haystack makes it possible to plug openPLM with an efficient search engine.
Xapian is a search engine and xapian-haystack is a backend for use with Haystack and the Xapian.

graphviz is a tool to generate graphs. It has a lot
of features to custom the rendering.
PyGraphviz is a Python binding
for Graphviz. openPLM uses PyGraphviz to generate the graphs of the Navigate
page.

In Django, applications do not have dedicate controllers and let this kind of
work to views. But openPLM has several kinds of views (html, api), so to
keep the views simple and stupid, openPLM has controllers.
Controllers manage user’s rights (they ensures the user can do the asked action)
and check inputs. Controllers also keep trace of what have been done
(histories) and send mails to affected users.