Like commented by @tim this is a very broad question. I think it boils down to two things:
- Look at the privacy laws in your region (GDPR in Europe for example). These are legally binding and should always be adhered to especially when talking about personal data (like combination name, birthdate, address). These laws normally (and should) contain the want for a privacy statement that explains what data is stored and how the data is used/shared. These laws always include what I will say in part 2.
- Principle of least privilege (or how you would say that for data) should apply. Everything you show publicly (and everything that you store!) you should ask yourself: "Do I need to show it for correct use of my application?"
So actually read the law (or articles that summarize it) and try to limit what you show and do not hide behind the: "they gave the data voluntarily so it is mine now to do with whatever I want!".
Further, your explanation of the application is a bit vague so I am not sure what it should do. But let's answer the more detailed questions:
- After adhering to point 1 and 2 all data that you need and a user has provided you can be shown to the user that owns that data.
- If you want to share videos/photos or other personal media you can but be sure to have a clear privacy statement that explains the who and how of data sharing.
- I would say never share anything with anonymous users. Unless it is the whole idea of the application then again clearly state it in your privacy statement.
- Never share: addresses or phone numbers, and I would say do not store them unless absolutely necessary.
- E-mail addresses: make those opt-in to share. So a button that someone can choose to share this (default is OFF)
I hope this helps you google around for templates and how other sites have implemented their privacy (-by-desing), here are some links: