Outgoing donations tracking
For incoming donations, CiviContribute does have the ability to track "in kind" non-monetary donations. Visit Administer > CiviContribute > Payment Instruments and add "In kind" as an option.

You can also set up some custom fields to extend the contribution record with options like e.g. "hardware type", etc.