Starting a project
When starting a project, you should choose and clearly define a project governance model (who manages work, who integrates changes, and who is responsible for what). You should decide about the license and the copyright of the code: whether it is work for hire and whether contributions require a copyright assignment, a contributor agreement, a contributor license agreement, or simply a digital certificate of origin.
Dividing work into repositories
In centralized version control systems, often everything is put under the same project tree. With distributed version control systems such as Git, it very much depends on the nature of the project. Often, it is better to split separate projects into separate repositories, but if those projects are tightly coupled together it might be better to use a monorepo – all projects in a single large repository.
If some part of the code is needed by multiple separate projects, consider extracting it into its own project...