<small>(First, welcome, great that you want to use OSM! Second, I suggest to [get a bit involved](https://www.openstreetmap.org/welcome) and just try to put your favourite restaurant on the map (if not already existing) or similar simple POI stuff. Do not use other maps for your edits, but only your personal real-world observation.)</small>
See https://wiki.openstreetmap.org/wiki/Develop (mostly the right box "Using OpenStreetMap for Development"). You can do nearly everything with OSM, because our [data](https://wiki.openstreetmap.org/wiki/Downloading_data) is [free](https://www.openstreetmap.org/copyright). Displaying a [slippy map](https://wiki.openstreetmap.org/wiki/Deploying_your_own_Slippy_Map) with POI markers is quite *easy* with leaflet (also used on [osm.org](https://www.openstreetmap.org/)) or openlayers.
Regarding pulling POI out of OSM you can have a look at other projects, e.g. https://wiki.openstreetmap.org/wiki/OpenStreetBrowser or https://wiki.openstreetmap.org/wiki/Wheelmap (their code is free software, so you can look at / use it).
If you want to let your users add new info to the POIs it gets a bit *tricky*:
* If you want to store that info in your own database ...
* ... and you want to continue to get updates from the OSM database you need to somehow link your data for the POIs to the POIs from OSM. [OSM object](https://wiki.openstreetmap.org/wiki/Elements) ids are not guaranteed to be stable and hence the same POI may have a new id after some years/months/days (see also https://wiki.openstreetmap.org/wiki/Persistent_Place_Identifier ).
* ... and you do NOT want to continue to get updates from the OSM database you can just do a one-time import of all relevant POIs into your database and subsequently do all changes on this POI set.
* If you do NOT want to store that info in your own database have a look at the project wheelmap (mentioned above), which also lets users add/change POI information, but they does not write this info to an own database, but instead write this info back to the main, public OSM database. This approach *only is possible if the user-entered info is useful for many many people* (e.g. the suitability of POIs for wheelchairs is such a useful info, see the related issues of [Good_practice](https://wiki.openstreetmap.org/wiki/Good_practice) and [Verifiability](https://wiki.openstreetmap.org/wiki/Verifiability)).