=========================== Ordr2 - CPI Ordering System =========================== In our chair at the University of Freiburg there are about forty people working in the lab but only four of them are accredited for the SAP ordering system used by the university - the rest has to order through them. This leads to a quite large amount of mails, post-its and calls per purchaser. To give this some better structure, our small ordering system was developed. It is actually a 'would-you-please-order-for-me-system' and disconnected from the upstream system. This is a complete rewrite of the CPI `ordering system`_ originally written in PHP. Goals ----- * more information on orders: * record the status change in order in a log * add a new status "hold" if there are questions * simpler reordering of already placed orders * better tools for consumables (templates for new orders): * propose consumables on placed orders * check unused or outdated consumables * make categories editable * revamped user management: * validate email address on registration * forgot password system * make password hashing future proof * move away from PHP as a programming language (done, branch php2pyhton) * update the front end tools to current versions Notes on technologies used --------------------------- The project uses `Pyramid`_ as a web framework, especially the `traversal`_ style routing instead of the more widely spread url dispatch method. This decision was made because: * the starter of this project likes this kind of routing * it eliminates the need of defining routes separately * `row level security`_ is easy to implement since traversal works with resources from the start. The new system should have automated unit- and integration tests for all self written code, aming at 100% coverage although this might never be reached. To run a test use the ``make coverage`` command or if you'd like to test without a coverage report use ``make test`` Also the code should be documented well enough to support the current and new developers. Good Documentation is hard, so please be forgiving in this regard. A set of documents can be compiled and viewed with the ``make docs`` command. .. _ordering system: https://ordr.cpi.imtek.uni-freiburg.de .. _Pyramid: https://trypyramid.com .. _traversal: https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/muchadoabouttraversal.html .. _row level security: https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/security.html