The concepts of issues and Projects are not competitors but collaborative. The concepts, according to Github’s help, are:
- Issue: Use it to track ideas, improvements, tasks or bugs. (source: https://help.github.com/articles/about-issues/)
That is, it is your smallest working logging unit, if you need to implement an improvement, fixing a bug creates as Issue.
For example, below I created a Issue reporting an error that must be corrected, but note that already on this screen there is the field Project (1).

The concept of project inside the Github is:
- You can create project Boards for the development of a Feature specific, create a roadmap, or what will go on a certain release checklists (source: https://help.github.com/articles/about-project-boards/)
It’s basically project control, and when I create one, I can add issues in it, for example, what I created in the previous item:

And lastly:
- Milestone also aggregates several issues, and with this it is possible to set as goals (source: https://help.github.com/articles/about-milestones/)
Below I put a Issue both in a project, and in a Milestone:

The idea is: repository users record problems or suggestions in issues, the repository administrators will sort if it makes sense, and may include it in a project in the future. The project by definition has beginning, middle and end; so by creating it you determine which work items will enter the project, or you can add over time; when the project has completed its goal, it ends. At the end you have a release and this can be represented by a Milestone, in the case of the above examples with the name 1.0.0.
Related: https://answall.com/q/345326/101
– Maniero