You can think of a module as a container for the different parts of your app – controllers, services, filters, directives, etc.
Most applications have a main method that instantiates and wires together the different parts of the application.
Angular apps don't have a main method. Instead modules declaratively specify how an application should be bootstrapped. There are several advantages to this approach: