What are tools/platforms available to develop a common public web application using private blockchain which should support smart contracts? And which one is the best from them?
2 Answers
I recommand you to use solidity browser as an IDE, and to setup a private chain (using geth as your node). For the frontend you need to use Mist to browse your Dapp. use Web3js API in HTML pages to communicate with the network (your contract).
Below you will find a list of the available tools and frameworks :
I think you are asking two separate questions mixed up together. First, what are the tools that allow you to build a private blockchain on top of ethereum? And second, what are the tools that allow to create a responsive UI to your blockchain application? Those two applications: frontend and backend communicate with each other using some common API layer.
As for available private Ethereum blockchain platforms, there is a nice list in this post. Then you would probably use something like truffle, which allows you to choose the ethereum client you want to interact with (in your case, that would be a private blockchain; it does not matter what exacly is inside, what matters is that all Ethereum clients have a common API). Then you need another layer responsible for visualization of data retrieved from the blockchain and allowing you to make new transaction requests to the blockchain. For this, you can use modern Javascript libraries like react.
This is the image visualizing the general idea:
The image is taken from here, I highly recommend you to read this article to get started.