FIrstly, i would get well aquainted with Kentico's Custom Modules, you'll want to use it to store your CLasses (tables) that contain the information, the user interfaces to manage, settings to configure, etc.
Next i would look into the Global Object Events hooks (reference to the hooks), you can detect any activity really through it (any database change will trigger the Object type event hook). From there it depends on what you want to capture, how you want to rank, etc.
Just be sure to follow Kentico's structure, to properly secure your code, use Module "Code" to create API for your classes, properly configure staging tasks if needed, etc. Build it flexible so it can handle different situations.