diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts
index e7c506f92a021ccc02772f55aaef1367b4bca067..b628cdcc86a34b627289b8c1cd5a80382b161c9d 100644
--- a/src/app/core/auth/auth.service.ts
+++ b/src/app/core/auth/auth.service.ts
@@ -7,6 +7,7 @@ import { environment } from 'environments/environment';
 import { User } from './models';
 import { ObjectStoredItem, SimpleStoredItem } from '../storage';
 import { UserAdapter } from './adapters';
+import { HttpParams } from '@angular/common/http';
 
 
 class StoredUser extends ObjectStoredItem<User> { key = 'oser-cs-user-info'; }
@@ -18,9 +19,12 @@ class StoredToken extends SimpleStoredItem { key = 'oser-cs-user-token'; }
 })
 export class AuthService {
 
-  private loginUrl = environment.apiUrl + 'auth/get-token/';
+  private loginUrl = environment.apiUrl  + 'auth/get-token/';
   private resetUrl = environment.apiUrl + 'rest-auth/password/reset/';
   private resetConfirmUrl = environment.apiUrl + 'rest-auth/password/reset/confirm/';
+  private mandatorySignatureUrl = environment.apiUrl + 'charter/'; 
+  //add the corresponding path in backend interface 
+
 
   fromGuard: boolean;
   redirectUrl: string;
@@ -81,7 +85,14 @@ export class AuthService {
   getAuthorizationHeaders(): HttpHeaders {
     return new HttpHeaders({ Authorization: 'Token ' + this.getToken() });
   }
-
+  
+  checkSignatureCharter(email: any) : Observable<Boolean> {
+    const parm = new HttpParams({fromString: 'email='+ email})
+    return this.http.get<Boolean>( this.mandatorySignatureUrl, { params:  parm}).pipe(
+      map((data: any) => {
+        return data}),
+    );
+  }
   get isLoggedIn(): boolean {
     if (this.user.get()) {
       return true;
@@ -89,6 +100,13 @@ export class AuthService {
     return false;
   }
 
+  sendSignatureCharter(email: any) : Observable<Boolean> {
+    return this.http.post<Boolean>( this.mandatorySignatureUrl+'?email=' +email,{}).pipe(
+      map((data: any) => {
+        return data}),
+    );
+  }
+  
   logout() {
     this.user.destroy();
     this.token.destroy();
diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts
index 5070b7c97539b16b023d027162da709e04c7cd01..6a6b64e3867f375a51f6562d0bb87224a5bba804 100644
--- a/src/app/login/login.component.ts
+++ b/src/app/login/login.component.ts
@@ -4,7 +4,7 @@ import { FormGroup, FormBuilder } from '@angular/forms';
 import { MatSnackBar } from '@angular/material';
 import { AuthService, MessageService } from 'app/core';
 import { of } from 'rxjs';
-import { filter, map, tap, catchError } from 'rxjs/operators';
+import { filter, map, tap, catchError, subscribeOn } from 'rxjs/operators';
 
 @Component({
   selector: 'app-login',
@@ -14,8 +14,11 @@ import { filter, map, tap, catchError } from 'rxjs/operators';
 export class LoginComponent implements OnInit {
 
   loading: boolean = false;
+  hassignedCharter = true;
   defaultRedirectUrl: string = '/membres';
+  charterUrl: string = 'inscription/student-charter';
   formGroup: FormGroup;
+  loginSuccess: boolean = false;
 
   constructor(
     private router: Router,
@@ -42,23 +45,58 @@ export class LoginComponent implements OnInit {
     });
   }
 
-  login() {
+  async login() {
+    var toto = false;
     this.loading = true;
     const { email, password } = this.formGroup.value;
     this.messageService.clear();
-    this.auth.login(email, password).pipe(
+    await this.auth.login(email, password).pipe(
+
+      map(() => this.loginSuccess = true),
       catchError(() => {
         this.messageService.error("L'identifiant ou le mot de passe est incorrect.");
+        this.loginSuccess = false;
         return of(false);
       }),
       tap(() => this.loading = false),
+
+   
       // Only continue if no error
       filter(Boolean),
       // Get redirect URL from the auth service, provided by the auth guard.
-      map(() =>this.auth.redirectUrl ? this.auth.redirectUrl : this.defaultRedirectUrl),
-      tap(() => this.snackBar.open('Connexion réussie !', 'OK', { duration: 2000 })),
-      tap((redirectUrl: string) => this.router.navigate([redirectUrl])),
-    ).subscribe();
-  }
 
+    ).subscribe({
+      complete() {
+        console.log("login unsuccess");
+      },
+    });
+
+
+      if(this.loginSuccess == true){
+       
+          this.auth.checkSignatureCharter(email).pipe(
+            catchError(() => {
+              this.hassignedCharter = false;
+
+              this.messageService.error("Vous n'avez pas signé le(s) charte(s).");
+              map(() => this.auth.redirectUrl ? this.auth.redirectUrl : this.defaultRedirectUrl),
+                tap((redirectUrl: string) => this.router.navigate([redirectUrl]));
+              return of(false);
+            }),
+            map(() => this.auth.redirectUrl ? this.auth.redirectUrl : this.defaultRedirectUrl),
+            tap(() => this.snackBar.open('Connexion réussie !', 'OK', { duration: 2000 })),
+          ).subscribe().add(() =>   
+          { 
+          if(this.hassignedCharter == false)
+          {
+            this.router.navigate([this.charterUrl]);
+          }
+          else
+          {
+            this.router.navigate([this.defaultRedirectUrl]);
+          }
+          });
+}
+    
 }
+}
\ No newline at end of file
diff --git a/src/app/members/account/edit-data/edit-data.component.html b/src/app/members/account/edit-data/edit-data.component.html
index aa2bd44a880eab16d719f9e015898e85649802f6..a6c2a1fe51d0eb0f35ec12f0daec630778dbd393 100644
--- a/src/app/members/account/edit-data/edit-data.component.html
+++ b/src/app/members/account/edit-data/edit-data.component.html
@@ -18,8 +18,12 @@
                 <mat-option value="Autre">Autre</mat-option>
               </mat-select>
             </mat-form-field>
+
             <mat-form-field class="horizontal-display" >
-              <input matInput   type="text" formControlName="nationality" placeholder="Nationalité" required>
+              <mat-label>Nationalité</mat-label>
+              <mat-select  formControlName="nationality" required>
+                    <mat-option *ngFor="let nationality of possibleNationalities" [value]="nationality.name"> {{ nationality.name }}</mat-option>
+                  </mat-select>
             </mat-form-field>
           </div>
           
@@ -82,7 +86,7 @@
 
             <mat-form-field class="horizontal-display horizontal-center">
               <mat-label>Voie</mat-label>
-              <mat-select  formControlName="classType" required>
+              <mat-select  formControlName="classType" [(value)]="classType" required>
                 <mat-option value="General">General</mat-option>
                 <mat-option value="Technologique">Technologique</mat-option>
                 <mat-option value="Professionnelle">Professionnelle</mat-option>
@@ -97,13 +101,21 @@
             </mat-form-field>
             
           </div>
+
+
+          <mat-form-field class="full-width" >
+            <mat-label>Enseignements de spécialité (entrer 'aucun' si jamais vous n'etes pas concerné) </mat-label>
+            <mat-select  formControlName="specialTeaching" required >
+              <mat-option *ngFor="let specialTeaching of setSpeciality()" [value]="specialTeaching.id">{{ specialTeaching.name }}</mat-option>
+            </mat-select>
+          </mat-form-field>
            
           
          
           <p class="text-center">Informations parentales</p>  
           <div class="form-group">
             <mat-form-field class="horizontal-display">
-              <mat-label>Activité de la mère </mat-label>
+              <mat-label>Activité de la mère </mat-label> 
               <mat-select  formControlName="motherActivity" required>
                 <mat-option *ngFor="let activity of possibleParentsActivities" [value]="activity.id">{{ activity.name }}</mat-option>
               </mat-select>
@@ -113,7 +125,7 @@
               <mat-label>Activité du père </mat-label>
               <mat-select  formControlName="fatherActivity" required>
                 <mat-option *ngFor="let activity of possibleParentsActivities" [value]="activity.id">{{ activity.name }}</mat-option>
-              </mat-select>
+              </mat-select> 
             </mat-form-field>
           </div>
           
diff --git a/src/app/members/account/edit-data/edit-data.component.ts b/src/app/members/account/edit-data/edit-data.component.ts
index 05a7a47a838a549673300c0227fd0c77f785edd6..c2f796b8d88c646e548d318886d6a5a95588c1c9 100644
--- a/src/app/members/account/edit-data/edit-data.component.ts
+++ b/src/app/members/account/edit-data/edit-data.component.ts
@@ -1,30 +1,48 @@
 import { Component, OnInit } from '@angular/core';
-import { FormGroup, FormBuilder, Validators } from '@angular/forms';
+import { FormGroup, FormBuilder, Validators, ReactiveFormsModule, FormControlName, FormControl } from '@angular/forms';
 import { Router } from '@angular/router';
 import { MatSnackBar } from '@angular/material';
 import {ActivatedRoute} from '@angular/router'
 import { PersonalData,PersonalDataService } from '../core';
 import { tap, mergeMap } from 'rxjs/operators';
 import { AuthService } from 'app/core';
-import {User} from 'app/core'
+import {User} from 'app/core';
+import {Observable} from 'rxjs';
+import {map, startWith} from 'rxjs/operators';
 
 
 
+export interface Nationality {
+  id : string;
+  name: string;
+} 
+
+
 @Component({
   selector: 'app-edit-data',
   templateUrl: './edit-data.component.html',
   styleUrls: ['./edit-data.component.scss']
 })
+
+
+
 export class EditDataComponent implements OnInit {
   personalData: PersonalData;
   formGroup : FormGroup;
   loading = false;
   public error : String = "";
   public postEditMessage : String = "" ;
+  classType="";
+  
+  myControl = new FormControl();
+
+ 
+
   public possibleParentsStatus = [
     {id:"maried",name:"Vos parents vivent ensemble"},
-    {id:"cohabitation",name:"Vos parents vivent séparément"},
-    {id:"monoparental",name:"Vous avez un seul parent"}
+    {id:"separated",name:"Vos parents vivent séparément"},
+    {id:"monoparental",name:"Vous avez un seul parent"},
+    {id:"noparents",name:"Vous ne dépendez pas de vos parents"},
   ]
 
   public possibleParentsActivities = [
@@ -40,6 +58,104 @@ export class EditDataComponent implements OnInit {
     {id:"Autre",name:"Autre"} 
   ]
 
+
+
+  public possibleNationalities: Nationality[] = [
+   {id:"AFG", name:"Afghane"},
+   {id:"ALB", name:"Albanaise"}, 
+   {id:"DZA", name:"Algérienne"}, 
+   {id:"DEU", name:"Allemande"}, 
+   {id:"USA", name:"Americaine"}, 
+   {id:"AND", name:"Andorrane"}, 
+   {id:"AGO", name:"Angolaise"}, 
+   {id:"ATG", name:"Antiguaise-et-Barbudienne"}, 
+   {id:"ARG", name:"Argentine"}, 
+   {id:"ARM", name:"Armenienne"}, 
+   {id:"AUS", name:"Australienne"}, 
+   {id:"AUT", name:"Autrichienne"}, 
+   {id:"AZE", name:"Azerbaïdjanaise"}, 
+   {id:"BHS", name:"Bahamienne"}, 
+   {id:"BHR", name:"Bahreinienne"}, 
+   {id:"BGD", name:"Bangladaise"}, 
+   {id:"BRB", name:"Barbadienne"}, 
+   {id:"BEL", name:"Belge"}, 
+  {id:"BLZ", name:"Belizienne"}, 
+  {id:"BEN", name:"Béninoise"}, 
+  {id:"BTN", name:"Bhoutanaise"}, 
+  {id:"BLR", name:"Biélorusse"}, 
+  {id:"MMR", name:"Birmane"}, 
+  {id:"GNB", name:"Bissau-Guinéenne"}, 
+  {id:"BOL", name:"Bolivienne"}, 
+  {id:"BIH", name:"Bosnienne"}, 
+  {id:"BWA", name:"Botswanaise"}, 
+  {id:"BRA", name:"Brésilienne"}, 
+  {id:"GBR", name:"Britannique"}, 
+  {id:"BRN", name:"Brunéienne"}, 
+  {id:"BGR", name:"Bulgare"}, 
+  {id:"BFA", name:"Burkinabée"}, 
+  {id:"BDI", name:"Burundaise"}, 
+  {id:"KHM", name:"Cambodgienne"}, 
+  {id:"CMR", name:"Camerounaise"}, 
+  {id:"CAN", name:"Canadienne"}, 
+  {id:"CPV", name:"Cap-verdienne"}, 
+  {id:"CAF", name:"Centrafricaine"}, 
+  {id:"CHL", name:"Chilienne"}, 
+  {id:"CHN", name:"Chinoise"}, 
+  {id:"CYP", name:"Chypriote"}, 
+  {id:"COL", name:"Colombienne"},
+  {id:"COM", name:"Comorienne"},
+  {id:"COG", name:"Congolaise"},
+  {id:"COD", name:"Congolaise"},
+  {id:"COK", name:"Cookienne"},
+  {id:"CRI", name:"Costaricaine"},
+  {id:"HRV", name:"Croate"},
+  {id:"CUB", name:"Cubaine"},
+  {id:"DNK", name:"Danoise"},
+  {id:"DJI", name:"Djiboutienne"},
+  {id:"DOM", name:"Dominicaine"},
+  {id:"DMA", name:"Dominiquaise"},
+  {id:"EGY", name:"Égyptienne"},
+  {id:"ARE", name:"Émirienne"},
+  {id:"GNQ", name:"Équato-guineenne"},
+  {id:"ECU", name:"Équatorienne"},
+  {id:"ERI", name:"Érythréenne"},
+  {id:"ESP", name:"Espagnole"},
+  {id:"TLS", name:"Est-timoraise"},
+  {id:"EST", name:"Estonienne"},
+  {id:"ETH", name:"Éthiopienne"},
+  {id:"FJI", name:"Fidjienne"},
+  {id:"FIN", name:"Finlandaise"},
+  {id:"FRA", name:"Française"},
+  {id:"GAB", name:"Gabonaise"},
+  {id:"GMB", name:"Gambienne"},
+  {id:"GEO", name:"Georgienne"},
+  {id:"GHA", name:"Ghanéenne"},
+  {id:"GRD", name:"Grenadienne"},
+  {id:"GTM", name:"Guatémaltèque"},
+  {id:"GIN", name:"Guinéenne"},
+  {id:"GUY", name:"Guyanienne"},
+  {id:"HTI", name:"Haïtienne"},
+  {id:"GRC", name:"Hellénique"},
+  {id:"HND", name:"Hondurienne"},
+  {id:"HUN", name:"Hongroise"},
+  {id:"IND", name:"Indienne"},
+  {id:"IDN", name:"Indonésienne"},
+  {id:"IRQ", name:"Irakienne"},
+  {id:"IRN", name:"Iranienne"},{id:"IRL", name:"Irlandaise"},
+  {id:"ISL", name:"Islandaise"},
+  {id:"ISR", name:"Israélienne"},
+  {id:"ITA", name:"Italienne"},
+  {id:"CIV", name:"Ivoirienne"},
+  {id:"JAM", name:"Jamaïcaine"},
+  {id:"JPN", name:"Japonaise"},
+  {id:"JOR", name:"Jordanienne"},
+  {id:"KAZ", name:"Kazakhstanaise"},
+  {id:"KEN", name:"Kenyane"},
+  {id:"KGZ", name:"Kirghize"},
+  {id:"KIR", name:"Kiribatienne"},{id:"KNA", name:"Kittitienne"},{id:"KWT", name:"Koweïtienne"},{id:"LAO", name:"Laotienne"},{id:"LSO", name:"Lesothane"},{id:"LVA", name:"Lettone"},{id:"LBN", name:"Libanaise"},{id:"LBR", name:"Libérienne"},{id:"LBY", name:"Libyenne"},{id:"LIE", name:"Liechtensteinoise"},{id:"LTU", name:"Lituanienne"},{id:"LUX", name:"Luxembourgeoise"},{id:"MKD", name:"Macédonienne"},{id:"MYS", name:"Malaisienne"},{id:"MWI", name:"Malawienne"},{id:"MDV", name:"Maldivienne"},{id:"MDG", name:"Malgache"},{id:"MLI", name:"Maliennes"},{id:"MLT", name:"Maltaise"},{id:"MAR", name:"Marocaine"},{id:"MHL", name:"Marshallaise"},{id:"MUS", name:"Mauricienne"},{id:"MRT", name:"Mauritanienne"},{id:"MEX", name:"Mexicaine"},{id:"FSM", name:"Micronésienne"},{id:"MDA", name:"Moldave"},{id:"MCO", name:"Monegasque"},{id:"MNG", name:"Mongole"},{id:"MNE", name:"Monténégrine"},{id:"MOZ", name:"Mozambicaine"},{id:"NAM", name:"Namibienne"},{id:"NRU", name:"Nauruane"},{id:"NLD", name:"Néerlandaise"},{id:"NZL", name:"Néo-Zélandaise"},
+  {id:"NPL", name:"Népalaise"},{id:"NIC", name:"Nicaraguayenne"},{id:"NGA", name:"Nigériane"},{id:"NER", name:"Nigérienne"},{id:"NIU", name:"Niuéenne"},{id:"PRK", name:"Nord-coréenne"},{id:"NOR", name:"Norvégienne"},{id:"OMN", name:"Omanaise"},{id:"UGA", name:"Ougandaise"},{id:"UZB", name:"Ouzbéke"},{id:"PAK", name:"Pakistanaise"},{id:"PLW", name:"Palaosienne"},{id:"PSE", name:"Palestinienne"},{id:"PAN", name:"Panaméenne"},{id:"PNG", name:"Papouane-Néo-Guinéenne"},{id:"PRY", name:"Paraguayenne"},{id:"PER", name:"Péruvienne"},{id:"PHL", name:"Philippine"},{id:"POL", name:"Polonaise"},{id:"PRT", name:"Portugaise"},{id:"QAT", name:"Qatarienne"},{id:"ROU", name:"Roumaine"},{id:"RUS", name:"Russe"},{id:"RWA", name:"Rwandaise"},{id:"LCA", name:"Saint-Lucienne"},{id:"SMR", name:"Saint-Marinaise"},{id:"VCT", name:"Saint-Vincentaise"},{id:"SLB", name:"Salomonaise"},{id:"SLV", name:"Salvadorienne"},{id:"WSM", name:"Samoane"},{id:"STP", name:"Santoméenne"},{id:"SAU", name:"Saoudienne"},{id:"SEN", name:"Sénégalaise"},{id:"SRB", name:"Serbe"},{id:"SYC", name:"Seychelloise"},{id:"SLE", name:"Sierra-Léonaise"},{id:"SGP", name:"Singapourienne"},{id:"SVK", name:"Slovaque"},{id:"SVN", name:"Slovène"},{id:"SOM", name:"Somalienne"},{id:"SDN", name:"Soudanaise"},{id:"LKA", name:"Sri-Lankaise"},{id:"ZAF", name:"Sud-Africaine"},{id:"KOR", name:"Sud-Coréenne"},{id:"SSD", name:"Sud-Soudanaise"},{id:"SWE", name:"Suédoise"},{id:"CHE", name:"Suisse"},{id:"SUR", name:"Surinamaise"},{id:"SWZ", name:"Swazie"},{id:"SYR", name:"Syrienne"},{id:"TJK", name:"Tadjike"},{id:"TZA", name:"Tanzanienne"},{id:"TCD", name:"Tchadienne"},{id:"CZE", name:"Tchèque"},{id:"THA", name:"Thaïlandaise"},{id:"TGO", name:"Togolaise"},{id:"TON", name:"Tonguienne"},{id:"TTO", name:"Trinidadienne"},{id:"TUN", name:"Tunisienne"},{id:"TKM", name:"Turkmène"},{id:"TUR", name:"Turque"},{id:"TUV", name:"Tuvaluane"},{id:"UKR", name:"Ukrainienne"},{id:"URY", name:"Uruguayenne"},{id:"VUT", name:"Vanuatuane"},{id:"VAT", name:"Vaticane"},{id:"VEN", name:"Vénézuélienne"},{id:"VNM", name:"Vietnamienne"},{id:"YEM", name:"Yéménite"},{id:"ZMB", name:"Zambienne"},{id:"ZWE", name:"Zimbabwéenne"}
+]
+
   public possibleSchools = [
     {id:"Jean Perrin (Longjumeau)", name:"Jean Perrin (Longjumeau)"},
     {id:"Robert Doisneau (Corbeil-Essonnes)",name:"Robert Doisneau (Corbeil-Essonnes)"},
@@ -48,8 +164,7 @@ export class EditDataComponent implements OnInit {
     {id:"Charles Péguy (Bobigny)",name:"Charles Péguy (Bobigny)"},
     {id:"Jean Jaurès (Chatenay-Malabry)",name:"Jean Jaurès (Chatenay-Malabry)"},
     {id:"Parc des Loges (Evry)",name:"Parc des Loges (Evry)"},
-    {id:"Jean-Baptiste Corot (Savigny-sur-Orge)",name:"Jean-Baptiste Corot (Savigny-sur-Orge)"},
-    {id:"Gaspard Monge (Savigny-sur-Orge)",name:"Gaspard Monge (Savigny-sur-Orge)"},
+    {id:"Jean Jaurès (Argenteuil)",name:"Jean Jaurès (Argenteuil)"},
   ]
 
   public possibleScholarships = [
@@ -62,8 +177,114 @@ export class EditDataComponent implements OnInit {
     {id:"no",name:"Non"},
   ]
 
+  
+  public possibleSpecialitiesTechno = [
+    {id:"Aucun",name:"Aucun"},
+    {id:"STI2D",name:"Sciences et technologies de l’industrie et du développement durable"},
+    {id:"STD2A",name:"Sciences et technologies du design et des arts appliqués"},
+    {id:"STMG",name:"Sciences et technologies du management et de la gestion"},
+    {id:"ST2S",name:"Sciences et technologies de la santé et du social"},
+    {id:"STL",name:"Sciences et technologies de laboratoire"},
+    {id:"S2TMD",name:"Sciences et techniques du théâtre, de la musique et de la danse"},
+    {id:"STHR",name:"Sciences et technologies de l'hôtellerie et de la restauration"},
+    {id:"STAV",name:"Sciences et technologies de l'agronomie et du vivant"},
+
+  ]
+
 
+  public possibleSpecialitiesGeneral = [
+    {id:"Aucun",name:"Tu es dans une filière générale, tu n'as pas besoin de remplir cette case."},
 
+  ]
+
+  public possibleSpecialitiesPro = [
+    {id:"Aucun",name:"Aucun"},
+    {id:"Accompagnement soins et services à la personne",name:"Accompagnement soins et services à la personne"},
+    {id:"Aéronautique",name:"Aéronautique"},
+    {id:"Aménagement et finition du bâtiment",name:"Aménagement et finition du bâtiment"},
+    {id:"Animation - enfance et personnes âgées",name:"Animation - enfance et personnes âgées"},
+    {id:"Artisanat et métiers d'art",name:"Artisanat et métiers d'art"},
+    {id:"Assistance à la gestion des organisations et de leurs activités",name:"Assistance à la gestion des organisations et de leurs activités"},
+    {id:"Aviation générale",name:"Aviation générale"},
+    {id:"Bio-industries de transformation",name:"Bio-industries de transformation"},
+    {id:"Boucher charcutier traiteur",name:"Boucher charcutier traiteur"},
+    {id:"Boulanger - pâtissier",name:"Boulanger - pâtissier"},
+    {id:"Commerce",name:"Commerce"},
+    {id:"Commercialisation et services en restauration",name:"Commercialisation et services en restauration"},
+    {id:"Conducteur transport routier marchandises",name:"Conducteur transport routier marchandises"},
+    {id:"Construction des carrosseries",name:"Construction des carrosseries"},
+    {id:"Cuisine",name:"Cuisine"},
+    {id:"Esthétique cosmétique parfumerie",name:"Esthétique cosmétique parfumerie"},
+    {id:"Étude et définition de produits industriels",name:"Étude et définition de produits industriels"},
+    {id:"Etude et réalisation d'agencement",name:"Etude et réalisation d'agencement"},
+    {id:"Façonnage de produits imprimés, routage",name:"Façonnage de produits imprimés, routage"},
+    {id:"Fonderie",name:"Fonderie"},
+    {id:"Gestion administration",name:"Gestion administration"},
+    {id:"Gestion des pollutions et protection de l'environnement",name:"Gestion des pollutions et protection de l'environnement"},
+    {id:"Hygiène, propreté et stérilisation",name:"Hygiène, propreté et stérilisation"},
+    {id:"Installateur en chauffage, climatisation et énergies renouvelables ",name:"Installateur en chauffage, climatisation et énergies renouvelables "},
+    {id:"Interventions sur le patrimoine bâti",name:"Interventions sur le patrimoine bâti"},
+    {id:"Logistique",name:"Logistique"},
+    {id:"Maintenance des équipements industriels",name:"Maintenance des équipements industriels"},
+    {id:"Maintenance des matériels",name:"Maintenance des matériels"},
+    {id:"Maintenance des systèmes de production connectés",name:"Maintenance des systèmes de production connectés"},
+    {id:"Maintenance des véhicules",name:"Maintenance des véhicules"},
+    {id:"Maintenance et Efficacité Energétique",name:"Maintenance et Efficacité Energétique"},
+    {id:"Maintenance nautique",name:"Maintenance nautique"},
+    {id:"Menuiserie Aluminium-Verre",name:"Menuiserie Aluminium-Verre"},
+    {id:"Métiers de l'accueil",name:"Métiers de l'accueil"},
+    {id:"Métiers de l'électricité et de ses environnements connectés",name:"Métiers de l'électricité et de ses environnements connectés"},
+    {id:"Métiers de la coiffure",name:"Métiers de la coiffure"},
+    {id:"Métiers de la mode - vêtements",name:"Logistique"},
+    {id:"Métiers de la sécurité",name:"Métiers de la sécurité"},
+    {id:"Métiers du commerce et de la vente",name:"Métiers du commerce et de la vente"},
+    {id:"Métiers du cuir",name:"Métiers du cuir"},
+    {id:"Métiers du Froid et des Énergies Renouvelables",name:"Métiers du Froid et des Énergies Renouvelables"},
+    {id:"Métiers du pressing et de la blanchisserie",name:"Métiers du pressing et de la blanchisserie"},
+    {id:"Métiers et arts de la pierre",name:"Métiers et arts de la pierre"},
+    {id:"Microtechniques",name:"Microtechniques"},
+    {id:"Modélisation et prototypage 3D",name:"Modélisation et prototypage 3D"},
+    {id:"Optique lunetterie",name:"Optique lunetterie"},
+    {id:"Organisation de transport de marchandises",name:"Organisation de transport de marchandises"},
+    {id:"Ouvrage du bâtiment : métallerie",name:"Ouvrage du bâtiment : métallerie"},
+    {id:"Perruquier posticheur",name:"Perruquier posticheur"},
+    {id:"Photographie",name:"Photographie"},
+    {id:"Pilote de ligne de production",name:"Pilote de ligne de production"},
+    {id:"Plastiques et composites",name:"Plastiques et composites"},
+    {id:"Poissonnier écailler traiteur",name:"Poissonnier écailler traiteur"},
+    {id:"Procédés de la chimie, de l'eau et des papiers-cartons",name:"Procédés de la chimie, de l'eau et des papiers-cartons"},
+    {id:"Productique mécanique",name:"Productique mécanique"},
+    {id:"Prothèse dentaire",name:"Prothèse dentaire"},
+    {id:"Réalisation de produits imprimés et plurimédia",name:"Réalisation de produits imprimés et plurimédia"},
+    {id:"Réparation des carrosseries",name:"Réparation des carrosseries"},
+    {id:"Services de proximité et vie locale",name:"Services de proximité et vie locale"},
+    {id:"Systèmes numériques",name:"Systèmes numériques"},
+    {id:"Technicien Gaz",name:"Technicien Gaz"},
+    {id:"Technicien constructeur bois",name:"Technicien constructeur bois"},
+    {id:"Technicien de maintenance de systèmes énergétiques et climatiques",name:"Technicien de maintenance de systèmes énergétiques et climatiques"},
+    {id:"Technicien d'études du bâtiment",name:"Technicien d'études du bâtiment"},
+    {id:"Technicien du froid et du conditionnement de l'air",name:"Technicien du froid et du conditionnement de l'air"},
+    {id:"Technicien d'usinage",name:"Technicien d'usinage"},
+    {id:"Technicien de fabrication bois et matériaux associés",name:"Technicien de fabrication bois et matériaux associés"},
+    {id:"Technicien de maintenance de systèmes énergétiques et climatiques",name:"Technicien de maintenance de systèmes énergétiques et climatiques"},
+    {id:"Technicien du bâtiment : organisation et réalisation du gros oeuvre",name:"Technicien du bâtiment : organisation et réalisation du gros oeuvre"},
+    {id:"Technicien en appareillage orthopédique",name:"Technicien en appareillage orthopédique"},
+    {id:"Technicien en chaudronnerie industrielle",name:"Technicien en chaudronnerie industrielle"},
+    {id:"Technicien en installation des systèmes énergétiques et climatiques",name:"Technicien en installation des systèmes énergétiques et climatiques"},
+    {id:"Technicien en prothèse dentaire",name:"Technicien en prothèse dentaire"},
+    {id:"Technicien en réalisation de produits mécaniques",name:"Technicien en réalisation de produits mécaniques"},
+    {id:"Technicien géomètre topographe",name:"Technicien géomètre topographe"},
+    {id:"Technicien menuisier agenceur",name:"Technicien menuisier agenceur"},
+    {id:"Technicien modeleur",name:"Technicien modeleur"},
+    {id:"Technicien outilleur",name:"Technicien outilleur"},
+    {id:"Techniques d'interventions sur installations nucléaires",name:"Techniques d'interventions sur installations nucléaires"},
+    {id:"Traitements des matériaux",name:"Traitements des matériaux"},
+    {id:"Transport",name:"Transport"},
+    {id:"Transport fluvial",name:"Transport fluvial"},
+    {id:"Travaux publics",name:"Travaux publics"},
+    {id:"Vente",name:"Vente"},
+
+  ]
   constructor(
     private route: ActivatedRoute,
     private personalDataService : PersonalDataService,
@@ -72,12 +293,24 @@ export class EditDataComponent implements OnInit {
     private auth: AuthService,
     private snackBar: MatSnackBar,
     
-  ) { }
-
+  ) {  }
+  filteredOptions: Observable<Nationality[]>;
 
   ngOnInit() {
     this.personalData = this.route.snapshot.data['personalData'];
-    this.createForm()
+    this.createForm();
+    this.classType=this.personalData.classType;
+    
+  }
+
+  public _filter(value: string): string[] {
+    const filterValue = value.toLowerCase();
+    let entryNatList : Array<string>;
+    for (let nationality of this.possibleNationalities)
+    {
+      entryNatList.push(nationality.name);
+    }
+ return entryNatList.filter(option => option.toLowerCase().includes(filterValue));
   }
 
   
@@ -111,6 +344,21 @@ export class EditDataComponent implements OnInit {
  
   }
 
+  setSpeciality(){
+  if (this.classType=="Technologique")
+        {
+         return this.possibleSpecialitiesTechno;
+        }
+  else if (this.classType=="Professionnelle") 
+      {
+     return this.possibleSpecialitiesPro;
+       }
+  else (this.classType=="General") 
+      {
+         return this.possibleSpecialitiesGeneral;
+       }
+  }
+
   submit(){
     this.loading = true;
     const {firstName,lastName,gender,nationality,classType,addressNumber,street,zipCode,city,personalPhone,parentsPhone,parentsEmail,school,grade,specialTeaching,scholarship,fatherActivity,motherActivity,parentsStatus,dependantsNumber} = this.formGroup.value;
diff --git a/src/app/signup/core/registration.model.ts b/src/app/signup/core/registration.model.ts
index 66ec0669fa892235a549a7df8340671b849e54da..0473dc82961b8b62306c277ac87e4910a2da6b2a 100644
--- a/src/app/signup/core/registration.model.ts
+++ b/src/app/signup/core/registration.model.ts
@@ -5,7 +5,8 @@ class RegistrationSchema {
   email: string;
   firstName: string;
   lastName: string;
-  phoneNumber: string;
+  dateOfBirth : Date;
+  phoneNumber : string;
 }
 
 export class Registration extends RegistrationSchema {
@@ -28,7 +29,8 @@ export class RegistrationAdapter {
       email: obj.email,
       first_name: obj.firstName,
       last_name: obj.lastName,
-      phone_number: obj.phoneNumber,
+      dateOfBirth : obj.dateOfBirth,
+      phone_number : obj.phoneNumber,
     }
   }
 }
diff --git a/src/app/signup/parents-charter/parents-charter.component.html b/src/app/signup/parents-charter/parents-charter.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..b38f6a5dfb08392676f53d57d891db00c5a02e94
--- /dev/null
+++ b/src/app/signup/parents-charter/parents-charter.component.html
@@ -0,0 +1,94 @@
+<app-form-page >
+  <h1>
+    Signature de l'accord des parents
+  </h1>
+  <a>
+    Cette partie de l'inscription est à destination de tes parents.
+  </a>
+  <h2>
+    Qu'est-ce que OSER ?
+  </h2>
+  <p>
+    OSER est une association étudiante de CentraleSupélec affiliée au programme national des <a>Cordées de la Réussite</a>. 
+    Elle propose à des collégien·ne·s et des lycéen·ne·s des <strong class=important>séances de tutorat</strong> d’ouverture culturelle et scientifique, 
+    des <strong class=important>sorties</strong> en Île-de-France, ainsi que de nombreux projets incluant des voyages et des stages leur permettant de vivre 
+    de nombreuses expériences enrichissantes. <a>L’objectif ?</a> Permettre à nos tutoré·e·s de développer leur aisance à l’oral, 
+    leur esprit critique, le travail d’équipe ainsi qu’enrichir leur culture générale. Enfin, les tutoré·e·s peuvent compter 
+    sur leurs tuteurs et tutrices pour les guider dans leur orientation. 
+  </p>
+  <p>    
+  Pour plus d’informations, vous pouvez nous contacter par mail : <a href="mailto:contact@oser-cs.fr" >contact@oser-cs.fr</a>.
+  </p>
+    
+  
+  
+  <a>
+    <mat-checkbox class="text-center" [checked]="$state_general" (click)="toggleGeneral()">J'autorise mon enfant à participer à OSER.</mat-checkbox>
+  </a>
+  <p>
+    <mat-hint>
+      Cette signature est obligatoire.
+    </mat-hint>
+  </p>
+  <h2>
+    Quelles sont les données récupérées par OSER ?
+  </h2>
+  <p>
+  Dans le cadre de la récente mise en place du <a>RGPD</a> (Règlement Général sur la Protection des Données), nous aimerions attirer 
+  votre attention sur les collectes d’informations qu’OSER effectue. Les données que nous récoltons sont les coordonnées de votre enfant,
+  celles des personnes à contacter en cas d’urgence, ainsi que des données sociales qui nous sont indispensables pour justifier 
+  nos activités auprès des <strong class=important>organismes de subventions publics</strong> (région, département et rectorat). 
+  La collecte de ces données se fait lors de l’inscription à OSER via un formulaire sur notre site internet en début d’année 
+  et peut aussi se faire lors des inscriptions aux divers projets proposés par l’association. 
+  Le <strong class=important>stockage de ces informations</strong> se fait en partie dans un Google Drive accessible aux membres du bureau de l’association, 
+  sur notre site internet et en partie au format papier. Les documents papiers sont conservés sous clés. <a>Nous nous engageons 
+  à ce que seuls les tuteurs et tutrices de l’association aient accès aux informations collectées et à ce qu’ells soient exclusivement utilisées
+  dans le cadre des actions d’OSER.</a>
+  </p>
+  <p>
+  De plus, nous vous informons que la communication avec les lycéen·ne·s se fait via l’application <strong class=important>WhatsApp</strong>. 
+  Cet outil nous permet de leur rappeler les dates des prochaines séances, de leur communiquer des informations sur nos 
+  projets et de répondre à leurs questions.
+  </p>
+  <p>
+    Les données récoltées peuvent être modifiées à tout moment via l'onglet "Mon compte" sur le site. Vous pouvez également demander à tout moment 
+    la supression des données par mail : <a href="mailto:contact@oser-cs.fr" >contact@oser-cs.fr</a> 
+  </p>
+
+  <a>
+    <mat-checkbox class="text-center" [checked]="$state_data" (click)="toggleData()">J'autorise OSER à récupérer les données de mon enfant.</mat-checkbox>
+  </a>
+  <p>
+    <mat-hint>
+      Cette signature est obligatoire.
+    </mat-hint>
+  </p>
+
+  <h2>
+    Autorisation de droit à l'image
+  </h2>
+  <p>
+    En cochant la case ci-dessous, vous autorisez les tuteurs et tutrices d’OSER à prendre des <strong class=important>photos</strong> et des <strong class=important>vidéos</strong> représentant votre enfant, 
+    lors de sa présence en séance de tutorat et lors des activités organisées par l'association (sorties ou projets).
+    Ces films et/ou photos peuvent être utilisées par <a>OSER</a> ainsi que <a>CentraleSupélec</a> sur des outils de communication internes et 
+    externes (site internet, réseaux sociaux, présentation en séance) afin de présenter nos activités aux financeurs et de faire 
+    de la publicité auprès des tutoré·e·s pour les projets pour les années à venir. 
+    
+  </p>
+
+  
+  <mat-checkbox class="text-center" [checked]="$state_image" (click)="toggleImage()">J'autorise OSER à prendre en photo/vidéo mon enfant.</mat-checkbox>
+  <p>
+      <mat-hint>
+        Cette signature n'est pas obligatoire.
+      </mat-hint>
+  </p>
+
+  <div class="text-center">
+    <button mat-raised-button color="primary"  (click)="signChart()" [disabled]="!toggleSuivant()" routerLink='/membres/compte/modifier_donnees'>
+      Terminer l'inscription
+  </button>
+  </div>
+
+
+</app-form-page>
\ No newline at end of file
diff --git a/src/app/signup/parents-charter/parents-charter.component.scss b/src/app/signup/parents-charter/parents-charter.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e5976436baf8cd5980b0d80f3a3fba336a13c82b
--- /dev/null
+++ b/src/app/signup/parents-charter/parents-charter.component.scss
@@ -0,0 +1,4 @@
+
+.important{
+    color: rgb(17, 180, 185);
+  }
\ No newline at end of file
diff --git a/src/app/signup/parents-charter/parents-charter.component.ts b/src/app/signup/parents-charter/parents-charter.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..378046e127ff157db75f32638068f43ecf48d360
--- /dev/null
+++ b/src/app/signup/parents-charter/parents-charter.component.ts
@@ -0,0 +1,54 @@
+import { Component, OnInit } from '@angular/core';
+import { AuthService } from 'app/core';
+
+import { Registration, RegistrationService, PasswordErrorStateMatcher,PersonnalData,PersonnalDataService } from '../core';
+import { StudentSignupComponent } from '../student-signup/student-signup.component';
+
+@Component({
+  selector: 'app-parents-charter',
+  templateUrl: './parents-charter.component.html',
+  styleUrls: ['./parents-charter.component.scss']
+})
+export class ParentsCharterComponent implements OnInit {
+
+  state_general:boolean;
+  state_data:boolean;
+  state_image:boolean;
+  state_button:boolean;
+  
+
+  constructor(    
+    private auth: AuthService,
+    ) { }
+
+  ngOnInit() {
+   
+  }
+
+  toggleGeneral(){
+    this.state_general=!this.state_general;
+  }
+  toggleData(){
+    this.state_data=!this.state_data;
+  }
+
+  toggleImage(){
+    this.state_image=!this.state_image;
+  }
+
+  toggleSuivant(){
+    this.state_button = !this.state_general || !this.state_data;
+    return !this.state_button;
+  }
+
+  submit(){
+    
+
+  }
+  // send post to url
+  signChart()
+  {
+    console.log("signChart");
+    this.auth.sendSignatureCharter(this.auth.getUserSnapshot().email).subscribe();
+  }
+}
diff --git a/src/app/signup/signup-routing.module.ts b/src/app/signup/signup-routing.module.ts
index d378be52437b82248776985325ee48fa50940b0c..8cf197f901017acdec105abcdae8274ec8d4fc58 100644
--- a/src/app/signup/signup-routing.module.ts
+++ b/src/app/signup/signup-routing.module.ts
@@ -1,6 +1,10 @@
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
+import { StudentCharterComponent } from './student-charter/student-charter.component';
 import { StudentSignupComponent } from './student-signup/student-signup.component';
+import { ValidEmailComponent } from './valid-email/valid-email.component';
+import { WaitingEmailVerificationComponent } from './waiting-email-verification/waiting-email-verification.component';
+import { ParentsCharterComponent } from './parents-charter/parents-charter.component';
 
 
 const routes: Routes = [
@@ -8,6 +12,23 @@ const routes: Routes = [
     path: '',
     component: StudentSignupComponent
   },
+  {
+    path:'waiting',
+    component : WaitingEmailVerificationComponent
+  },
+  {
+    path:'valid-email',
+    component : ValidEmailComponent
+  },
+  {
+    path:'student-charter',
+    component : StudentCharterComponent
+  },
+  {
+    path:'parents-charter',
+    component : ParentsCharterComponent
+  }
+
 ];
 
 @NgModule({
diff --git a/src/app/signup/signup.module.ts b/src/app/signup/signup.module.ts
index 245b3c29f1ab39ba7c6324f80c88bac1bf9fdaa2..59ca4f11f7040d90ae78a5a114683f4299d5e424 100644
--- a/src/app/signup/signup.module.ts
+++ b/src/app/signup/signup.module.ts
@@ -18,10 +18,18 @@ import {
 import { SharedModule } from 'app/shared';
 import { SignupRoutingModule } from './signup-routing.module';
 import { StudentSignupComponent } from './student-signup/student-signup.component';
+import { WaitingEmailVerificationComponent } from './waiting-email-verification/waiting-email-verification.component';
+import { ValidEmailComponent } from './valid-email/valid-email.component';
+import { StudentCharterComponent } from './student-charter/student-charter.component';
+import { ParentsCharterComponent } from './parents-charter/parents-charter.component';
 
 @NgModule({
   declarations: [
     StudentSignupComponent,
+    WaitingEmailVerificationComponent,
+    ValidEmailComponent,
+    StudentCharterComponent,
+    ParentsCharterComponent,
   ],
   imports: [
     CommonModule,
diff --git a/src/app/signup/student-charter/student-charter.component.html b/src/app/signup/student-charter/student-charter.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..7ec23eb9456e9c5658f2276f32e7de64703c3dc7
--- /dev/null
+++ b/src/app/signup/student-charter/student-charter.component.html
@@ -0,0 +1,62 @@
+<app-form-page>
+  <h1>
+    Signature charte du tutoré
+  </h1>
+  <p>
+    Nous allons te présenter la charte du tutoré.
+  </p>
+  <p>
+    Tu vas devoir la lire <b>attentivement</b> et la signer pour continuer ton inscription.
+  </p>
+  <h2>
+    Charte du tutoré 
+  </h2>
+  <p>
+    Tu t’es inscrit·e à OSER, <strong class=important>bienvenue à toi</strong> ! 
+    Afin de passer une année formidable, nous te demandons de t’engager sur <a>trois</a> points 
+    concernant les différentes activités d’OSER. De notre côté, 
+    nous nous engageons à t’accueillir à chaque séance et à te proposer des <strong class=important>séances de tutorat</strong>, 
+    des <strong class=important>sorties</strong> et des <strong class=important>projets</strong> enrichissants et passionnants.
+Voici donc ces trois points :
+    </p>
+        <p>
+        • Tu  t’engages à être présent·e, à l’heure, aux séances de tutorat, et à nous prévenir 
+        lorsque tu as un empêchement. Il en va de même pour les sorties et les projets : 
+        il est <a>capital</a> que tu préviennes un membre de l’association si tu ne peux plus venir.
+      </p>
+        <p>
+          • Tu t’engages à <strong class=important>respecter</strong> les autres tutoré·e·s ainsi que les tuteurs et tutrices pendant les séances, 
+          les sorties et les projets.
+        </p>
+        <p>
+        • Tu t’engages à suivre les <a>consignes de sécurité</a> et d’encadrement des tuteurs et des tutrices, 
+        notamment lors des sorties et des projets.
+        </p>
+        <p>
+    Enfin, pour que les activités d’OSER soient vraiment intéressantes pour toi, 
+    nous pensons qu’il est important que tu <strong class=important>participes activement</strong> aux séances, 
+    aux sorties et aux projets.
+        </p>
+      
+
+      
+      <a>
+      <mat-checkbox class="text-center" [checked]="$state" (click)="toggle()">J'ai lu la charte du tutoré et 
+      je m'engage à la respecter.</mat-checkbox>
+      </a>
+      <p>
+        <mat-hint>
+          Cette signature est obligatoire.
+        </mat-hint>
+      </p>
+      
+
+        <div class="text-center">
+          <button mat-raised-button color="primary"   [disabled]="!state" routerLink='/inscription/parents-charter'>
+            Suivant
+        </button>
+        </div>
+
+
+
+</app-form-page>
\ No newline at end of file
diff --git a/src/app/signup/student-charter/student-charter.component.scss b/src/app/signup/student-charter/student-charter.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..2876d8f87f3be02e7888a79273b99d8a69c048b8
--- /dev/null
+++ b/src/app/signup/student-charter/student-charter.component.scss
@@ -0,0 +1,23 @@
+.checkbox-field {
+    display: block;
+    margin: .5em 0;
+  }
+  .form-group{
+    display:flex;
+    flex-direction: row;
+    justify-content: space-between;
+  }
+  .horizontal-display{
+    width:45%;
+  }
+  .adress-input{
+    margin:5px;
+  }
+  
+  .quarter-display{
+    width:25%;
+  }
+
+  .important{
+    color: rgb(17, 180, 185);
+  }
\ No newline at end of file
diff --git a/src/app/signup/student-charter/student-charter.component.ts b/src/app/signup/student-charter/student-charter.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c06c0a4269439a4a98c63402fdf29c96fd8ae240
--- /dev/null
+++ b/src/app/signup/student-charter/student-charter.component.ts
@@ -0,0 +1,35 @@
+import { Component, OnInit } from '@angular/core';
+import { StaticInjector } from '@angular/core/src/di/injector';
+import { Observable, BehaviorSubject } from 'rxjs';
+import { HttpClient } from '@angular/common/http';
+
+
+@Component({
+  selector: 'app-student-charter',
+  templateUrl: './student-charter.component.html',
+  styleUrls: ['./student-charter.component.scss']
+})
+export class StudentCharterComponent implements OnInit {
+  
+
+  state:boolean;
+  // private studentCharterUrl = environment.apiUrl + ''; 
+
+
+  constructor() { }
+
+  ngOnInit() {
+   
+  }
+
+  toggle(){
+    this.state=!this.state;
+  }
+
+  // sendStudentSignatureCharter(email: string, state:boolean) : Observable<boolean> {
+  //   return this.http.post<any>(this.studentCharterUrl, { params: email, state }).pipe(
+  //     map(() => true
+  //   ));
+  // }
+
+}
diff --git a/src/app/signup/student-signup/student-signup.component.html b/src/app/signup/student-signup/student-signup.component.html
index 31e460d98d2eb944c214c92d8d263b7074be2824..6a522586b8876e9c937dd7978a91045576b207a2 100644
--- a/src/app/signup/student-signup/student-signup.component.html
+++ b/src/app/signup/student-signup/student-signup.component.html
@@ -18,20 +18,27 @@
       <input matInput type="text" formControlName="lastName" placeholder="Nom" required>
     </mat-form-field>
 
+      <!--Date of birth-->
+      <mat-form-field class="full-width">
+        <input matInput type="date" formControlName="dateOfBirth" placeholder="Date de naissance" required>
+      </mat-form-field>
+
     <!-- Email -->
     <mat-form-field class="full-width">
-      <input matInput type="email" formControlName="email" placeholder="Adresse email" required>
+      <input matInput type="email" formControlName="email" placeholder="Adresse email" onkeyup="this.value = this.value.toLowerCase();" required>
       <mat-hint>
         Elle te servira d'identifiant de connexion.
       </mat-hint>
     </mat-form-field>
 
-    <mat-form-field class="full-width">
-      <input matInput type="tel" formControlName="phoneNumber" placeholder="Numéro de téléphone" required>
+
+
+    <!-- <mat-form-field class="full-width">
+      <input matInput type="tel" minlength="10" maxlength="10" formControlName="phoneNumber" placeholder="Numéro de téléphone" required>
       <mat-hint>
         Il nous permettra de te contacter en cas de nécessité.
       </mat-hint>
-    </mat-form-field>
+    </mat-form-field> -->
 
 
     <p>
@@ -54,7 +61,7 @@
 
     <div class="text-center">
       <button mat-raised-button color="primary" [disabled]="!formGroup.valid || loading">
-        M'inscrire
+        Suivant
         <app-load-spinner *ngIf="loading" [block]="false"></app-load-spinner>
       </button>
     </div>
diff --git a/src/app/signup/student-signup/student-signup.component.ts b/src/app/signup/student-signup/student-signup.component.ts
index 5f04fc109e6b3325e95958f359deb7c840f079f2..319ea5b2173c337e30e0c959f00468691977e26c 100644
--- a/src/app/signup/student-signup/student-signup.component.ts
+++ b/src/app/signup/student-signup/student-signup.component.ts
@@ -73,6 +73,7 @@ export class StudentSignupComponent implements OnInit {
       firstName: '',
       lastName: '',
       email: ['', Validators.email],
+      dateOfBirth:'',
       phoneNumber: '',
       gender:'',
       adressNumber:'',
@@ -108,32 +109,60 @@ export class StudentSignupComponent implements OnInit {
   toggleShowPersonnalDataForm(){
     this.showPersonnalDataForm = !this.showPersonnalDataForm;
   }
+
   submit() {
     this.loading = true;
-    const {email,firstName,lastName,phoneNumber} = this.formGroup.value
+    const {email,firstName,lastName,dateOfBirth,phoneNumber} = this.formGroup.value
     //const {gender,adressNumber,street,zipCode,city,personnalPhone,parentsPhone,parentsEmail,school,grade,section,specialTeaching,scholarship,fatherActivity,motherActivity,parentsStatus,dependantsNumber} = this.formGroup.value;
-    const registration: Registration = {email,firstName,lastName,phoneNumber};
+    const registration: Registration = {email,firstName,lastName,dateOfBirth,phoneNumber};
    // const personnalData: PersonnalData = {gender,adressNumber,street,zipCode,city,personnalPhone,parentsPhone,parentsEmail,school,grade,section,specialTeaching,scholarship,fatherActivity,motherActivity,parentsStatus,dependantsNumber};
    
     const password: string = this.formGroup.controls.password.value;
-    this.registrationService.create(registration, password).pipe(
-      mergeMap(() => this.auth.login(registration.email, password)),
-      tap(() => this.snackBar.open(
-        `Ton compte a été créé ! Tu es maintenant connecté.`,
-        'OK',
-        { duration: 3000 },
+    
+    // this.registrationService.create(registration, password).pipe(
+    //   mergeMap(() => this.auth.login(registration.email, password)),
+    //   tap(() => this.snackBar.open(
+    //     `Ton compte a été créé ! Tu es maintenant connecté.`,
+    //     'OK',
+    //     { duration: 3000 },
+    //   )),
+    //   tap(()=> this.error = ""),
+    //   tap(() => this.loading = false),
+    //   tap(() => {
+    //    setTimeout(()=>{
+    //       this.router.navigate(['inscription/waiting'])
+          
+    //     },3000)})
+      
+    // ).subscribe(
+    //   () => {},
+    //   (error) => { 
+        
+
+    //     this.loading=false
+        
+    //     if(error.error.email){
+    //       this.error = "Erreur, cet email est déjà utilisé !"
+    //     }
+    //   } 
+    // );
+
+
+      this.registrationService.create(registration, password).pipe(tap(() => this.snackBar.open(
+        `Les informations sont valides ! Nous allons t'envoyer un mail d'activation.`,'OK',
+        { duration: 2000 },
       )),
       tap(()=> this.error = ""),
       tap(() => this.loading = false),
       tap(() => {
-       setTimeout(()=>{
-          this.router.navigate(['./membres/compte/donnees'])
+      setTimeout(()=>{
+          this.router.navigate(['inscription/waiting'])
           
-        },3000)})
-      
-    ).subscribe(
-      () => {},
-      (error) => { 
+        },2000)})
+
+      ).subscribe(
+        () => {},
+        (error) => { 
         
 
         this.loading=false
@@ -151,4 +180,5 @@ export class StudentSignupComponent implements OnInit {
     //   (error) => this.loading = false,
     // );
   }
+
 }
diff --git a/src/app/signup/valid-email/valid-email.component.html b/src/app/signup/valid-email/valid-email.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..a126e50a24ac480910cc9d387736abd0619920c3
--- /dev/null
+++ b/src/app/signup/valid-email/valid-email.component.html
@@ -0,0 +1,14 @@
+<app-form-page>
+  <h2>
+    Adresse email validée !
+  </h2>
+  <p>
+    Tu viens de valider ton adresse email ! Il ne reste plus que quelques étapes avant la fin de l'inscription.
+  </p>
+
+  <div class="text-center">
+    <button mat-raised-button color="primary" routerLink='/inscription/student-charter' >
+      Suivant
+    </button>
+  </div>
+</app-form-page>
diff --git a/src/app/signup/valid-email/valid-email.component.scss b/src/app/signup/valid-email/valid-email.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..dfbe271ae99bd553d6ca059e4c6c01ef988dc191
--- /dev/null
+++ b/src/app/signup/valid-email/valid-email.component.scss
@@ -0,0 +1,19 @@
+.checkbox-field {
+    display: block;
+    margin: .5em 0;
+  }
+  .form-group{
+    display:flex;
+    flex-direction: row;
+    justify-content: space-between;
+  }
+  .horizontal-display{
+    width:45%;
+  }
+  .adress-input{
+    margin:5px;
+  }
+  
+  .quarter-display{
+    width:25%;
+  }
\ No newline at end of file
diff --git a/src/app/signup/valid-email/valid-email.component.ts b/src/app/signup/valid-email/valid-email.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1c65e341938f0bb9fc7898660b08912cc24ecad1
--- /dev/null
+++ b/src/app/signup/valid-email/valid-email.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-valid-email',
+  templateUrl: './valid-email.component.html',
+  styleUrls: ['./valid-email.component.scss']
+})
+export class ValidEmailComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
diff --git a/src/app/signup/waiting-email-verification/waiting-email-verification.component.html b/src/app/signup/waiting-email-verification/waiting-email-verification.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..5eb8bafbb366c69098fa31e258b00e1a7270e3f7
--- /dev/null
+++ b/src/app/signup/waiting-email-verification/waiting-email-verification.component.html
@@ -0,0 +1,12 @@
+<app-form-page>
+  <h1>
+    Vérification de l'adresse email 
+  </h1>
+  <p>
+    Nous venons de t'envoyer un mail sur l'adresse renseignée.
+  </p>
+  <p>
+    Pour continuer ton inscription, il faut cliquer sur le lien de d'activation.
+  </p>
+
+</app-form-page>
\ No newline at end of file
diff --git a/src/app/signup/waiting-email-verification/waiting-email-verification.component.scss b/src/app/signup/waiting-email-verification/waiting-email-verification.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..dfbe271ae99bd553d6ca059e4c6c01ef988dc191
--- /dev/null
+++ b/src/app/signup/waiting-email-verification/waiting-email-verification.component.scss
@@ -0,0 +1,19 @@
+.checkbox-field {
+    display: block;
+    margin: .5em 0;
+  }
+  .form-group{
+    display:flex;
+    flex-direction: row;
+    justify-content: space-between;
+  }
+  .horizontal-display{
+    width:45%;
+  }
+  .adress-input{
+    margin:5px;
+  }
+  
+  .quarter-display{
+    width:25%;
+  }
\ No newline at end of file
diff --git a/src/app/signup/waiting-email-verification/waiting-email-verification.component.ts b/src/app/signup/waiting-email-verification/waiting-email-verification.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c3b04c3433f96e03421c0bcbd235ee2bb0640b03
--- /dev/null
+++ b/src/app/signup/waiting-email-verification/waiting-email-verification.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-waiting-email-verification',
+  templateUrl: './waiting-email-verification.component.html',
+  styleUrls: ['./waiting-email-verification.component.scss']
+})
+export class WaitingEmailVerificationComponent implements OnInit {
+  constructor() {
+  }
+
+  ngOnInit() {
+  }
+
+}
diff --git a/src/environments/environment.local.ts b/src/environments/environment.local.ts
index 198da5d5c8700a770762c7e14e5ce56e5d913fa0..316ece061698e1f01912d6757c609e0ff7900ee3 100644
--- a/src/environments/environment.local.ts
+++ b/src/environments/environment.local.ts
@@ -1,7 +1,7 @@
 // For use when you have a local backend server running
 export const environment = {
   production: false,
-  showcaseApiUrl: 'https://oser-site-vitrine.herokuapp.com/api/',
+  showcaseApiUrl: 'https://oser-cs.fr/api/',
   apiUrl: 'http://localhost:8000/api/',
   numArticles: 3,
   donateUrl: "https://www.donnerenligne.fr/ouverture-sociale-pour-l-egalite-et-la-reussite/faire-un-don",
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 549e327c75d5d5d4d166c26ccf803a24d23db2d3..c92a014b311df945038fddbfc0ae3fbd5bb72dd5 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -2,7 +2,7 @@
 export const environment = {
   production: false,
   showcaseApiUrl: 'https://oser-site-vitrine.herokuapp.com/api/',
-  apiUrl: 'https://oser-backend-dev.herokuapp.com/api/',
+  apiUrl: 'http://localhost:8000/api/',
   numArticles: 3,
   donateUrl: "https://www.donnerenligne.fr/ouverture-sociale-pour-l-egalite-et-la-reussite/faire-un-don",
   currentCampaignUrl: "",
diff --git a/src/environments/tes-environment.ts b/src/environments/tes-environment.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2e3edf4aacab5f663e5a292b88bc018b1eaab8de
--- /dev/null
+++ b/src/environments/tes-environment.ts
@@ -0,0 +1,9 @@
+// Development environment (the default)
+export const environment = {
+  production: false,
+  showcaseApiUrl: 'https://oser-site-vitrine.herokuapp.com/api/',
+  apiUrl: 'http://oser-backend:8000/api/',
+  numArticles: 3,
+  donateUrl: "https://www.donnerenligne.fr/ouverture-sociale-pour-l-egalite-et-la-reussite/faire-un-don",
+  currentCampaignUrl: "",
+};