diff --git a/src/app.ts b/src/app.ts
index da9f060a4c8dba63179406698e742d4e190bb531..a8cfdc5e369c91f43494f86fa42b95075e1c2b2b 100644
--- a/src/app.ts
+++ b/src/app.ts
@@ -36,7 +36,9 @@ import { ldapConfig, credentialsConfig } from './ldap/config';
 
 const { dn, passwd } = credentialsConfig;
 
-const app = express(); // "The app object conventionally denotes the Express application" (https://expressjs.com/en/4x/api.html#app)
+// "The app object conventionally denotes the Express application" 
+// see https://expressjs.com/en/4x/api.html#app
+const app = express(); 
 
 // Parse incoming HTTP request bodies, available under the req.body property. cf www.npmjs.com/package/body-parser
 app.use(bodyParser.json()); //parses bodies of media type "application/json"
@@ -72,13 +74,14 @@ app.use('/assets', express.static(path.resolve('./', 'assets')));
  * it is important to configure this right!!! please check out https://www.npmjs.com/package/express-session 
  * and make sure you understand the way session is stored. (en vrai c'est vraiment important...)
  */
- app.use(session({
+app.use(session({
     secret: ldapConfig.sessionSecret,
     resave: true,
     saveUninitialized: false,
 }));
 
 app.use(passport.initialize());
+
 //GHETTO
 //initialize Passport. (adds hidden field req._passport and do some magic stuff)
 //app.use(passport.session()); //this is equivalent to app.use(passport.authenticate('session'))
@@ -91,12 +94,18 @@ app.use(passport.session(), (req, res, next)=>{
 }); 
 // *aucun* effet sur les requetes n'ayant pas ete reconnues par app.use(session(...)) (e.g. les requetes sans cookie ou les requetes avec cookie expired). source: lecture directe du code passport/lib/strategies/session.js sur github... :/
 
-/*
-app.use((req, res, next) => {
-    console.log("Finished trying to authentify request as an existing session");
-    console.log("req.user: "+req.user);
-});
-*/
+// connect-flash is middleware for flashing messages, used in adminview
+app.use(flash());
+
+/**
+ * @desc SETUP DE ADMINVIEW
+ */
+// setting up view engine for pug, for adminview
+console.log("Running at", __dirname);
+let viewpath = path.resolve(__dirname, 'views');
+app.set('views', viewpath);
+app.set('view engine', 'pug');
+
 
 
 /**
@@ -186,7 +195,7 @@ app.post('/login',
 */
 
 /**
- * @desc API GRAPHQL
+ * @desc API GraphQL
  */
 const environment = process.env.NODE_ENV || 'development';
 
@@ -199,13 +208,13 @@ const context = async ({ req }) => {
     let uid;
     let password;
     
-    // console.log("Responding to graphql request...");
-    /*console.log(`
+    console.log("Responding to graphql request...");
+    console.log(`
     | User: ${req.user ? req.user.uid : "none"}
     | Authorization: ${req.headers.authorization}
     | Authenticated: ${req.isAuthenticated()}
     `.trim());
-    */
+    
     if(req.isAuthenticated()) {
         console.log("graphql API is receiving a request from an authenticated user! \\o/");
         try {
@@ -223,11 +232,11 @@ const context = async ({ req }) => {
     
     return {
         request: req,
-        bindUser: { uid, password }
+        user: { uid, password }
     }
 }
 
-const graphServer = new ApolloServer({
+const server = new ApolloServer({
     ...schema,
     context,
     playground: {
@@ -237,26 +246,8 @@ const graphServer = new ApolloServer({
         }
     }
 });
-graphServer.applyMiddleware({ app });
 
-
-
-/**
- * @desc SETUP DE ADMINVIEW, L'INTERFACE ADMIN DES BDD
- * Remarque: le graphiql est desormais integre a express-graphql (mai 2018), donc il n'est plus possible de le proteger par connect-ensure-login, ni donc de considerer qu'il fait partie de l'adminview.
- * C'est relativement grave, car n'importe qui se connectant directement a [adresse_IP_de_roued]/graphql peut faire des requetes a la base de donnees de sigma
- * Donc il faudra retirer cette fonctionnalite en production ; or elle est pratique, meme en production, pour des sanity checks.
- * ...bref integrer graphiql a express-graphql etait completement con.
- */
-
-// setting up view engine for pug, for adminview
-console.log("Running at", __dirname);
-let viewpath = path.resolve(__dirname, 'views');
-app.set('views', viewpath);
-app.set('view engine', 'pug');
-
-// connect-flash is middleware for flashing messages, used in adminview
-app.use(flash());
+server.applyMiddleware({ app });
 
 // GraphQL voyager affiche une représentation sous forme de graphe du schema GraphQL
 // accessible depuis adminview
@@ -268,11 +259,8 @@ app.use('/voyager',
 // on utilise un express.Router qui sert a creer un "sous-middleware stack".
 app.use('/adminview', router); // catches and resolves HTTP requests to paths '/adminview/*'
 
-// catch all other GET requests.
-// il est bien sur essentiel de mettre ceci a la toute fin du middleware stack !
-app.get('/*',
-    ((req, res, next) => res.redirect('/adminview'))
-);
-
+app.use('/', (req, res) => {
+    res.redirect('/adminview');
+});
 
 export default app;
diff --git a/src/graphql/resolvers/groups.js b/src/graphql/resolvers/groups.js
index d626625d48410653ebb4694ca48913f039a37848..cf5f798b43d7c7349e65db2511d136bea120ae7c 100644
--- a/src/graphql/resolvers/groups.js
+++ b/src/graphql/resolvers/groups.js
@@ -1,4 +1,3 @@
-import knex from '../../../db/knex_router';
 import * as connectors from '../connectors/connectors';
 import * as authentifiers from '../connectors/authentifiers';
 
@@ -6,7 +5,6 @@ const GroupResolvers = {
     // @rights viewer(obj.uid)
     Group: {
         __resolveType: async (obj) => {
-
             switch (obj.type) {
             case "simple":
                 return "SimpleGroup";
@@ -16,35 +14,33 @@ const GroupResolvers = {
         }
     },
 
-
     // @rights viewer(obj.uid)
     SimpleGroup: {
-
-        admins: async function (obj, args, context) {
+        async admins(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return await user.ldap_access.listMembers(context.user, obj.uid);
         },
 
-        members: async function (obj, args, context) {
+        async members(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user.ldap_access.listMembers(context.user, obj.uid);
         },
 
-        likers: async function (obj, args, context) {
+        async likers(obj, args, context) {
             return connectors.utilisateur.listMembers(context.user, obj.uid);
         },
 
-        privatePosts: async function (obj, args, context) {
+        async privatePosts(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedPrivatePosts(user, obj.uid);
         },
 
-        questions: async function (obj, args, context) {
+        async questions(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedQuestions(user, obj.uid);
         },
 
-        answers: async function (obj, args, context) {
+        async answers(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedAnswers(user, obj.uid);
         }
@@ -52,20 +48,20 @@ const GroupResolvers = {
 
     // @rights viewer(obj.uid)
     MetaGroup: {
-        members: (obj, args, context) => {
+        async members(obj, args, context) {
         },
 
-        privatePosts: async function (obj, args, context) {
+        async privatePosts(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedPrivatePosts(user, obj.uid);
         },
 
-        questions: async function (obj, args, context) {
+        async questions(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedQuestions(user, obj.uid);
         },
 
-        answers: async function (obj, args, context) {
+        async answers(obj, args, context) {
             let user = await authentifiers.member(context.user, obj.uid);
             return user && connectors.receivedAnswers(user, obj.uid);
         }
diff --git a/src/routing/admin.router.ts b/src/routing/admin.router.ts
index 51226f463f751c5f5330dcd5bd820ab437001f21..de79bca62fceca9e955795650b87026e8a52e1a3 100644
--- a/src/routing/admin.router.ts
+++ b/src/routing/admin.router.ts
@@ -40,18 +40,14 @@ router.get('/avlogin', function (req, res) {
 router.get('/admin',
     ensureLoggedIn('/adminview/avlogin'),
     function (req, res) {
-        console.log('adminview: Connecting to ' + req.url);
         let userName;
         // Une erreur a ce stade peut etre triggered si req.user n'existe pas
         // mais pour autant on est assures que la personne est bien authentifiee
         // donc on laisse passer sans déclencher d'erreur 500
         try {
             let user = req.user;
-            console.log('adminview: Welcome,', user.uid);
             userName = user.uid;
         } catch (err) {
-            console.log("Warning: in admin_router router.get('/admin')");
-            console.log(err.message);
             userName = "No one";
         }
         res.render('home', { title: 'Home', port: port, userName: userName });
diff --git a/src/views/login.pug b/src/views/login.pug
index b96c36f93cdadc50373f81915110930761c6efad..c37411aa39f3c655152caae71a686036bc489eac 100644
--- a/src/views/login.pug
+++ b/src/views/login.pug
@@ -4,7 +4,6 @@ block content
     img(src="/assets/logo_sigma_large.png", width="240px", id='logo', alt="Logo sigma")
     h1 Sigma backend API
     p Veuillez vous connecter.
-    p <em>Please log in.</em>
     p #{errorMessage}
     form(action="/adminview/avlogin", method="post")
         div.form-group
@@ -13,5 +12,4 @@ block content
         div.form-group
             label(for="password") Password
             input.form-control(type="password", placeholder="Password", name="password")
-        button.form-control(type="submit",class="button") Connexion/<em>Log in</em>
-        
\ No newline at end of file
+        button.form-control(type="submit",class="button") Connexion