What you have is a decent start and essentially follows basic git flow. However one suggestion I would have is not having branches for specific people, instead specific features which will set you up for a real git flow.
Furthermore instead of constantly freely merging (especially onto main) you could start using pull requests. When linking pull requests to feature branches you gain more control and a better history of updates.
Here is an example of typical git flow for any application:
your 'test' branch is equivalent to the 'development' branch in the diagram below