I am part of a project that is starting up that will have a client executable and a server executable. We are using git to help keep our team updated with code and this is the f
If the clients and servers are fairly independent one from another, they are good candidate for being in their own git repo. This is the component approach.
You could have three repos:
The submobules in Git are neat to record the exact SHA1 you are using together for your system.
So you could define 2 parents repo:
client app
server app
The idea being to be able to say if the client and the server are using the same or a different version of the networking.
The all setup might be an overkill for a class project, but could illustrate the difference between the system approach (everything in one giant repo), and the component approach.
Separating in different git repo allows for independent tagging and branching.
You should use a single repository, because it can hold multiple projects/solutions/anything else that builds an executable.
In general, I would organize it the same way that you would like to have it organized locally. There is no reason to deviate from what works for you to accommodate git.
I would suggest setting up a github repository that all parties may access.