I've written about John Kitchin's org-ref package a couple of times before [1, 2] but now it's available on Melpa. If you write papers or reports that have references (either internal or external), you need this package. It makes handling citations easy and transparent.
Kitchin has a new video out describing the updated org-ref. I suggest that you first watch the original video to get an idea of some of the things you can do. The new video starts with an empty file and builds a toy article with the purpose of demonstrating how you would use the org-ref package during the preparation of an article or paper.
The amount of functionality can seem overwhelming but Kitchin also provides a very nice manual that documents the package and the functions it contains. Kitchin built the package for his own use in preparing papers—he's a researcher in Chemical Engineering—so it really does solve the citation/reference problems that a researcher encounters when writing up results. If you're a student or an engineer producing reports, the package will be just as useful for you.
An important fact about Kitchin's workflow is that he writes his papers in Org mode. That has lots of advantages as he has as he has demonstrated before. Now we can count one of those advantages as the automating of a large part of the citation/reference process. As I wrote before, handling citations isn't really hard but it can be fiddly. The org-ref package makes it much less tiresome to deal with.