This is why smart contract is such a bad name. A lot of people have a complete misunderstanding of what a smart contract is. They think it can enforce things like a real-world contract, but "automatically". It's just a decentralized script and without real-world input through an oracle it is of course impossible for the contract to know whether a project is completed. There's nothing smart or automatic about that part.