I was the leader of the MakerClub in highschool with my friend Egemen Ertem. We taught 3D printing, C programming, PCB design, AVR architecture/programming in C, and fundemantal electronics knowledge in the club. This was our final project that we designed together using the techniques we taught before. The goal was to make a wifi controlled digital lamp using AVR and 3D printing. We connected an ESP wifi module to the MCU so that the lamp was able to act as an http server. We wrote the http server code in C together without using any library, and we also wrote an html page to be send to the client from the server when requested. So it was able to connect to the lamp from browser, and turn the lamp on and off.
The most challenging part was to write the http server since we spent a lot of time learning about how the protocol actually worked under the hood. For example none of us knew that the maximum packet size that could be sent was 1500 bytes. So we had first programmed it to directly send the whole html page as a single package which lead to failure in sending the page. I then modified the server so that it first divided an html page into multiple packages with size of 1500 bytes, then it sent each package to the client when requested.