You are designing smartcontract based exchange. That would be good.
But when a user submit "bid" or "offer", it is only 1 side of a contract. How will you match up the parties to actually create a full transaction?
Will you show the depth of "buy" and "sell" orders?
What happens if I want to buy or sell on the market?
How will you stay in business with no fee? Get the money from the ICO?