Multi-Instance Quotation System (SaaS) Based on Docker Containerizing Platform
Shekhamis, Anass (2016)
Shekhamis, Anass
Vaasan ammattikorkeakoulu
2016
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201704184895
https://urn.fi/URN:NBN:fi:amk-201704184895
Tiivistelmä
This thesis covers the development of a quotation system that is built as a multi-instance SaaS. Quotation systems usually come as part of customer relationship management systems, but not necessarily included. They also tend to have invoicing alongside the original functionality; creating quotations for customers. The system uses Microservices Architecture were each service is a replaceable and upgradeable component that achieve certain functionality and easily integrate with other third-party applications such as invoicing and team management systems through their API. The thesis discusses the purpose of building such system which is directed specifically towards in-house construction and maintenance companies. Then, the difference between multi-tenant and multi-instance when building SaaS in the cloud and the practice of creating a REST API that could be easily integrated with external web service and third-party software and APIs. After that, the web security principles and software containerization concepts were introduced. Next, the process of collecting the system requirements, analyzing them, and design the solution supported by the UML diagrams and the system architecture description. Then, the solution structure and the technology stack were introduced followed by the system implementation of the back-end as API and the front-end web application as a single-page application that consumes that API. Furthermore, the implementation of authorization access on the user and the API level was discussed. Finally, the deployment using Docker and Kubernetes was explained briefly. It can be concluded that the implemented has a well-designed architecture, and met the expectation of the current customers and the sponsor. Moreover, the system could be improved and optimized, and more features could be added.