One of my favorite professors ever told us that if he caught us writing code that duplicated something available on the net, we would fail, because out in the real world you never want to waste your employer's time re-inventing the wheel.
Putting on my former-CS-lab-manager hat, I'd say: think about what you're trying to learn and what your professor wants you to show. Are you working on network programming, or web app programming, or using a framework, or is this part of a bigger project or what? Xymon has a lot of pieces because it was designed to monitor multiple sorts of sources and do multiple sorts of notification.
In my own life I've learned the hard way that it's almost always easier to write what you need and take * bits and pieces* of code that can help, rather than trying to strip something complex down to bits and pieces. Invariably, things break and you end up going down ratholes trying to fix problems in parts of the code that you don't understand and don't need. Xymon has a *lot* of pieces.
Here's an analogy: if you're given the assignment of building a rowboat, don't try to build one by taking a tugboat and removing all the extra pieces. You'll probably end up with something that is the wrong size and won't float.