Well since IPFS doesn’t hosts your files (it shares them). That can’t work.
Even forgeting the fact that browsers have a really limited dial set and that they can’t run the DHT you could run a node in the browser but that would go away once the user close the page.
I would lower the requierements to accept some pinning servers but if you really don’t want you can ask users to run IPFS and use their local nodes.
It’s very simple to develop such an application. However, you might have a problem persiting your data. Probably you should have a look at pinning services which ensure you that the uploaded contet is pinned on IPFS
This company offers a pinning service with a free plan which is enough to play around
Alternatively, you can have an ipfs node running in the browser which is perfectly fine, however in such a case you must have deployed somewhere a star signaling node. Furthermore, files are stored in the browser’s indexed db which might be something you did not want to
It’s quite easy to fire up your own star signaling server and deploy it to Heroku (for example) just follow these simple instructions.
Once you have a star signaling server running you have to add to the swarm addresses of your browser (or local) node the address of the star signaling server, something like /dns4/my-star-signaling-server.heroku.com/tcp/443/wss/p2p-webrtc-star/