A flexible implementation of a chess board with algebraic notation processing and an understanding of the rules of the game. Uses angular.js.