Faits :
A.
A._, née en 1976, a requis une indemnité de chômage à partir du 3 mai 2010. La Caisse cantonale de chômage du canton de Vaud (ci-après: la caisse) a ouvert un délai-cadre d'indemnisation du 3 mai 2010 au 2 mai 2012.
Au cours d'entretiens de conseil qui ont eu lieu les 15 mars, 20 avril et 4 mai 2011, l'assurée a informé son conseiller de l'Office régional de placement (ORP) qu'elle allait être engagée par la société B._ SA (ci-après: B._) à partir du 1 er juillet 2011.
Par courrier du 5 juillet 2011, B._ a donné suite à la demande de l'intéressée de " poursuivre " le contrat d'agence en qualité d'agente exerçant une activité à titre principal à compter du 1 er juillet 2011. Dans une attestation d'employeur remplie le 13 avril 2012, B._ a indiqué qu'en sa qualité de conseillère financière à temps partiel (du 28 février au 30 juin 2011), puis à plein temps (du 1 er juillet 2011 au 29 février 2012), l'assurée avait réalisé des salaires de 16'944 fr. 60 du 28 février au 31 décembre 2011 et de 2'452 fr. 40 du 1 er janvier au 29 février 2012.
La caisse a requis en outre un extrait du compte individuel de l'intéressée auprès de la Caisse de compensation du canton de V._, ainsi qu'une copie du contrat de travail et des décomptes mensuels de salaire pour l'année 2011. Après avoir donné à l'assurée la possibilité de se déterminer sur une éventuelle violation de son obligation de renseigner, la caisse a rendu une décision le 14 août 2013, par laquelle elle a réclamé à l'intéressée la restitution d'un montant de 8'929 fr. 75, somme correspondant à des indemnités de chômage indûment perçues durant la période du 28 février au 30 juin 2011.
Saisie d'une opposition, la caisse l'a déclarée irrecevable en raison de sa tardiveté (décision du 14 janvier 2013 [recte: 2014]).
B.
A._ a recouru contre cette décision sur opposition devant la Cour des assurances sociales du Tribunal cantonal du canton de Vaud.
Par jugement du 13 juin 2014, la cour cantonale a rejeté le recours et confirmé la décision sur opposition du 14 janvier 2014. Elle a considéré, en résumé, que l'opposition à la décision de restitution du 14 août 2013 était recevable mais que celle-ci était matériellement bien fondée.
C.
L'assurée forme un recours en matière de droit public en concluant, sous suite de frais et dépens, à la réformation du jugement attaqué en ce sens que son opposition est admise et qu'elle n'est pas tenue à restitution. Subsidiairement, elle demande l'annulation du prononcé cantonal et le renvoi de la cause à la cour cantonale pour nouvel examen. En outre, elle requiert l'octroi de l'effet suspensif au recours, ainsi que la dispense de s'acquitter d'une avance de frais.
L'intimée, la cour cantonale et le Secrétariat d'Etat à l'économie ont renoncé à présenter des déterminations.
D.
Le juge instructeur a admis la requête d'effet suspensif par ordonnance du 12 novembre 2014.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt final (<ref-law>) rendu en matière de droit public (<ref-law>) par une autorité cantonale de dernière instance (art. 86 al. 1 let. d LTF). Il a été déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi. Il est donc recevable.
2.
2.1. En l'occurrence, après avoir désavoué la position de la caisse en déclarant recevable l'opposition formée par l'assurée contre la décision de restitution des indemnités de chômage indûment perçues, la cour cantonale a étendu l'examen de la cause au fond et elle a confirmé la demande de restitution.
Par un premier moyen de nature formelle, la recourante invoque une violation de son droit d'être entendue par la juridiction précédente à qui elle reproche d'avoir rejeté son recours sans lui avoir donné l'occasion de faire valoir ses moyens de fond. Cette manière de procéder a des conséquences préjudiciables pour elle. En particulier, la cour cantonale a confirmé sans plus ample examen le montant de 8'929 fr. 75 réclamé par la caisse, motif pris que le calcul de cette somme n'était pas contesté par l'intéressée.
2.2. Le droit d'être entendu, tel qu'il est garanti par l'art. 29 al. 2 Cst., est une garantie constitutionnelle de caractère formel, dont la violation doit en principe entraîner l'annulation de la décision attaquée indépendamment des chances de succès du recourant sur le fond (<ref-ruling> consid. 3d/aa p. 437; <ref-ruling> consid. 2b p. 132 et les arrêts cités). Ce moyen doit par conséquent être examiné en premier lieu par l'autorité saisie d'un recours (<ref-ruling> consid. 1 p. 50).
Le droit d'être entendu sert non seulement à établir correctement les faits, mais constitue également un droit indissociable de la personnalité garantissant à un particulier de participer à la prise d'une décision qui touche sa position juridique. Il comprend notamment le droit pour l'intéressé de s'exprimer sur les éléments pertinents du dossier avant qu'une décision ne soit prise touchant sa situation juridique, de produire des preuves pertinentes, d'obtenir qu'il soit donné suite à ses offres de preuves pertinentes, de participer à l'administration des preuves essentielles ou à tout le moins de s'exprimer sur son résultat, lorsque cela est de nature à influer sur la décision à rendre (<ref-ruling> consid. 2.3 p. 282; <ref-ruling> consid. 3.2 p. 494). Il doit être reconnu et respecté lorsqu'une autorité envisage de fonder sa décision sur une norme ou un motif juridique non évoqué dans la procédure antérieure et dont aucune des parties en présence ne s'est prévalue et ne pouvait supputer la pertinence dans le cas particulier (<ref-ruling> consid. 5b/bb p. 278 et les références).
2.3. En l'occurrence, la cour cantonale a été saisie d'un recours contre le refus de la caisse d'entrer en matière sur l'opposition formée contre la décision de restitution de prestations indûment perçues. Hormis une demande tendant à la remise de l'obligation de restituer selon l'<ref-law> (RS 830.1), ce recours contenait essentiellement des griefs contre le refus d'entrer en matière. Quant à la réponse de la caisse et la réplique de l'assurée, elles portaient exclusivement sur le point de savoir si celle-ci avait fait valablement opposition dans le délai légal. Certes, la décision sur opposition contenait une brève remarque indiquant que l'intéressée n'avait pas satisfait à son obligation de renseigner et que l'opposition - si elle avait été recevable - aurait dû être rejetée. Toutefois, étant donné le caractère sommaire de leur motivation, ces considérations ne permettent pas d'inférer que l'assurée aurait dû, sous peine de perdre ses droits de partie, faire valoir ses moyens matériels déjà au stade du recours cantonal. Si, pour des motifs d'économie de procédure, elle voulait examiner la cause au fond, la cour cantonale devait en avertir les parties, dès lors que la contestation n'avait pas été tranchée sous cet angle en procédure d'opposition. Les faits motivant l'obligation de restituer des prestations indûment perçues étant entièrement différents de ceux qui fondent l'irrecevabilité, il importait d'inviter les parties à faire valoir leurs moyens de fond.
Dans ces conditions, il se justifie de renvoyer la cause à la juridiction cantonale pour qu'elle statue à nouveau en respectant le droit de la recourante d'être entendue.
3.
L'intimée, qui succombe, supportera les frais de la procédure (<ref-law>), de sorte que la requête d'octroi de l'assistance judiciaire est sans objet en tant qu'elle tend à la dispense de s'acquitter de frais judiciaires. La recourante étant représentée par une juriste titulaire du brevet d'avocat et qui a formulé un mémoire de recours adéquat, elle a droit à des dépens à la charge de l'intimée (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis et le jugement de la Cour des assurances sociales du Tribunal cantonal du canton de Vaud du 13 juin 2014 est annulé. La cause est renvoyée à ladite juridiction pour nouvelle décision au sens des considérants.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de l'intimée.
3.
L'intimée versera à la recourante la somme de 2'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
La demande d'assistance judiciaire est sans objet.
5.
Le présent arrêt est communiqué aux parties, à la Cour des assurances sociales du Tribunal cantonal du canton de Vaud et au Secrétariat d'Etat à l'économie (SECO).
Lucerne, le 1 er septembre 2015
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
La Présidente : Leuzinger
Le Greffier : Beauverd