This project was generated with Angular CLI version 10.2.0.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.
- installer le plugin chrome augury
- installer le plugin VS CODE angular2-snipet
Permet d'enregistrer un nouvel utilisateur sur la plateforme.
Le formulaire contient 3 champs : "username", "Mot de passe" et "Confirmation du mot de passe".
Au clic sur le bouton "S'enregistrer", le formulaire va déclancher l'évenement ngSubmit
. Le formulaire est déjà configuré pour invoquer la méthode submit()
déclarée sur le composant
<form nz-form nzLayout="vertical" #f="ngForm" (ngSubmit)="submit()">
Le inputs son créés à partir du composant nz-form-item
de la ui library ng-zorro
- Terminer le formulaire pour l'ajout d'un utilisateur
- Rendre le username et le mot de passe obligatoires
- En cas de succès, rediriger l'utilisateur sur /splash/login
- Afficher les messages d'erreurs de validations
Utiliser la propriété
nzErrorTip
sur le composantnz-form-control
<nz-form-control nzErrorTip="Message de validation">
- Vérifier si le username est disponible. Informer l'utilisateur de l'indisponibilité d'un username.
Utiliser le la méthode
exists
sur la classeUserQueries
Permet à un utilisateur de se connecter à la plateforme.
Le formulaire doit contenir 2 champs : "username", "Mot de passe".
Le clic sur le bouton "Connexion" permet de soumettre le formulaire en appelant la méthode submit()
du composant.
- Faire le formulaire de sign in
- Rendre le username et le mot de passe obligatoires
- Rediriger l'utilisateur sur "/" en cas de succès
- Afficher les messages d'erreurs de validation pour chaque champs
- Afficher un message si le login a échoué
Vous pouvez utiliser le
NzMessageService
pour afficher des messages
Une room est une salle de discussion dans laquelle les utilisateurs peuvent s'échanger des messages.
Un utilisateur doit en amont avoir sélectionné une room pour pouvoir y poster du contenu.
-
Afficher la liste des rooms dans le menu
src/modules/room/room-menu
Utiliser la directive ngFor pour itérer sur les rooms et afficher leurs noms
-
Pouvoir naviguer vers room au clic dans le menu
-
Pouvoir ajouter une nouvelle room
Dans
src/modules/room/room-menu
Appeler la méthode open du composant
app-room-create-modal
au clic du bouton "+" Danssrc/modules/room/room-create-modal
Terminer le formulaire d'ajout d'une room en ajoutant le champs obligatire manquant
<nz-form-item> <nz-form-label nzFor="name">Nom de la room</nz-form-label> <nz-form-control nzErrorTip="Nom obligatoire"> <input class="ant-input" type="text" name="name" id="name" #nom="ngModel"> </nz-form-control> </nz-form-item>
Lors de la validation du formulaire, la méthode
onOk
sera invoquée (tel que configuré sur le composantnz-modal
) -
Sélectionner par défaut la première room de la liste
Rediriger vers la première room si il n'y a pas de roomId dans le store. Tester
this.feedStore.value.roomId
-
Ajouter ajouter les nouvelles rooms créées dynamiquement
- Sélectionner par défaut la dernière room visité par l'utilisateur en stockant l'information dans le localStorage
-
Pouvoir rédiger et envoyer un post
src/modules/input/components/feed-input
-
Afficher les posts reçues dans la room
src/modules/feed/components/feed
-
Afficher le nom de l'auteur des messages
-
Afficher la photo de l'auteur des messages
-
Afficher la date du post
-
Afficher une image si le message contient une url vers une image
-
Afficher une video si le message contient une url vers une vidéo (https://www.html5rocks.com/en/tutorials/video/basics/devstories.mp4)
-
Afficher le player de youtube si le message contient un lien youtube
-
Implémenter le bouton like
- Utiliser luxon pour formatter les date à l'aide d'un Pipe Angular
- Insérer les nouveaux posts reçues via WebSocket
- Pouvoir uploader des photos, vidéos et audios
- Pouvoir parser plusieurs type de contenus dans un seul post
- Remplacer les liens http par des balises ....
- Dans les messages, afficher les mentions
@username
en vert
- Afficher la photo de l'utilisateur connecté
- Pouvoir éditer le profile de l'utilisateur: son username et sa photo en cliquant sur le bouton dédié
- Pouvoir se déconnecter de l'application encliquant sur le bonton rouge de logout. Rediriger l'utilisateur vers le /splash/login
- Au clic sur le bouton de notifications, afficher ou masquer une barre de notification
- Dans la barre de notifications, lister toutes les notifications reçues avec : un message décrivant la notification, la photo de l'utilisateur concerné et la date
- Afficher sur fond vert les notifications non lues
- Afficher les nouvelles notifications reçues dans la popup de notification
-
Créer un service permettant de poster des notifications web
-
N'afficher les notifications Web que si la page n'est pas visible grâce à l'évènement visibilitychange
-
Rendre la notification clicable. Au clic, la notification doit rediriger soit vers un post, soit vers une room en fonction de la notification
Uncaught Error: Angular JIT compilation failed: '@angular/compiler' not loaded!
Can happen when a service class did not use the @Injectable() decorator. Check your terminal to see error details
Appears in the NgModule.imports of AppModule, but could not be resolved to an NgModule class.
May caused by an external dependency added through npm but not compiled by angular yet. Restarting the npm start
command should solve the problem
error NG8001: '...' is not a known element:
The component is probably missing from the module declaration