At my university, CSE 333 is the name of the systems programming course that all computer engineering students have to take. For the class, there is a main project, which involves building an HTTP server using the POSIX sockets API. The server is built in raw C (and some C++ for classes).
The basic idea is to build a server that can do the bare minimum: accept TCP client connections and serve static HTML and CSS files by responding to HTTP GET requests. The served website looked like this:

Why is this class project listed here? Well, the truth is that prior to this project, I didn't have a good understanding of
how the HTTP protocol, the browser, and web servers interacted together
[1].
The funny thing is, I've used web server frameworks like Express.js prior to all of this, and I've built websites using them. However, everything is so abstracted that it's hard to understand what's really going on under the hood
[2]. Thanks to this project, I at least have a better fundamental understanding of how servers establish client connections and how to parse and format HTTP requests/responses.
As an extension, I also got to integrate a SQLite database into my server to store user input and various HTTP header information, which was pretty fun.