javascript CRUD framework