How do I make a .zip file that contains every file AND every folder in the directory?
-r option. From zip(1):
Travel the directory structure recursively; for example:
zip -r foo foo
The name of the zip file comes first. "Recursively" means that the zip file will include subfolders of the given folder, the subfolders of those folders, and so on.
If you are bound to a zip, I'd use:
zip -r zipfilename directoryPath
-r is the key, but you can find all the options here.