There are many such boxes of many approaches here. from simple (ish)
or
to Really complicated
And many more