Slide background



Platform independent

SMART PCP is developed with the idea of being completely platform-independent - it does not require any compromises when SMART PCP is being deployed in specific customers' technical environments:

  • SMART PCP uses Glassfish application server. It runs on top of Java Virtual Machine. Implementation of Java Virtual Machine exists on all of major operating systems, including Linux, Solaris, OS X and Windows. It allows the deployment on any platform supported by this virtual machine.
  • For the purposes of communication with the database the Java Persistence API is used. It allows using any relation database that has particular Java Database Driver implemented. Any


Client part of SMART PCP is built with JavaScript and so it can be used with all of market-major browsers. Additionally, SMART PCP uses responsive web design (RWD) approach providing an optimal viewing experience on various screen sizes (varying from regular PC screens to tablets and smartphones).


Security is a vital part of SMART PCP. There are many different threats that need to be addressed. For this purpose Secure HTTP and build-in authentication and authorization mechanism to protect sensible data is used as well as encryption of most sensible data.


With the anticipation of future integration of SMART PCP with the various external systems interoperability is very much supported within this environment, both on client and server side. Server API is implemented with the REST paradigm. It uses industry standards - HTTP and JSON as basic API technologies. This opens up the possibilities to connect it with various platforms that supporting these technologies. Client is built around JavaScript allowing deployment as part of a bigger system. Java Authentication and Authorization Service (JAAS), allowing Single-sing-on access control, is used for authorization and authentication.


Quality is an invisible parameter with the great value for the software, especially, in production environment when any bugs are unacceptable. Quality is determined by the software development process. SMART PCP uses continuous integration and automatic testing in order to preserve deserved software quality level. Automatic testing is about running the pre-defined tests in order to check whether the software works as expected. Continues integration is a system that runs these tests after every change in code. As this whole process happens in seconds it provides almost immediate feedback about the status of the software.


Future SMART PCP interoperability with the external systems calls for easy to use customization. Javascript library Bootstrap that is used for user interface allows great visual customization. Look and feels as well as the whole layout of application can be modified without any serious effort.


Interaction with the outside world brings the constant flow of further requirements and thus SMART PCP represents a never finished project.

JavaScript is dynamic, weak-type language. It is used for a client side of application allowing opportunities to easily make any changes to the client logic.
JavaScript also allows using almost any of a large number of existing JavaScript libraries.


SMART PCP is reliable and robust application as it deals with the financial domain where failures can cost a lot. SMART PCP uses Glassfish - broad used JavaEE server and a reference implementation of JavaEE. This ensures almost zero chance of possible occurrence of serious problem.


Scalability of the SMART PCP deals with anticipation of future bigger load to the platform. SMART PCP is prepared for such an event ensuring it will react the same way (e.g. with the same response time, without bugs) whether there will be few tens or few thousands of users. 

  • JPA enables to run the SMART PCP on most of the relation databases. MySQL has been chosen for the current implementation due to the number of possibilities to scale it depending on the given requirements. 
  • Web technologies like HTTP are used to build the infrastructure with load balancer that will distribute user request to more machines in order to lower big burden.

CRM, social networking

For the management of "Phase Zero" of PCP we build a Living Lab community that brings together different stakeholders (such as municipalities, solution providers, RTD organizations and citizens) and in which all users are provided with various CRM features.


Especially through knowledge sharing. The ideas generated during "Phase Zero" are automatically formalized by the users themselves, through the set of built-in functionalities and provided back to the users.