This is a small project, that gives you the fundamental structure of an Extension for gnome-shell
Actually it is a commonway to begin writing a new extension for gnome-shell by executing the following command in a terminal.
gnome-shell-extension-tool --create-extension
But for learning the development of a gnome-shell extension i prefer to see the minimal structure of an project. This projects should show it.