Faits :
A.
Par jugement du 13 avril 2015, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a reconnu X._ coupable d'infraction grave à la LStup (RS 812.121), de complicité d'infraction à la LStup, de contravention à la LStup et d'infraction à la LEtr (RS 142.20). Il l'a condamné à une peine privative de liberté de 2 ans avec sursis pendant 5 ans, sous déduction de 195 jours de détention provisoire et 66 jours d'exécution anticipée de peine. Il a prononcé une amende contraventionnelle de 100 fr. et fixé à un jour la peine privative de liberté de substitution. Il a révoqué un sursis assortissant une peine pécuniaire de 15 jours-amende prononcée le 12 décembre 2013. Enfin, il a constaté que le prévenu avait été détenu dans des conditions illicites de détention provisoire pendant 27 jours et lui a alloué une indemnité de 1'350 fr. à titre de réparation du tort moral, à la charge de l'Etat de Vaud.
B.
B.a. Statuant le 26 août 2015, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel du prévenu contre le jugement précité, qu'elle a entièrement confirmé.
B.b. La condamnation pour les infractions à la LStup repose sur les faits suivants:
Entre le mois de décembre 2013 et le 16 janvier 2014 (pour le moins), X._ a consommé de la marijuana dans une quantité indéterminée et a vendu 4,5 grammes de cocaïne pure (compte tenu d'un taux de pureté de 17 % et de boulettes de 0,71 grammes).
Pendant la même période, il a participé à de nombreuses reprises, en faisant le guet, à des transactions entre A._ et B._ portant sur une quantité comprise entre 26 et 52 boulettes de cocaïne. La quantité de cocaïne pure représentait environ 7,8 grammes (compte tenu d'un taux de pureté de 25 % et de boulettes de 1,2 gramme).
Le 16 janvier 2014 vers 22h00, un individu a livré 106 grammes de cocaïne - correspondant à 51,3 grammes de substance pure - dans un appartement occupé, à ce moment-là, par le prévenu, A._ et C._. X._ a été interpellé vers 22h15, alors qu'il sortait de l'appartement.
C.
X._ forme un recours au Tribunal fédéral contre le jugement cantonal dont il demande la réforme en tant qu'il porte sur les infractions à la LStup, d'une part, et sur le montant alloué en raison des conditions illicites de détention, d'autre part. Il conclut, avec suite de frais et dépens, à sa condamnation pour infraction simple à la LStup, contravention à la LStup et infraction à la LEtr, à une peine privative de liberté de 6 mois avec sursis pendant 5 ans et à une amende de 100 fr., ainsi qu'au versement d'un montant de 2'700 fr. à titre d'indemnité pour tort moral. Enfin, il sollicite l'assistance judiciaire.

Considérant en droit :
1.
Le recourant n'a pas indiqué par quelle voie de recours il procède au Tribunal fédéral. Toutefois, le défaut d'intitulé du recours ne saurait lui nuire, dans la mesure où son recours remplit les conditions formelles de la voie de droit qui lui est ouverte (cf. <ref-ruling> consid. 1.1 p. 370; <ref-ruling> consid. 3.1 p. 499; <ref-ruling> consid. 1.2 p. 382). En l'espèce, la voie du recours en matière pénale est ouverte (<ref-law>; cf. <ref-ruling> consid. 1 p. 207 s.).
2.
Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les faits ont été établis de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 1.3.1 p. 253 et les arrêts cités) - ou en violation du droit au sens de l'<ref-law>. Si le recourant entend s'écarter des constatations de fait de l'autorité précédente, il doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> seraient réalisées et la correction du vice susceptible d'influer sur le sort de la cause (cf. <ref-law>). A défaut, il n'est pas possible de tenir compte d'un état de fait divergent de celui retenu dans l'acte attaqué. En particulier, le Tribunal fédéral n'entre pas en matière sur des critiques de type appellatoire portant sur l'état de fait ou sur l'appréciation des preuves (<ref-ruling> consid. 5.4 p. 324).
Lorsque l'autorité cantonale a forgé sa conviction quant aux faits sur la base d'un ensemble d'éléments ou d'indices convergents, il ne suffit pas que l'un ou l'autre de ceux-ci ou même chacun d'eux pris isolément soit à lui seul insuffisant. L'appréciation des preuves doit en effet être examinée dans son ensemble. Il n'y a ainsi pas d'arbitraire si l'état de fait retenu pouvait être déduit de manière soutenable du rapprochement de divers éléments ou indices. De même, il n'y a pas d'arbitraire du seul fait qu'un ou plusieurs arguments corroboratifs sont fragiles, si la solution retenue peut être justifiée de façon soutenable par un ou plusieurs arguments de nature à emporter la conviction (arrêt 6B_563/2014 du 10 juillet 2015 consid. 1.1 et l'arrêt cité).
3.
3.1. Le recourant conteste que la drogue livrée le 16 janvier 2014 était destinée à le ravitailler. Il se plaint d'arbitraire dans l'établissement des faits et de la violation de la présomption d'innocence et du principe in dubio pro reo.
3.2. La présomption d'innocence, garantie par les <ref-law>, 32 al. 1 Cst. et 6 par. 2 CEDH, ainsi que son corollaire, le principe in dubio pro reo, concernent tant le fardeau de la preuve que l'appréciation des preuves (<ref-ruling> consid. 2a p. 40 s.).
En tant que règle relative au fardeau de la preuve, la présomption d'innocence signifie que toute personne prévenue d'une infraction pénale doit être présumée innocente jusqu'à ce que sa culpabilité soit légalement établie et, partant, qu'il appartient à l'accusation de prouver la culpabilité de l'intéressé. La présomption d'innocence est violée si le juge du fond condamne le prévenu au motif que son innocence n'est pas établie (<ref-ruling> consid. 2a p. 40), s'il a tenu la culpabilité du prévenu pour établie uniquement parce que celui-ci n'a pas apporté les preuves qui auraient permis de lever les doutes quant à son innocence ou à sa culpabilité, ou encore s'il a condamné le prévenu au seul motif que sa culpabilité est plus vraisemblable que son innocence (arrêt 6B_748/2009 du 2 novembre 2009 consid. 2.1). Comme principe présidant à l'appréciation des preuves, la présomption d'innocence est violée si le juge du fond se déclare convaincu de faits défavorables au prévenu sur lesquels, compte tenu des éléments de preuve qui lui sont soumis, il aurait au contraire dû, objectivement, éprouver des doutes. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe in dubio pro reo, celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> précité consid. 2a p. 41; arrêt 6B_61/2015 du 14 mars 2016 consid. 3).
3.3. Le recourant soutient, en substance, qu'il ignorait tout de la livraison du 16 janvier 2014. Il conteste s'être trouvé dans l'appartement au moment de l'arrivée de la police et reproche à l'autorité précédente de n'avoir pas expliqué sur quelle preuve elle se fondait pour admettre qu'il était destinataire de la drogue. Sa simple présence (fortuite) dans l'appartement au moment de la livraison et le fait qu'il a été en contact avec C._ et A._ ne seraient pas suffisants. Selon lui, il a été condamné au seul motif que sa culpabilité était plus vraisemblable que son innocence. Sa condamnation ne reposerait en outre que sur des suppositions. Se référant à une audition de D._ - auprès duquel il a admis s'être procuré de la drogue - il soutient qu'il n'avait voulu acheter que quelques boulettes et qu'il a renoncé à une transaction le 6 janvier 2014, ce qui démontrerait qu'il ne recherchait plus de drogue au moment de son arrestation. Il serait donc invraisemblable qu'il soit le destinataire d'une livraison de 100 grammes de cocaïne. D._ aurait en outre déclaré que la drogue était destinée à C._. Le recourant fait également valoir qu'il n'a fait aucun acte d'appropriation de la cocaïne contrairement à A._ qui s'est enfui avec le paquet. Enfin, il se plaint d'une mauvaise traduction d'une conversation téléphonique impliquant D._ (celui-ci aurait parlé " de Z._ ", soit C._ uniquement, et non " des Z._ " comme cela ressort de la traduction, à savoir C._ et son équipe).
3.4. En l'occurrence, la cour cantonale a confirmé les faits retenus en première instance. Elle a expliqué en particulier les raisons pour lesquelles elle se ralliait à l'appréciation des premiers juges, selon laquelle la cocaïne du 16 janvier 2014 était également destinée à ravitailler le recourant. Se fondant sur le résultat des contrôles téléphoniques, les déclarations de B._ et des consommateurs, elle a retenu que le recourant était à la recherche de cocaïne depuis un certain temps. Elle a également relevé l'interaction entre lui et A._, à savoir le partage de téléphones et les ventes réalisées ensemble. Elle a considéré enfin qu'il était invraisemblable, au vu de la nature discrète et méfiante des trafiquants, qu'une transaction portant sur une centaine de grammes de cocaïne ait pu se dérouler en présence de personnes qui ne sont pas impliquées et constituent autant de témoins potentiels.
Contrairement à ce que soutient le recourant, les considérations de la cour cantonale ne reposent pas sur de simples suppositions. Au contraire, il résulte de ce qui précède qu'elle est parvenue à une conviction sur la base des moyens de preuve apportés, lesquels lui ont permis de retenir qu'il était coupable. Elle n'a donc nullement procédé à un renversement du fardeau de la preuve, ni n'a éprouvé un doute qu'elle aurait interprété en défaveur du recourant. Par ailleurs, contrairement à ce que celui-ci semble soutenir, elle n'a pas non plus violé son devoir de motivation en omettant d'indiquer les preuves sur lesquelles elle se fondait. En effet, elle s'est référée aux contrôles téléphoniques ainsi qu'aux éléments de preuve mentionnés dans ses considérants précédents (à savoir les déclarations de B._ et des consommateurs; cf. jugement attaqué consid. 4.1 et 3.3).
3.5. La question de savoir si la cour cantonale aurait dû éprouver un doute, ce qui relève de l'appréciation des preuves, et non de la répartition du fardeau de la preuve, ne peut être examinée que sous l'angle de l'arbitraire.
A cet égard, les arguments avancés par le recourant ne parviennent pas à faire apparaître insoutenable le point de vue de l'autorité précédente. En effet, l'endroit précis où se trouvait le recourant au moment de son interpellation par la police n'apparaît pas déterminant, dans la mesure où il ne conteste pas qu'il se trouvait dans l'appartement au moment de la livraison. Pour le surplus, le recourant s'appuie en partie sur des faits qui n'ont pas été constatés par le jugement entrepris et à l'égard desquels il n'invoque ni ne démontre l'arbitraire de leur omission. Il tire des conclusions des déclarations de D._ en les interprétant à son avantage, sans indiquer d'ailleurs à quelles déclarations précises il fait référence. On rappellera qu'il n'incombe pas au Tribunal fédéral de procéder une nouvelle fois à l'appréciation des preuves, mais à la partie recourante d'établir en quoi celle opérée par l'autorité précédente serait manifestement inexacte ou incomplète. Dans tous les cas, le fait qu'auparavant il n'aurait cherché à acheter que quelques boulettes et qu'une transaction n'aurait pas abouti le 6 janvier 2014 ne sont pas susceptibles de faire naître un doute sérieux et insurmontable quant à son implication dans la livraison du 16 janvier suivant. Enfin, le recourant n'expose pas non plus - et on ne le voit pas - en quoi la prétendue erreur de traduction a eu une influence décisive sur l'issue de la procédure. Partant, la juridiction cantonale pouvait retenir sans arbitraire que la drogue livrée le 16 janvier 2014 allait servir, notamment, à ravitailler le recourant.
4.
4.1. En ce qui concerne le chef d'accusation de complicité à une infraction de la LStup, la cour cantonale a retenu que le recourant avait participé aux transactions entre A._ et B._. Elle a souligné que la reconnaissance du recourant par cette dernière était sans équivoque, de même que les déclarations de celle-ci, selon lesquelles le recourant faisait le guet pendant les transactions. Il ressortait en outre des contrôles téléphoniques et de l'audition d'un consommateur, E._, que le prévenu et A._ se remplaçaient et utilisaient les mêmes téléphones.
4.2.
4.2.1. Le recourant soutient qu'en matière d'infractions à la LStup, il n'y a pas de place pour la complicité au sens de l'<ref-law>. En effet, l'<ref-law> décrit exhaustivement les faits incriminés. Selon le recourant, la seule possibilité pour admettre la complicité à une infraction à la LStup implique que l'intéressé favorise effectivement la commission de l'infraction. Tel ne serait pas le cas en l'espèce, dans la mesure où une transaction portant sur quelques boulettes de cocaïne se fait très vite et réussit indépendamment de la présence d'un guetteur. En cas d'arrivée de la police, l'éventuelle alerte de celui-ci serait inutile, étant donné que les protagonistes auraient vu la police et pris leurs dispositions dans le même temps.
4.2.2. Le grief est mal fondé. En effet, le Tribunal fédéral a jugé que les dispositions générales du code pénal pouvaient être applicables aux infractions en matière de stupéfiants. A cet égard, la LStup laissait une place à la complicité notamment lorsque l'assistance porte sur l'acte d'un autre, présente un caractère accessoire et ne constitue pas en elle-même une infraction définie comme telle expressément par la loi (<ref-ruling> consid. 3.2 p. 193; <ref-ruling> consid. 3 p. 61). Tel est le cas en l'espèce. En effet, selon les constatations des juges cantonaux - sur lesquelles il y n'a pas lieu de revenir (cf. consid. 4.3 ci-après) - le recourant faisait le guet pendant des transactions portant sur de la drogue. Quoi qu'en dise le recourant, en adoptant un tel comportement, il a apporté une assistance qui a facilité et encouragé l'infraction. Le fait que les transactions auraient pu aboutir même sans sa participation n'est pas déterminant. En effet, l'assistance d'un complice ne doit pas nécessairement constituer une condition sine qua non à la réalisation de l'infraction (<ref-ruling> consid. 5f/cc p. 68; <ref-ruling> consid. 2c p. 292).
4.3.
4.3.1. Le recourant conteste avoir assisté aux transactions entre A._ et B._. Il fait valoir en particulier que c'est son frère qui lui a remis le téléphone également utilisé par A._, que ces derniers sont amis et qu'il est plus probable que B._ l'ait confondu avec son frère, qui lui ressemble. Le recourant en conclut qu'il subsiste un doute qui devait lui profiter.
4.3.2. Par cette argumentation, le recourant discute librement l'appréciation des faits et des preuves à laquelle a procédé la cour cantonale, en y opposant sa propre version. Il se fonde en outre sur des faits qui n'ont pas été constatés dans le jugement attaqué. Un tel procédé n'est pas admissible devant le Tribunal fédéral.
4.4.
4.4.1. Le recourant conteste également la quantité de drogue et le taux de pureté retenus pour cette infraction. Selon ses calculs, les transactions auxquelles il aurait participé ne pouvaient porter que sur une quantité de drogue pure de 1,45 gramme. Ajoutés aux 4,5 grammes qu'il a admis avoir vendu, la quantité de cocaïne pure trafiquée serait de 6 grammes au lieu des 12,3 grammes retenus par la juridiction cantonale. Selon le recourant, si l'on exclut son implication dans la livraison du 16 janvier 2014, la différence entre ces deux montants devrait manifestement avoir une influence sur la peine étant donné que l'on s'éloigne du cas grave.
4.4.2. En l'occurrence, il n'est pas nécessaire d'examiner plus en avant ce grief dans la mesure où l'implication du recourant dans la livraison du 16 janvier 2014 - qui porte sur une quantité de 51,3 grammes de cocaïne pure - n'est pas remise en cause (cf. supra consid. 3.5). En effet, la quantité de drogue perd de l'importance au fur et à mesure que l'on s'éloigne de la limite à partir de laquelle le cas doit être considéré comme grave au sens de l'<ref-law> (<ref-ruling> consid. 2b/aa p. 196), à savoir 18 grammes en ce qui concerne la cocaïne (<ref-ruling> consid. 3.2 p. 103). Ainsi, au vu de la quantité totale de drogue trafiquée, la différence alléguée d'environ 6 grammes de cocaïne, concernant une infraction où seule la complicité est retenue, ne saurait influer sur la mesure de la peine. Le recourant ne prétend d'ailleurs pas le contraire.
5.
5.1. Le recourant se plaint enfin du montant alloué à titre d'indemnité pour tort moral en raison des jours passés en zone carcérale de la police, dans des conditions illicites. Il fait valoir que dans l'<ref-ruling>, le Tribunal fédéral a alloué un montant de 50 fr. par jour s'agissant d'une période à indemniser de 10 jours. Dans son cas, la durée de 27 jours est extrêmement longue et représente deux fois et demie celle concernée par l'affaire précitée. Or, selon le recourant, il ne fait aucun doute que l'atteinte au psychisme de ce genre de détention (sans fenêtre et sans occupation, à l'exception d'un livre) croît avec le temps. En outre, le montant qui lui a été alloué par les instances précédentes, soit 50 fr. par jour, est trop bas pour inciter les autorités vaudoises à stopper leur pratique, consistant à détenir toujours plus longtemps les prévenus dans des conditions intolérables. Partant, il réclame un montant de 100 fr. par jour.
5.2. L'arrêt dont se prévaut le recourant concernait un prévenu qui avait été détenu, dans des conditions illicites, dans les locaux de la police pendant une dizaine de jours. Le Tribunal fédéral avait jugé qu'un simple constat de la violation de l'art. 3 CEDH ne suffisait pas (<ref-ruling> consid. 2.5.2), et avait donné suite aux conclusions du prévenu, en précisant que le montant réclamé de 50 fr. par jour n'apparaissait pas exagéré (<ref-ruling> consid. 2.6.1). En l'occurrence, on ne saurait déduire de cet arrêt que l'indemnité pour une détention de 10 jours dans les locaux de la police correspond à un montant de 50 fr. par jour, qu'il conviendrait d'augmenter d'emblée plus la période à indemniser est longue. En outre, si la période de détention doit effectivement être prise en considération pour la fixation de l'indemnité pour tort moral (cf. WEHRENBERG/FRANK, in Basler Kommentar, Schweizerische Strafprozessordnung, 2 e éd. 2014, n° 11 ad <ref-law>), l'écart entre une détention dans les locaux de police de 10 jours et de 27 jours n'apparaît pas tel qu'il doive forcément justifier un montant quotidien différent au titre d'indemnité pour détention dans des conditions illicites. Dans tous les cas, la critique du recourant ne permet pas de considérer que, au vu des circonstances du cas d'espèce, le montant de 50 fr. n'est pas suffisant. Par ailleurs, l'ampleur de la réparation morale dépend avant tout de la gravité des souffrances physiques ou psychiques consécutives à l'atteinte subie (<ref-ruling> consid. 5.1 p. 704 s. et les arrêts cités). L'influence que pourrait avoir le montant alloué sur la pratique des autorités vaudoises n'est pas un critère déterminant pour la fixation de l'indemnité. En conclusion, au regard des arguments soulevés par le recourant, on ne voit pas que le montant de l'indemnité fixé par la juridiction cantonale résulterait d'une violation du droit, étant rappelé qu'il s'agit d'une question d'appréciation que le Tribunal fédéral ne revoit qu'avec retenue (cf. <ref-ruling> consid. 2.2.2 p. 309 s.; arrêt 6B_111/2012 du 15 mai 2012 consid. 4.2).
6.
Les considérants qui précèdent conduisent au rejet du recours.
Comme les conclusions du recours étaient dépourvues de chances de succès, l'assistance judiciaire ne peut être accordée (<ref-law>). Partant, le recourant, qui succombe, supportera les frais judiciaires (<ref-law>), lesquels seront fixés en tenant compte de sa situation économique (art. 65 al. 2 et 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'600 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 22 avril 2016
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Castella