Sachverhalt: A. Am 5. September 2014 stellte die Einzelfirma Carrosserie B._ bei der Stadt Chur ein Baugesuch. Danach soll die bestehende Reparatur-Werkstatt auf der Parzelle Nr. 2455 an der Kasernenstrasse 37 in Chur abgebrochen und ein Mehrfamilienhaus gebaut werden. Das Grundstück steht im Eigentum des Einzelfirmainhabers C. B._ und befindet sich gemäss Zonenplan in der Gemischten Zone G4. Die Eigentümerin der benachbarten Parzelle 2454, A._, erhob gegen das Baugesuch am 30. September 2014 Einsprache. Sie machte geltend, beim geplanten Bauprojekt sei die Westfassade unzutreffenderweise als Hauptfassade festgelegt worden. Damit seien die Grenz- und Gebäudeabstände nicht eingehalten. Am 2. Dezember 2014 wies der Stadtrat von Chur die Einsprache ab und erteilte die Baubewilligung. Diesen Entscheid focht A._ am 26. Januar 2015 mit Beschwerde beim Verwaltungsgericht des Kantons Graubünden an. Am 11. Mai 2015 führte dieses in Anwesenheit der Parteien einen Augenschein vor Ort durch. Mit Urteil vom 20. Mai 2015 wies das Verwaltungsgericht die Beschwerde ab. B. Mit Eingabe vom 22. Juni 2015 erhebt A._ Beschwerde in öffentlich-rechtlichen Angelegenheiten. Sie beantragt die vollumfängliche Aufhebung des Urteils des Verwaltungsgerichts. Eventualiter sei die Angelegenheit zur Neubeurteilung an die Vorinstanz zurückzuweisen, oder es sei das Baugesuch vollumfänglich abzuweisen. Das Verwaltungsgericht, die Stadt Chur und die Beschwerdegegnerin schliessen auf Abweisung der Beschwerde, soweit darauf einzutreten sei. Die Beschwerdeführerin hält in ihrer Replik an ihren Anträgen fest. Mit Verfügung vom 14. August 2015 hat der Präsident der I. öffentlich-rechtlichen Abteilung des Bundesgerichts das Gesuch von A._ um Gewährung der aufschiebenden Wirkung abgewiesen.