About 24 hours after starting, here is a video. I have most of the rules implemented in a generic way (still to do en passant, castling and double pawn moves but these may be treated as special cases). As you move it calculates which pieces you are threatening and which threaten you. These are highlighted in red and green.
I will use a heuristic combining the number of your pieces threatened and the number of the enemy threatened for the AI, to help decide on the next move.
Nice work.