So for a second app this is bit adventurous, but i will give you hints anyways !
Create a custom android launcher which will have two modes. Study mode and play mode. In study mode allow all the apps.and in the child mode allow on specified apps to be launched. There are multiple opensource launcher samples for you to start.
For websites the approach is the same, write a custom webview which will allow the same as above. Although having root + system access will make this even easier but if not you are stuck with writing your own webview implementation.
look at some of similar apps in the google play which can given you some insights !
solved What function would I need to use to block other apps/websites in my app? [closed]