There's probably a ton of ways to do this, but this is what I would do:
First, obviously, the jigsaw pieces are your entities. The best approach to designing a game for ECS is to think about what aspects your Entities might have in the world. In thise case, they should all have some sort of position on the screen, they should have a visual representation, they are moveable with user control, and they all have a spot on the board that represents their final resting place. I would set up components like these:
Position - For current position.
RenderComponent - For visual representation
Shape - shape of the piece for figuring out mouse overlap, etc
UserControl - Everything needed for user control
Goal - positioning threshold for snapping the jigsaw piece to it's right spot.
Think of your systems as what defines the actions the entities can perform. For instance, we definitely want our pieces to display to the screen. We probably want them to move when the mouse drags them. We might want them to snap into place when they are dropped near their goal point. I would go for something like this:
RenderSystem : Draws Entities with render components at position
UserControlSystem : Process user control (On mouse down select piece, on mouse move, move selected piece, mouse down drop piece, etc)
GoalSystem : lock pieces in place if they are close enough to their goal ( ex. If UserControlComponent.isNotBeingHeld && Position.closeEnoughTo(Goal.goalPosition) Lock piece into place, etc )
I don't want to get too detailed, (Wheres the fun in that, right?) There might be other unforseen hurdles to get over, but this should be enough to point you in the right direction. I would venture a guess that generating the puzzle pieces and constructing the game objects in a sensible way would be the most difficult part to accomplish.
All in all, approach those design questions with "What do I want my Entities to do?" and "What characteristics do they need to have to do that?" The answer to the first question is your Systems, and the answer to the second question are your Components.
Hope this helps!
