diff --git a/backend/app/Http/Controllers/API/ArticleController.php b/backend/app/Http/Controllers/API/ArticleController.php
new file mode 100644
index 0000000000000000000000000000000000000000..9b0d1e6ad04382b6ba9e10221a8e5ccc58bc9967
--- /dev/null
+++ b/backend/app/Http/Controllers/API/ArticleController.php
@@ -0,0 +1,128 @@
+<?php
+
+namespace App\Http\Controllers\API;
+
+use App\Http\Controllers\Controller;
+use App\Models\article;
+
+use Illuminate\Http\Request;
+use Illuminate\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Cookie;
+use Illuminate\Support\Facades\Session;
+
+class ArticleController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        $article = DB::select('select * from articles' );
+        return response()->json($article, 201);
+
+      
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+    
+        $article = [
+            'title' => $request->titre,
+            'description' => $request->description,
+            'text' => $request->text,
+            'IDuser' => $request->IDuser,
+            
+        ];
+        $art = article::create($article);
+        return response()->json($art, 201);
+        //return $request;
+    
+
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  \App\Models\User  $use
+     * @return \Illuminate\Http\Response
+     */
+    public function show($article)
+    {
+        //
+        // return article::find($user);
+        $arc = DB::select('select * from articles WHERE IDuser = :IDuser',['IDuser' => $article] );
+        return response()->json($arc, 201);
+
+    }
+
+    public function get_article(Request $request, $id)
+    {
+        //
+        // return article::find($user);
+        try {
+        $arc = DB::select('select * from articles WHERE id = :id',['id' => $id] );
+        return response()->json($arc, 201);
+        } catch(e) {
+
+        }
+
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\User  $user
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, $artic)
+    {
+        //
+        $ar = article::find($artic);
+        $ar->title = $request->title;
+        $ar->description = $request->description;
+        $ar->text = $request->text;
+
+        $ar->save();
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\User  $user
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy($user)
+    {
+        $artic = article::find($user);
+        $result = $artic->delete() ;
+        if ($result) return ["result"=>"test"];
+
+        //
+        //$user->delete();
+
+    }
+
+    public function deleteall(User $user) {
+        $user->delete();
+    }
+
+
+
+
+
+
+    
+
+    
+}
diff --git a/backend/app/Http/Controllers/API/UserController.php b/backend/app/Http/Controllers/API/UserController.php
index 313fcaee15487df3c8241cf5c8cc35e4acf6aa5f..deea472a5b1115e5b2c28d1a158290dda5958cba 100644
--- a/backend/app/Http/Controllers/API/UserController.php
+++ b/backend/app/Http/Controllers/API/UserController.php
@@ -5,6 +5,13 @@
 use App\Http\Controllers\Controller;
 use App\Models\User;
 use Illuminate\Http\Request;
+use Illuminate\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Cookie;
+use Illuminate\Support\Facades\Session;
+
+
 
 class UserController extends Controller
 {
@@ -15,11 +22,20 @@ class UserController extends Controller
      */
     public function index()
     {
-        //
-        $users = User::all();
+        //Session::flash('clef', 'valeurs');
+        
+        dd(Session::get('clef'));
+        //$users = DB::select('select * from users' );
+
+
+       // dd($users);
+        // $user = DB::select('select * from users where name = "sdqdqdqdqdqdsq"');
+        // dd($user);
+       
+        //return redirect()->route('check');
 
     // On retourne les informations des utilisateurs en JSON
-        return response()->json($users);
+        
     //return 'test';
     }
 
@@ -32,11 +48,22 @@ public function index()
     public function store(Request $request)
     {
         //
-        $user = User::create([
+       
+        // $validated = $request->validate([
+        //     'name' => 'required|max:255',
+        //     'prenom' => 'required|max:255',
+        //     'email' => 'required|email',
+        //     'password' => 'required'
+
+        // ]);
+        //dd(Cookie::get('user'));
+        $user = [
             'name' => $request->name,
+            'prenom' => $request->prenom,
             'email' => $request->email,
-            'password' => $request->password
-        ]);
+            'password'=> Hash::make($request->password),
+        ];
+        $user = User::create($user);
         return response()->json($user, 201);
         //return $request;
     
@@ -49,9 +76,11 @@ public function store(Request $request)
      * @param  \App\Models\User  $user
      * @return \Illuminate\Http\Response
      */
-    public function show(User $user)
+    public function show($user)
     {
-        //
+        //affichage des article dun utilisateur specifique
+        $arc = DB::select('select * from users WHERE id = :id',['id' => $user] );
+        return response()->json($arc, 201);
     }
 
     /**
@@ -61,8 +90,15 @@ public function show(User $user)
      * @param  \App\Models\User  $user
      * @return \Illuminate\Http\Response
      */
-    public function update(Request $request, User $user)
+    public function update(Request $request, $user)
     {
+        $usr = User::find($user);
+        $usr->email = $request->email;
+        $usr->name = $request->name;
+        $usr->prenom = $request->prenom;
+
+        $usr->save();
+
         //
     }
 
@@ -76,11 +112,41 @@ public function destroy(User $user)
     {
 
         //
-        $user->delete();
+        //$user->delete();
 
     }
 
     public function deleteall(User $user) {
         $user->delete();
     }
+
+    public function checkuser(Request $request) {
+
+            //if (empty($user)) dd("fail"); else dd($user);
+        $hachpassword = DB::select('select password from users WHERE email = :email',['email' => $request->email] );
+        $id = DB::select('select id from users WHERE email = :email',['email' => $request->email] );
+        $name = DB::select('select name from users WHERE email = :email',['email' => $request->email] );
+        //$kk = Hash::make($hachpassword[0]->password);
+        $combin = [
+            $id,
+            $name,
+        ];
+        if (Hash::check($request->password, $hachpassword[0]->password )) {
+            // $minute = 5;
+            // $response = new Response('Hello World');
+            // $response->withCookie(cookie()->forever('user', 'love u'));
+            return response($combin, 200);
+            
+        }
+        return response('erreur', 504);
+       
+        
+        
+    }
+
+  
+
+    
+
+    
 }
diff --git a/backend/app/Models/User.php b/backend/app/Models/User.php
index 89963686eb21407d17eea9a5871d88658ff32d2b..d49ada9a7155bc6036f9a5ed6f9219957047c3b7 100644
--- a/backend/app/Models/User.php
+++ b/backend/app/Models/User.php
@@ -11,14 +11,15 @@
 class User extends Authenticatable
 {
     use HasApiTokens, HasFactory, Notifiable;
-
     /**
      * The attributes that are mass assignable.
      *
      * @var array<int, string>
      */
     protected $fillable = [
+        
         'name',
+        'prenom',
         'email',
         'password',
     ];
diff --git a/backend/app/Models/article.php b/backend/app/Models/article.php
new file mode 100644
index 0000000000000000000000000000000000000000..560cb0b763b40ed87590631aeca16b540c1a2c9e
--- /dev/null
+++ b/backend/app/Models/article.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class article extends Model
+{
+    use HasFactory;
+
+    protected $fillable = [
+        'title',
+        'description',
+        'text',
+        'IDuser'
+
+
+    ];
+}
diff --git a/backend/database/factories/UserFactory.php b/backend/database/factories/UserFactory.php
index 23b61d24286d5e2ad9b01ccc2cef12511a0d835d..49dba5194279f9c959a59bd2e5d818d993857080 100644
--- a/backend/database/factories/UserFactory.php
+++ b/backend/database/factories/UserFactory.php
@@ -18,6 +18,7 @@ class UserFactory extends Factory
     public function definition()
     {
         return [
+            'prenom' => $this->faker->prenom(),
             'name' => $this->faker->name(),
             'email' => $this->faker->unique()->safeEmail(),
             'email_verified_at' => now(),
diff --git a/backend/database/migrations/2014_10_12_000000_create_users_table.php b/backend/database/migrations/2014_10_12_000000_create_users_table.php
index 3d856ea3bead8700148f736b4965c3f27daa3c67..1b1f797f29e9a36f0b6787f55c0d3065585e3620 100644
--- a/backend/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/backend/database/migrations/2014_10_12_000000_create_users_table.php
@@ -16,11 +16,13 @@ public function up()
         Schema::create('users', function (Blueprint $table) {
             $table->id();
             $table->string('name');
+            $table->string('prenom');
+
             $table->string('email')->unique();
             //$table->timestamp('email_verified_at')->nullable();
             $table->string('password');
             //$table->rememberToken();
-            //$table->timestamps();
+            $table->timestamps();
         });
     }
 
diff --git a/backend/database/migrations/2022_03_29_101303_create_articles_table.php b/backend/database/migrations/2022_03_29_101303_create_articles_table.php
new file mode 100644
index 0000000000000000000000000000000000000000..b01f6d610c6fb5716c1c5cfc7103cf04fd655f07
--- /dev/null
+++ b/backend/database/migrations/2022_03_29_101303_create_articles_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('articles', function (Blueprint $table) {
+            $table->id();
+            $table->timestamps();
+            $table->string('title');
+            $table->string('text');
+            $table->string('description');
+            $table->integer('IDuser');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('articles');
+    }
+};
diff --git a/backend/routes/api.php b/backend/routes/api.php
index a925c1aa17b2bd925267492a3a3a298a99300e68..71fb00482a61be6d7682398daa13d6a584e4bf5b 100644
--- a/backend/routes/api.php
+++ b/backend/routes/api.php
@@ -3,6 +3,8 @@
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Route;
 use App\Http\Controllers\API\UserController;
+use App\Http\Controllers\API\ArticleController;
+
 
 /*
 |--------------------------------------------------------------------------
@@ -20,9 +22,34 @@
 });
 
 Route::apiResource('/loginApi', UserController::class );
+
+Route::apiResource('/articleApi', ArticleController::class );
+
 // Route::post('/register', [UserController::class, 'store']);
 
 Route::delete('/delete', [UserController::class, 'deleteall']);
+
+Route::post('/check', [UserController::class, 'checkuser']);
+
+Route::get('/get_article/{id}', [ArticleController::class, 'get_article']);
+
+
 // Route::get('/user', function() {
 //     return 'test';
+// });
+
+// Route::get('/set-cookie', function() {
+//     $response = new Illuminate\Http\Response();
+
+//     $response->cookie('test5', 'zz',5, '/', '   127.0.0.1'); // this will last five years
+//     dd($response);
+//     return $response;
+// });
+
+// Route::get('/get-cookie', function() {
+//    //
+//    $res = new Response("test");
+
+//    $res->data = "qsdq"; // showing you different ways to set / get the cookie
+//    return $res;
 // });
\ No newline at end of file
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 7b9069a96abc973270337f80f9c5a74350aacd22..59ba852857d6983ea9f0c584738e4e520aec8560 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -8,8 +8,10 @@
       "name": "frontend",
       "version": "0.1.0",
       "dependencies": {
+        "axios": "^0.26.1",
         "core-js": "^3.8.3",
         "vue": "^2.6.14",
+        "vue-cookies": "^1.8.0",
         "vue-router": "^3.1.3",
         "vuetify": "^2.6.0"
       },
@@ -3226,6 +3228,14 @@
         "postcss": "^8.1.0"
       }
     },
+    "node_modules/axios": {
+      "version": "0.26.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+      "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+      "dependencies": {
+        "follow-redirects": "^1.14.8"
+      }
+    },
     "node_modules/babel-loader": {
       "version": "8.2.3",
       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz",
@@ -5914,7 +5924,6 @@
       "version": "1.14.9",
       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
-      "dev": true,
       "funding": [
         {
           "type": "individual",
@@ -10660,6 +10669,11 @@
         "node": ">=10"
       }
     },
+    "node_modules/vue-cookies": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/vue-cookies/-/vue-cookies-1.8.0.tgz",
+      "integrity": "sha512-5nxAwW4kIS6uP0G9UnWcmSj2NlFpV1wkvAAwGgkWqyPDVCP1IEzFZfg7YUBLiYowZ/cFnxaXqS1nWPIBwfXGRw=="
+    },
     "node_modules/vue-eslint-parser": {
       "version": "8.3.0",
       "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
@@ -14073,6 +14087,14 @@
         "postcss-value-parser": "^4.2.0"
       }
     },
+    "axios": {
+      "version": "0.26.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+      "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+      "requires": {
+        "follow-redirects": "^1.14.8"
+      }
+    },
     "babel-loader": {
       "version": "8.2.3",
       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz",
@@ -16079,8 +16101,7 @@
     "follow-redirects": {
       "version": "1.14.9",
       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
-      "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
-      "dev": true
+      "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
     },
     "forwarded": {
       "version": "0.2.0",
@@ -19554,6 +19575,11 @@
         }
       }
     },
+    "vue-cookies": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/vue-cookies/-/vue-cookies-1.8.0.tgz",
+      "integrity": "sha512-5nxAwW4kIS6uP0G9UnWcmSj2NlFpV1wkvAAwGgkWqyPDVCP1IEzFZfg7YUBLiYowZ/cFnxaXqS1nWPIBwfXGRw=="
+    },
     "vue-eslint-parser": {
       "version": "8.3.0",
       "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 8368abbbd1649e1c71b65f94133be8e2f585c517..716395490085b4ce653f08f00fab2eb129040ead 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -8,8 +8,10 @@
     "lint": "vue-cli-service lint"
   },
   "dependencies": {
+    "axios": "^0.26.1",
     "core-js": "^3.8.3",
     "vue": "^2.6.14",
+    "vue-cookies": "^1.8.0",
     "vue-router": "^3.1.3",
     "vuetify": "^2.6.0"
   },
diff --git a/frontend/src/components/navbar.vue b/frontend/src/components/navbar.vue
index 797f67d9c4009d1d3f72d2b95ba4af584ea6adb6..9c3556fa0cac152e7b3120423f68561aa57a6eaa 100644
--- a/frontend/src/components/navbar.vue
+++ b/frontend/src/components/navbar.vue
@@ -4,7 +4,7 @@
         <div class="menu-item"><a href="/home">Home</a></div>
         <dropdown title="Article" :items="services"/>
         <div class="menu-item"><a href="/info">info</a></div>
-        <div class="menu-item"><a href="/logout">Logout</a></div>
+        <div  class="menu-item"><a @click = "logout()">Logout</a></div>
         
     </nav>
     
@@ -12,6 +12,10 @@
 
 <script>
 import dropdown from './dropdown.vue'
+import router from '../router/index'
+import Vue from 'vue'
+import VueCookies from 'vue-cookies'
+Vue.use(VueCookies)
 
 export default {
     name : "navbar",
@@ -31,10 +35,28 @@ data () {
             },
         ]
     }
+},
+methods : {
+     logout() {
+    router.push({ path: '/' });
+    this.$cookies.remove("IDuser");  // return this
+    this.$cookies.remove("username");  // return this
+    this.$cookies.remove("tmp");  // return this
+    this.$cookies.remove("nameuser");  // return this
+
+
+
+    //suppression de la session
 }
 }
+
+}
+
+
 </script>
 
+
+
 <style>
 
 
diff --git a/frontend/src/main.js b/frontend/src/main.js
index c91889b015478b2ccd02f1eac7dd5dd9173f67f5..bcd17acf6acc6fc2cf2d43b993c7c012243a2a0e 100644
--- a/frontend/src/main.js
+++ b/frontend/src/main.js
@@ -2,7 +2,9 @@ import Vue from 'vue'
 import App from './App.vue'
 import vuetify from './plugins/vuetify'
 import router from './router'
+import VueCookies from 'vue-cookies';
 
+Vue.use(VueCookies);
 Vue.config.productionTip = false
 
 new Vue({
diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js
index 1a7a7e05f19e44400108d2a7e7a4135a1f036758..8d5c16a5c6c9d78167dd78bc40117bdeb504cfda 100644
--- a/frontend/src/router/index.js
+++ b/frontend/src/router/index.js
@@ -7,6 +7,8 @@ import login from '../views/login.vue'
 import signup from '../views/sign_up.vue'
 import info from '../views/info.vue'
 import add_article from '../views/ajout_article.vue'
+import affich_article from '../views/affich_article.vue'
+
 
 Vue.use(VueRouter)
 // eslint-disable-next-line 
@@ -53,6 +55,11 @@ const routes = [
         name: 'add_article',
         component: add_article
     },
+    {
+        path: '/affich_article',
+        name: 'affich_article',
+        component: affich_article
+    },
 
 ]
 
diff --git a/frontend/src/views/affich_article.vue b/frontend/src/views/affich_article.vue
new file mode 100644
index 0000000000000000000000000000000000000000..ecc63f2435558588f8f52c420663871b0c1639fe
--- /dev/null
+++ b/frontend/src/views/affich_article.vue
@@ -0,0 +1,129 @@
+<template>
+<v-app>
+  <v-main>
+      <div class="top1">
+      <Navbar/>
+      </div>
+      <div class="top2">
+      <v-img 
+          src="../assets/blog2.jpg"
+          max-height="200"
+          max-width="100%"
+        >
+        </v-img>
+      </div>
+    </v-main>
+  <v-card
+  width="80%"
+  class="mx-auto my-15">
+  <v-img
+    height="150"
+    src="../assets/blog.jpg">
+    
+    </v-img>
+        <v-card-title></v-card-title>
+        <v-card-text>
+        <v-form>
+            <h5 >Auteur : {{auteur}}</h5>
+            <v-text-field  label="Titre" v-model="object.title" ></v-text-field>
+            <v-text-field label="Description" v-model="object.description" ></v-text-field>
+            <v-text-field label="Texte" v-model="object.text" ></v-text-field>
+            
+
+
+            
+
+
+
+
+            
+            
+           
+        </v-form>
+        </v-card-text>
+        <v-card-actions>
+            <v-btn outlined color="orange" @click="up()">
+                        <v-icon >mdi-plus</v-icon>
+                        
+                        <span>modifier article</span>
+            </v-btn>
+        </v-card-actions>
+    </v-card>
+    <Footer/>
+</v-app>
+</template>
+
+<script>
+
+import router from '../router/index'
+import Footer from '../components/footer.vue'
+import Navbar from '../components/navbar.vue'
+import axios from 'axios';
+import Vue from 'vue'
+import VueCookies from 'vue-cookies'
+Vue.use(VueCookies)
+
+export default {
+  name: "signup",
+  components: {Navbar, Footer},
+  data(){
+        return {
+            object: "",
+            auteur : this.$cookies.get("username"),
+        }
+    },
+
+          methods: {
+                        async up()  {
+          try   {
+            console.log(this.$cookies.get("IDuser"));
+    res = axios.put('http://127.0.0.1:8000/api/articleApi/' + this.$cookies.get("tmp"), this.object,
+    {
+      // headers : {
+      //   'Authorization' : 'Bearear ' + localStorage.getItem('token')
+      // },
+    })
+    console.log(res);
+  
+          }
+           catch(e) {
+
+           }
+
+  }
+    // 
+
+
+  },
+
+  async mounted () {
+        try {
+            let res1 = await axios.get('http://127.0.0.1:8000/api/get_article/' + this.$cookies.get("tmp") )
+            //
+            
+            this.object = res1.data[0];
+            
+
+        } catch(e) {
+            console.log(e);
+        }
+    },
+
+  
+
+
+}
+
+
+</script>
+
+<style>
+.top1 {
+  position: relative;
+  z-index: 2;
+}
+.top2 {
+  position: relative;
+  z-index: 1;
+}
+</style>
\ No newline at end of file
diff --git a/frontend/src/views/ajout_article.vue b/frontend/src/views/ajout_article.vue
index d950cc9752e2e308ec6152244bf846a7b523cf75..d6fb578313511627f062e9eefd56ab3b0a8e1386 100644
--- a/frontend/src/views/ajout_article.vue
+++ b/frontend/src/views/ajout_article.vue
@@ -24,7 +24,9 @@
         <v-card-title>Fascine nous avec ta créativité ! </v-card-title>
         <v-card-text>
         <v-form>
-            <v-text-field label="Titre pour ton blog" v-model="object.nom" required :rules="[v => !!v || 'veuillez saisir votre nom']"></v-text-field>
+            <v-text-field label="Titre pour ton blog" v-model="object.titre" required :rules="[v => !!v || 'veuillez saisir le titre']"></v-text-field>
+            <v-text-field label="Description" v-model="object.description" required :rules="[v => !!v || 'veuillez saisir le titre']"></v-text-field>
+
            
   <v-container fluid>
     <v-textarea
@@ -32,6 +34,7 @@
       clear-icon="mdi-close-circle"
       label="Allez, balance tes idées !"
       value="You can do it"
+      v-model="object.text"
     ></v-textarea>
   </v-container>
 
@@ -57,6 +60,9 @@
 import router from '../router/index'
 import Footer from '../components/footer.vue'
 import Navbar from '../components/navbar.vue'
+import axios from 'axios';
+
+
 export default {
   name: "signup",
   components: {Navbar, Footer},
@@ -64,14 +70,47 @@ export default {
         return {
             object: {
               
-                nom : '',
-                prenom : '',
-                email: '',
-                password: '',
-                type_profil: ''
+                titre:'',
+                description:'',
+                text:'',
+                IDuser:this.$cookies.get("IDuser"),
+
             }
         }
     },
+
+          methods: {
+    async ajouter_article() {
+      try {
+        // const res1 = await axios.get('http://127.0.0.1:8000/api/get-cookie',this.object)
+        //     console.log(res1)
+        const res = await axios.post('http://127.0.0.1:8000/api/articleApi',this.object, {
+            Headers : {
+                'Content-Type' : 'multipart/form-data; boundary=<calculated when request is sent>',
+                'Content-Length' : '<calculated when request is sent>',
+                'Connection' : 'keep-alive'
+            }
+        }
+
+    )
+      router.push({ path: '/home' });
+
+      console.log(res)
+      //router.push({ name: 'acceuil' });
+      } catch(e) {
+          console.log(e);
+        //alert('une erreur est servenu, veuillez refaire linscription a nouveau');
+        //router.push({ name: 'inscription' });
+
+      }
+      
+
+
+    },
+    // 
+    
+    
+  },
   
 
 
diff --git a/frontend/src/views/article.vue b/frontend/src/views/article.vue
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c2af8c37639671e52b6ab0b7d3022ab174e21a8b 100644
--- a/frontend/src/views/article.vue
+++ b/frontend/src/views/article.vue
@@ -0,0 +1,138 @@
+<template>
+<v-app>
+  
+        <div class="top1">
+      <Navbar/>
+      </div>
+      <div class="top2">
+      <v-img 
+          src="../assets/blog2.jpg"
+          max-height="200"
+          max-width="100%"
+        >
+        </v-img>
+      </div>
+
+    <v-container class="my-5">
+      <v-layout row wrap max-width="344">
+        <v-flex xs12 sm6 md4 lg3 v-for="blog in blogs" :key="blog.name" >
+        <v-card
+      :loading="loading"
+      class=" ma-3"
+      max-width = "375"
+      >
+    <template >
+      <v-progress-linear
+        color="black"
+        height="5"
+        
+      > 
+      </v-progress-linear>
+
+    </template>
+
+    <v-img
+    height="150"
+    src="../assets/blog.jpg">
+    
+    </v-img>
+
+   <v-card-title>{{blog.title}}</v-card-title>
+   <v-divider class="mx-4"></v-divider>
+  <v-card-text>
+      <v-row
+        align="center"
+        class="mx-0"
+      >
+       
+
+        
+      </v-row>
+
+      <div class="my-4 text-subtitle-1">
+         {{blog.description}}
+      </div>
+
+      <!-- <div>{{blog.text}}</div> -->
+    </v-card-text>
+  <v-divider class="mx-4"></v-divider>
+  <v-card-actions>
+      <v-btn
+        color="deep-purple lighten-2"
+        text
+        @click="lire(blog.id)"
+      >
+        Lire article
+      </v-btn>
+    </v-card-actions>
+    
+
+
+      
+    </v-card> 
+        </v-flex>
+      </v-layout>
+    </v-container>
+
+
+      <Footer/>
+    
+</v-app>
+
+</template>
+
+<script>
+import router from '../router/index'
+
+import Footer from '../components/footer.vue'
+import Navbar from '../components/navbar.vue'
+import axios from 'axios'
+import Vue from 'vue'
+import VueCookies from 'vue-cookies'
+Vue.use(VueCookies)
+export default {
+  components: { Footer,
+  Navbar },
+  
+  data(){
+        return {
+             
+            blogs:
+            [
+  
+            ]
+        }
+    },
+    methods : {
+      async lire(id) {
+                  this.$cookies.set("tmp", id);
+                  router.push({ name: 'affich_article' });
+
+      }
+    },
+    mounted ()  {
+      console.log(this.$cookies.get("username")); // gowtham
+    axios.get('http://127.0.0.1:8000/api/articleApi/'+ this.$cookies.get("IDuser"),
+    {
+      // headers : {
+      //   'Authorization' : 'Bearear ' + localStorage.getItem('token')
+      // },
+    })
+    .then(res => this.blogs = res.data);
+    
+
+  },
+}
+
+</script>
+
+<style>
+.top1 {
+  position: relative;
+  z-index: 2;
+}
+.top2 {
+  position: relative;
+  z-index: 1;
+}
+</style>
diff --git a/frontend/src/views/home.vue b/frontend/src/views/home.vue
index 4b84d9694193bdde5a9162be774092290acadb80..39005c4f30988e1ca6ce2a8130e1a698c6886bc5 100644
--- a/frontend/src/views/home.vue
+++ b/frontend/src/views/home.vue
@@ -1,7 +1,7 @@
 <template>
 <v-app>
-    <v-main>
-      <div class="top1">
+  
+        <div class="top1">
       <Navbar/>
       </div>
       <div class="top2">
@@ -12,11 +12,13 @@
         >
         </v-img>
       </div>
-    </v-main>
 
-    <v-card
+    <v-container class="my-5">
+      <v-layout row wrap max-width="344">
+        <v-flex xs12 sm6 md4 lg3 v-for="blog in blogs" :key="blog.name" >
+        <v-card
       :loading="loading"
-      class="mx-auto my-12"
+      class=" ma-3"
       max-width = "375"
       >
     <template >
@@ -24,19 +26,18 @@
         color="black"
         height="5"
         
-      >
-        
+      > 
       </v-progress-linear>
 
     </template>
 
     <v-img
-    height="250"
-    src="../assets/avion.png">
+    height="150"
+    src="../assets/blog.jpg">
     
     </v-img>
 
-   <v-card-title>Article 1</v-card-title>
+   <v-card-title>{{blog.title}}</v-card-title>
    <v-divider class="mx-4"></v-divider>
   <v-card-text>
       <v-row
@@ -49,10 +50,10 @@
       </v-row>
 
       <div class="my-4 text-subtitle-1">
-        $ • Machin Machin
+         {{blog.description}}
       </div>
 
-      <div>machin machin machin machin machin machin machin machin machin machin machin machin machin machin</div>
+      <!-- <div>{{blog.text}}</div> -->
     </v-card-text>
   <v-divider class="mx-4"></v-divider>
   <v-card-actions>
@@ -68,7 +69,11 @@
 
 
       
-    </v-card>
+    </v-card> 
+        </v-flex>
+      </v-layout>
+    </v-container>
+
 
       <Footer/>
     
@@ -79,12 +84,33 @@
 <script>
 import Footer from '../components/footer.vue'
 import Navbar from '../components/navbar.vue'
+import axios from 'axios'
 export default {
   components: { Footer,
   Navbar },
   
+  data(){
+        return {
+             
+            blogs:
+            [
+  
+            ]
+        }
+    },
+    mounted ()  {
+    axios.get('http://127.0.0.1:8000/api/articleApi',
+    {
+      // headers : {
+      //   'Authorization' : 'Bearear ' + localStorage.getItem('token')
+      // },
+    })
+    .then(res => this.blogs = res.data);
+    
 
+  },
 }
+
 </script>
 
 <style>
diff --git a/frontend/src/views/info.vue b/frontend/src/views/info.vue
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..26d0e8160cc35be3c41ec7bdb2f612094b844708 100644
--- a/frontend/src/views/info.vue
+++ b/frontend/src/views/info.vue
@@ -0,0 +1,112 @@
+<template>
+<v-app>
+  <v-main>
+      <div class="top1">
+      <Navbar/>
+      </div>
+      <div class="top2">
+      <v-img 
+          src="../assets/blog2.jpg"
+          max-height="200"
+          max-width="100%"
+        >
+        </v-img>
+      </div>
+    </v-main>
+  <v-card
+  width="80%"
+  class="mx-auto my-15">
+  <v-img
+    height="150"
+    src="../assets/blog.jpg">
+    
+    </v-img>
+        <v-card-title>Vos informations YES </v-card-title>
+        <v-card-text>
+        <v-form>
+            <v-text-field  label="nouvelle adresse email" v-model="object.email" ></v-text-field>
+            <v-text-field label=" changer Nom" v-model="object.name" ></v-text-field>
+            <v-text-field label="changer Prénom" v-model="object.prenom" ></v-text-field>
+
+
+
+
+            
+            
+           
+        </v-form>
+        </v-card-text>
+        <v-card-actions>
+            <v-btn outlined color="orange" @click="up()">
+                        <v-icon >mdi-plus</v-icon>
+                        
+                        <span>modifier info</span>
+            </v-btn>
+        </v-card-actions>
+    </v-card>
+    <Footer/>
+</v-app>
+</template>
+
+<script>
+
+import router from '../router/index'
+import Footer from '../components/footer.vue'
+import Navbar from '../components/navbar.vue'
+import axios from 'axios';
+import Vue from 'vue'
+import VueCookies from 'vue-cookies'
+Vue.use(VueCookies)
+
+export default {
+  name: "signup",
+  components: {Navbar, Footer},
+  data(){
+        return {
+            object: {
+                email:'',
+                name:'',
+                prenom:'',
+                
+            },
+        }
+    },
+
+          methods: {
+    // 
+          async up()  {
+          try   {
+            console.log(this.$cookies.get("IDuser"));
+    res = axios.put('http://127.0.0.1:8000/api/loginApi/' + this.$cookies.get("IDuser"), this.object,
+    {
+      // headers : {
+      //   'Authorization' : 'Bearear ' + localStorage.getItem('token')
+      // },
+    })
+    console.log(res);
+  
+          }
+           catch(e) {
+
+           }
+
+  }
+    
+  },
+
+  
+
+
+}
+</script>
+
+<style>
+.top1 {
+  position: relative;
+  z-index: 2;
+}
+.top2 {
+  position: relative;
+  z-index: 1;
+}
+</style>
\ No newline at end of file
diff --git a/frontend/src/views/login.vue b/frontend/src/views/login.vue
index a2a84bc97209b18a208909656f1136755f12887a..1c8f9b73488139d754f61c5e7bcc70ae882b914f 100644
--- a/frontend/src/views/login.vue
+++ b/frontend/src/views/login.vue
@@ -68,6 +68,11 @@
 import router from '../router/index'
 import Footer from '../components/footer.vue'
 import Navbar from '../components/navbar.vue';
+import axios from 'axios';
+import Vue from 'vue'
+import VueCookies from 'vue-cookies'
+Vue.use(VueCookies)
+
 //import Navbar from '../components/Navbar.vue'
 export default {
     components: {
@@ -82,12 +87,48 @@ export default {
         object : {
             email: "",
             password: "",
-            type_profil:""
         }
      
     };
 
+    
+
+
+  },
+    methods: {
+    async login() {
+      
+      try {
+
+          const res = await axios.post('http://127.0.0.1:8000/api/check',this.object)
+          console.log(res.data[0][0].id)
+          alert('Logged in !');
+          //crier un cookie pour sauvegarder le ID de l'utilisateur connecté
+          this.$cookies.set("IDuser", res.data[0][0].id, "1d");
+          this.$cookies.set("nameuser", res.data[1][0].name, "1d");
+          console.log(this.$cookies.get("IDuser")); // gowtham
+         
+
+         
+          // it gets the cookie called `username`
+        router.push({ name: 'home' });
+          //localStorage.setItem('token',res.data.token)
+          //router.push({ name: 'acceuil' });
+      } catch(e) {
+          alert('adresse ou mot de passe incorrect');
+          console.log(e);
+          this.object.email = "",
+            this.object.password =  "",
+          router.push({ name: 'login' });
+          
+      }
+    
+    },
+    
 
+    // 
+    
+    
   },
 
 };
diff --git a/frontend/src/views/sign_up.vue b/frontend/src/views/sign_up.vue
index 788a252724e29c2299b2f24d8457b6775c7b0522..95fbe7f764f0ff6c8770adb2318de42ad74214df 100644
--- a/frontend/src/views/sign_up.vue
+++ b/frontend/src/views/sign_up.vue
@@ -18,7 +18,7 @@
         <v-card-title>Inscription </v-card-title>
         <v-card-text>
         <v-form>
-            <v-text-field label="nom" v-model="object.nom" required :rules="[v => !!v || 'veuillez saisir votre nom']"></v-text-field>
+            <v-text-field label="nom" v-model="object.name" required :rules="[v => !!v || 'veuillez saisir votre nom']"></v-text-field>
             <v-text-field label="prenom" v-model="object.prenom" required :rules="[v => !!v || 'veuillez saisir votre prenom']"></v-text-field>
             <v-text-field label="Email" v-model="object.email" required :rules="[v => !!v || 'veuillez saisir votre adresse email']"></v-text-field>
             <v-text-field label="mot_de_passe" v-model="object.password" type="password" required :rules="[v => !!v || 'veuillez saisir votre mot de passe']"></v-text-field>
@@ -44,21 +44,49 @@
 import router from '../router/index'
 import Footer from '../components/footer.vue'
 import Navbar from '../components/navbar.vue'
+import axios from 'axios'
 export default {
   name: "signup",
   components: {Navbar, Footer},
   data(){
         return {
             object: {
-              
-                nom : '',
-                prenom : '',
+              prenom: '',
+              name: '',
                 email: '',
                 password: '',
-                type_profil: ''
+                
             }
         }
     },
+
+      methods: {
+    async inscrire() {
+      try {
+        const res = await axios.post('http://127.0.0.1:8000/api/loginApi',this.object, {
+            Headers : {
+                'Content-Type' : 'multipart/form-data; boundary=<calculated when request is sent>',
+                'Content-Length' : '<calculated when request is sent>',
+                'Connection' : 'keep-alive'
+            }
+        }
+    )
+      console.log(res)
+      //router.push({ name: 'acceuil' });
+      } catch(e) {
+          console.log(e);
+        //alert('une erreur est servenu, veuillez refaire linscription a nouveau');
+        //router.push({ name: 'inscription' });
+
+      }
+      
+
+
+    },
+    // 
+    
+    
+  },