In this project, I implemented a proxy server that only allows URLs that are in a category that was checked, for other URLs it sends you a page with 403 forbidden message.
It's a good example of how to do socket programming, multithreading and also GUI programming.
You should go to internet setting (in windows 10) and in the connection tab press LAN Settings button in the right bottom of the screen, then enable proxy usage and enter the IP and port number of this application that is running on it. You can do a similar procedure on other operating systems.
You can see the output below: