Cas d’étude : notre solution pour le développement de sites e-commerce

Le e-commerce est aujourd’hui incontournable lorsque l’on veut acquérir une bonne visibilité sur Internet. Plusieurs solutions existent sur le marché, mais ne sont pas toujours très flexibles et ne correspondent pas forcément au besoin réel du client.

Les projets Aquarelle Textile et Guard Nett

aquarelle textile bannerAquarelle Textile est une société spécialisée dans la confection de tissu pour l’ameublement d’intérieur. Editeur de tissu haut de gamme – le but est de créer un site Internet afin de présenter son entreprise et ses offres aux professionnels du textile comme les hôtels et des décorateurs d’intérieur.

Ce domaine possède un énorme potentiel en terme d’innovation. Peu de concurrents sont implantés avec les nouvelles technologies et ont plus généralement une faible visibilité sur Internet.

Pour ce projet, nous avons collaborer une nouvelle fois avec l’agence de communication Nodrama à Paris.

nodrama communication

 

Objectif : Réaliser un studio de confection en ligne permettant de vendre directement la confection de tissus par Internet. L’outil est principalement destiné aux professionnels du textile ou aux utilisateurs expérimentés étant donné la complexité des données.

Le site joue le rôle de prototype ou « proof of concept » avant tout, afin de prouver la faisabilité et l’utilisation d’un outil en ligne pour faciliter certains aspects du travail. Comme pour la majorité des sites Internet, nous avons mis en place un responsive design, permettant de bénéficier d’un confort d’utilisation sur tous les supports mobiles et tablette.

Voir le site Aquarelle-textile

coussins aquarelle

Suite à la création de ce studio de confection, nous avons réalisé un autre site de vente en ligne sur le même thème. Guard Nett – nettoyage de tissus, cuir comme des rideaux ou canapé.

L’interface est ici très simple, puisqu’elle propose un écran unique pour la sélection des produits. Tout est géré ensuite dynamiquement, de la saisie des quantité jusqu’à la mise en panier.

 

Points fort de la solution B.ecommerce

Chaque métier est complètement différent et il est important de le comprendre au mieux afin de proposer une solution la plus adéquate possible.

Notre framework Becommerce peut s’adapter à une demande très spécifique. Nous pouvons développer des modules sur-mesure qui s’y intègre parfaitement – comme ici le « studio de confection » permettant de calculer le métrage du tissu en fonction des mesures que l’on saisi.

beer bottle

D’autres références peuvent illustrer cet aspect, comme thebeerfab.com : en permettant de créer des étiquettes de bière personnalisées, cette boutique en ligne ne s’apparente pas à un site e-commerce classique. On y retrouve pourtant toutes les fonctionnalités utiles dans la vente en ligne.

Néanmoins, certains sites de vente en ligne sont beaucoup plus traditionnels en présentant une navigation et un tunnel de vente classique.

Nous pouvons donc proposer un développement sur mesure, tout en se basant sur une architecture globale existante afin de réduire les coûts et d’accélérer le développement.

 

Un véritable outil CRM pour votre entreprise

  • Gestion des commandes : gérez les statuts, le suivi et le contenu des commandes. Les + : Génération des factures, envoi de mails automatiques, SAV.
  • Gestion des clients : captez toutes les informations des clients et de leurs visites sur votre site.
  • Gestion des produits : mise à jour des stocks, des informations du produit, export/import, création de flux vers des places de marchés
  • Gestion des marques, fournisseurs, transporteurs

De plus, la solution permet d’optimiser efficacement le SEO en respectant les bonnes pratiques  de référencement naturel. Notez que nous proposons également des prestations supplémentaires, notamment pour le suivi de positionnement.


Si vous êtes intéressés et que vous souhaitez plus de détails sur la solution Becommerce, retrouvez la présentation sur notre site ou n’hésitez pas à nous contacter pour avoir plus d’informations !

Bookmark and Share

Une application mobile iPhone et Android native pour Enjoy Your Business

Un petit billet pour vous parler de la collaboration avec notre partenaire Enjoy Your Business, une Startup dynamique bien connue du paysage de l’innovation à Bourges et en Région Centre qui s’est fixé un challenge de taille : supprimer l’envoi d’email au sein d’une organisation en proposant une interface Cloud de gestion de projet complète et transversale (Gestion Électronique de Documents, Réseau Social d’Entreprise, Timeline de discussion, Gestion de projet en mode Agile, Plans d’actions et suivis …)

La plateforme collaborative Enjoy possède une interface web d’une rare originalité, une innovation qui traduit bien la volonté de se démarquer des solutions plus classiques du marché, et qui va permettre d’améliorer la collaboration et l’efficacité au sein de votre entreprise.

Sur ce marché en plein boom des solutions de gestion de projet et d’efficacité en entreprise en mode SaaS, Enjoy se frotte à une multitude de concurrents (Slack, Trello, DropBox, Google Apps …) qui choisissent généralement de se focaliser sur une seule partie du problème (messagerie collaborative, GED, RSE …), tandis qu’Enjoy pousse ses utilisateurs à réfléchir dans la globalité de leur organisation : une seule interface intuitive qui regroupe l’ensemble de mes besoins.

Pour pouvoir garantir une expérience multi-supports à ses utilisateurs, Enjoy propose bien entendu une interface responsive design qui s’adapte à l’usage depuis le navigateur d’un smartphone ou d’une tablette.

Naturellement, devant l’augmentation importante de l’usage du mobile en entreprise et afin de pouvoir rivaliser avec des concurrents « mobile first », Enjoy a fait appel à Boréal pour réfléchir et développer en partenariat une 1ère version de l’application mobile native Enjoy afin de pouvoir proposer une expérience vraiment complète.

Comment greffer efficacement des applications iOS et Android natives sur la solution web Enjoy ?

L’objectif de cette 1ère version était de mettre en place une timeline des contributions, associée à l’envoi de notifications push pour inciter les mobinautes à rester connectés en permanence et à dynamiser leurs projets. Les posts sont affichés du plus récent au plus ancien et peuvent être retrouvés via un moteur de recherche

L’appli native affiche également les fonctions principales de la plateforme Enjoy via des Webviews : Contributions / Mes actions / Mode réunion / Documents

Celles-ci sont affichées via un menu hamburger à gauche, à partir duquel vous pourrez aussi modifier votre profil (photo et mot de passe).

 

 

 

 

 

Avec cette nouvelle application iPhone et Android, Enjoy entre de plein fouet dans le monde du mobile et va appliquer sa stratégie agile habituelle : mettre ses utilisateurs au centre, écouter attentivement et comprendre leurs retours, faire évoluer avec cohérence les futures versions.

Si vous êtes intéressés pour découvrir les résultats, contactez Enjoy Your Business ici pour pouvoir tester leur solution web et nos applications mobiles à télécharger ci-dessous

 

 

 

Les applications mobiles sont publiées sur les comptes développeurs propres à Enjoy Your Business, pour rappel Boréal propose ce service avec la gestion de votre compte/publication des releases pour 149 € HT / an / plateforme.

Les utilisateurs de #HubTech dans le Cher (la plateforme collaborative territoriale en création) peuvent actuellement tester une solution basée sur Enjoy et l’application mobile Boréal Business.Et pour terminer, après la #BoréalBeer (Potion magique de l’innovation :)) découvrez la nouvelle #EnjoyBeer brassée et étiquetée sur mesure par nos amis de TheBeerFab // Ils sont à votre dispo pour créer une bière à l’image de votre StartUp !

Bookmark and Share

Retour sur le 1er Startup Weekend de Bourges #SWBOURGES #1

Depuis début 2016, nous commencions à entendre parler d’un 1er Startup Weekend organisé à Bourges, info confirmée quelques semaines plus tard par https://twitter.com/emlecomte de la CCI du Cher – La date était fixée, du 22 au 24 Avril 2016

affiche-startupweekend-bourgesLe concept Startup Weekend, nous en avions entendu parler, mais nous n’y avions jamais participé. Pour Boréal, pas question de manquer cet événement même après une bonne semaine de travail, c’est décidé, on prend des billets pour toute l’équipe.

Entre temps, Romain a également été sollicité pour faire partie de l’équipe de mentors ; la participation de Boréal serait donc doublement enrichissante.

Boréal Business parmi les mentors du 1er Startup week end de Bourges

Retour sur les 54 heures du 1er Startup Weekend à Bourges et dans le Cher

Le vendredi en début de soirée, nous sommes biens accueillis par l’équipe organisatrice de la CCI (merci à eux : http://www.cher.cci.fr/)

On découvre les salles de l’INSA, de superbes locaux qui joueront un grand rôle dans la réussite de cet événement : salle de rencontre/restauration, amphi, immense salle de travail en open space

On commence à faire quelques rencontres autour d’une pizza de bienvenue, on croise des têtes connues, et plein de nouvelles !

Lancement officiel du weekend dans l’amphi avec https://twitter.com/LilyGros – Facilitatrice de l’événement qui nous détaille le concept, les valeurs, les rôles de chacun. Elle détend l’atmosphère et insuffle la dynamique 😉

Après quelques conseils avisés, chaque participant va pouvoir pitcher son idée : 30 pour secondes pour présenter le concept et accrocher l’auditoire. Sans le savoir, une grande partie de la performance du weekend se joue ici : les 8 ou 9 meilleurs pitcheurs seront retenus après une séance de récolte de gommettes à travers l’amphi pour former une équipe –> Un bon pitch sur une idée fun et innovante = une équipe qui se constitue rapidement avec des participants sur-motivés.

Rapidement les équipes se forment, certains sont venus en équipe et restent ensemble, d’autres membres viennent s’y greffer ; d’autres équipes se constituent from scratch. L’équipe de Boréal se scinde, chacun va rejoindre des projets différents.

Au boulot pour innover !

Ensuite tout s’enchaine assez vite, les équipes investissent le grand open space de travail et découvrent les membres et le matériel du BourgesLab.fr qui jouera un rôle déterminant sur l’ambiance et l’intérêt de l’événement, grâce à la précieuse aide qu’ils apporteront à toutes les équipes : avec leurs imprimantes 3D ils transforment les idées en prototypes !

Certains vont travailler tard dès le Vendredi pour affiner leur concept et organiser l’équipe malgré les conseils sur le repos distillés par @LilyGros … Rendez-vous le lendemain matin !

Le Samedi est certainement la journée la plus intense : on apprend ou on révise beaucoup de concepts et d’outils sur le monde des Start-Up puis chaque équipe les met en application directement.

Que l’on soit un professionnel expérimenté, un retraité dynamique ou un étudiant, il est toujours bon d’entendre que les expériences et le chemin de l’innovation sont ponctués d’échecs –> Des étapes normales dans la vie d’un entrepreneur, pour mieux rebondir et mieux recommencer.

Le Samedi après-midi tout le monde se lâche, les porteurs de projets affinent leur stratégie, les marketeurs bossent leur positionnement, les designers planchent sur leurs logos/maquettes et les développeurs foncent pour arriver à sortir un prototype fonctionnel. On voit vite les équipes qui s’organisent bien en répartissant les rôles et celles qui tâtonnent un peu plus : sachant qu’un travail bien préparé est déjà à moitié terminé, cela à toute son importance pour les résultats finaux.

Les mentors essaient de jouer leur rôle à fond en venant challenger chacune des équipes à tour de rôle, histoire de retrancher les porteurs de projets dans les cordes pour voir si le concept est viable et innovant.

La journée passe très vite, les projets avancent, certains travailleront encore une bonne partie de la nuit du Samedi au Dimanche, notamment les développeurs qui mettent un point d’honneur dans leur combat contre les machines 😉

Dimanche, dernière ligne droite avant les pitchs et les résultats

Après une nuit plus ou moins longue arrive le Dimanche, jour de verdict. C’est la course : tout le monde sait qu’il devrait être temps de bosser son pitch, réviser ses accroches, simplifier ses slides et clarifier ses explications pour accrocher le jury … mais on veut pouvoir montrer quelque chose de fonctionnel, prouver que le concept est réalisable avec un prototype de site web, d’appli ou d’interphone connecté. Du bon stress pour donner le meilleur de soi.

Finalement on y arrive, les pitchs finaux dans l’amphi … une belle expérience au cours de laquelle on verra 3 équipes prendre la tête du classement. Du LiveTweet et du Périscope dans tous les sens pour ponctuer l’expérience numérique.

A notre avis, personne ne regrette le temps passé à bosser pour le fun pendant ce long week end, ponctué de rencontres humaines qui valent le coup.

On peut clairement dire que ce 1er #SWBOURGES a posé les bases pour fédérer une communauté autour des StartUps et du numérique à Bourges et dans le Cher. Merci à la CCI pour l’organisation, Laurent BRIERE pour les photos/vidéos, les partenaires et tous les participants.

Quand à la suite et aux projets des 3 vainqueurs, nous allons en reparler très vite, restez connectés !

Partenaires du 1er Startup week end de Bourges

Découvrez également l’article de notre réseau Sphère Digitale à propos du 1er #SWBOURGES :

Sphère Digitale était présent lors du 1er Startup Weekend de Bourges

 

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Bookmark and Share

Locky virus : recover your encrypted files without paying

Un post un petit peu spécial : un de nos clients a été touché par le virus Locky ; virus qui chiffre la plupart des fichiers, et réclame une rançon pour obtenir la clef de déchiffrement, bref un truc bien sympa.

Nous avons pu récupérer la plupart des fichiers en utilisant cette technique :
Voici la méthode que nous avons utilisée, sans garantie.

  • Éteignez immédiatement l’ordinateur. Dans notre cas, le poste a été coupé environ 2h après l’infection
  • Branchez le disque compromis sur une machine Linux (Debian Jessie dans notre cas)
  • Utilisez l’utilitaire photorec (inclus dans le package testdisk, dispo sur le repo debian)
  • Selectionnez votre disque NTFS (probablement /dev/sdb)
  • Selectionnez la partition de données
  • Sélectionne le type de système de fichier : Other (FAT/NTFS/ …)
  • Sélectionnez « Extract file from whole partition »

Cela prend un long moment (environ 8h pour 130 Go de données). Les noms des fichiers sont partiellement perdus pendant la copie.

Il semble que le virus créé un nouveau fichier crypté, et supprime l’original, seule possibilité pour traiter les gros fichiers sans avoir à les charger dans la ram. Les fichiers originaux peuvent être récupérables via une lecture directe bloc à bloc du disque.


English version :

We’ve managed to recover the major part of the encrypted files for a client:

  • Shutdown the infected computer as soon as possible. (2h after infection in our example)
  • Plug the harddrive on a *nix system (for us Debian Jessie did the job)
  • Use photorec utility (included in testdisk package, at least on the debian repo)
  • Select your ntfs drive (probably /dev/sdb)
  • Select your data partition
  • Select the FS type : Other (FAT/NTFS/ …)
  • Use « Extract file from whole partition »

This is a very long process (on my system, it took aproximativly 8 hours for 130 GB) Filenames are lost in the process 🙁

The virus may creates a new encrypted file, and delete the original ; the only solution for big files without loading the whole file in memory in my opinion. So the old file may be recoverable with a direct block read.

Hope this could help someone

Bookmark and Share

Mood : la nouvelle application d’humeur pour iPhone et Android

mood

L’application Mood vous permet de partager simplement votre humeur avec vos contacts aux travers d’émoticônes. Vous pourrez aussi envoyer des SMS ou appeler un contact directement à partir de l’application. C’est simple et gratuit 🙂

iphone6_moodLe principe de l’application :

Le principe est simple : l’idée que l’équipe de Boreal Business avait pour cette application mobile, était de concevoir une application qui permettait de partager votre humeur du moment à vos contacts inscrits sur Mood. L’autre point important à respecter pour le développement (ça c’était juste pour relever un peu le défi 😉 ), était de concevoir une application sans la moindre chaîne de texte. L’application est donc basée uniquement sur des pictos et des émoticônes qui permettent de partager votre humeur du moment à vos contacts.

Le concept du vendredi libre :

Les vendredis libres consistent à développer une application dans la journée. Un speed-run de projet en quelque sorte. Tel était le défi pour le développement de Mood. Les développeurs de Boreal Business ce sont donc mis à leurs claviers/NetBeans/cafés le vendredi matin et les ont lâchés une fois l’application terminée. L’équipe de Boreal Business avait bien évidemment pensé au concept de l’application avant cette journée : une manière simple d’envoyer un message ultra-court à ses contacts.

La matinée a été consacrée au développement des webservices : nous avons fait dans le simple et efficace en utilisant PHP / MySQL / JSON via de simples appels HTTP. Nous avons tout de même pris le temps d’ajouter une couche de chiffrage sur nos webservices, quelques informations personnelles (le numéro de mobile) transitant par le réseau. Dans le même temps, nous avons travaillé sur les maquettes : un proto-storyboard griffonné sur un carnet, quelques ébauches sur Illus pour les couleurs, rien de plus ! Nous avons également déposé le nom de domaine (au Belize, juste pour la classe), créé l’hosting sur nos serveurs et installé un certificat SSL au passage. Une petite page web https://mood.bz/ avec le lien de téléchargement est mise en place également.

L’après midi a débuté avec le gros morceau : l’appli en elle même, avec en parallèle les versions iOS et Android. L’intégration des webservices a été, de manière assez surprenante, extrêmement rapide, quelques difficultés sur le chiffrage tout au plus. La tâche la plus longue, sans être la plus difficile est finalement toujours la même : les vues ! Créer les champs de texte, placer les éléments, checker la compatibilité avec les anciennes versions d’iOS et Android … Pour finir finalement vers 21h30, les doigts en miettes, les cerveaux sur OFF à pester contre le service iTunes Connect encore en panne 😉

Les enseignements de cette expérience

Ce projet nous a finalement permis de vivre les différentes étapes du développement d’un projet sur un très court terme : nous y avons finalement retrouve les mêmes répartitions temporelles que pour la plupart des projets.

  • Réaliser des maquettes précises des vues de l’application permet un réel gain de temps aux développeurs. Y revenir par la suite est tout de suite plus compliqué
  • Même sur des délais serrés, ne pas négliger les questions de sécurité et de vie privée
  • Le texte n’est pas toujours la meilleure solution pour expliquer une fonctionnalités.
  • JSON > XML.
  • Après 12h de code non stop à plein régime, les développeurs se mettent à parler en assembleur.

Téléchargez l’application

L’application est disponible depuis peu sur l’App Store et bientôt disponible sur Androïd. https://mood.bz/

Télécharger les applications mobiles Boréal Business sur votre iPhone

Bookmark and Share

Websocket et PHP : présentation de websocketd

Connecter une application mobile à des web-services via une web-socket

De plus en plus d’application utilisent le web-socket pour communiquer avec des web services. Les avantages sont multiples : plus de connexions/déconnexions intempestives, un transport de données beaucoup plus rapide, une économie de ressources (CPU coté serveur, batterie coté client), et la possibilité pour le serveur de pousser des données vers le clients de manière autonome.

Ces derniers mois, nous avons testé plusieurs approches pour créer le serveur Web-socket avec PHP.
Le premier problème qui se présente est la possibilité de pouvoir gérer de multiples connexions vers un seul port de destination.

Une seule solution pour gérer cela : utiliser la librairie pcntl de PHP, qui autorise l’utilisation d’un fork (comme en C). En combinant cette technique avec des sockets non bloquantes, il est possible de créer un serveur multi-processus, doté d’un processus maître de contrôle : gestion des déconnexions, spawn de nouveaux processus, maintient d’un pool de processus spare, etc. Dans la théorie tout est quasi possible.

Dans la pratique, cela s’avère un mauvais choix : PHP n’est pas du tout conçu pour cela :

  • Effectuer un fork est gourmand en ressource et très lent en PHP : l’intégralité de la mémoire du processus maître est copiée.
  • La communication entre les différents processus fils est complexe (via des signaux POSIX, l’utilisation d’une mémoire partagé via shmop devient vite aussi indispensable que peu pratique)
  • La communication entre un processus fils et le processus maître répond aux même contraintes
  • Le diagnostic des crashs et exceptions est plus difficile à tracer.
  • Des processus qui se zombifient sans arrêt (State Z). La commande « top » ressemble rapidement à un film de Roméro 😉
  • Franchement super lent

Vous l’aurez compris, vraiment pas la bonne solution.

Websocketd : un daemon simple et léger

Websocketd

Nous nous sommes alors tournés vers websocketd. Étant de grands fans de Linux, le concept nous a tout de suite plu : il s’agit d’un petit exécutable (dispo Unix/BSD/Win/OSX, 32 et 64bits)
qui permet d’interfacer n’importe quel binaire, script ou fichier avec une web-socket. Plus de gestion des fork, plus de problème de multi-threading !
Websocketd se charge de toute cette logique, difficile à mettre en place avec des langages comme le PHP. Le gain de temps est énorme, et la fiabilité bien meilleure.

Un petit exemple :

websocketd --port 9000 /var/www/ws-server.php

Cette commande va donc exposer le script ws-server.php via des web services sur le port TCP 9000. L’entrée/sortie se fait via STDIN et STDOUT

ATTENTION AU CHOIX DU PORT : après des heures de recherche, nous avons fini par découvrir que de nombreux opérateurs téléphoniques filtrent les données de manière un peu étrange sur certains ports. Par exemple, Bouygues Telecom semble filtrer les paquets entrants sur le port 8080, mais autorise (o_O ??) les paquets sortants. Si vous avez possibilité, utilisez le port 80 par sécurité, le 9000 que nous utilisons ici n’est -à ma connaissance et à l’heure actuelle- pas filtré.

Votre script PHP va être appelé à tourner de manière permanente : faites attention à libérer au maximum la mémoire et à régler set_time_limit à 0.
Vous devez aussi prendre quelques précautions pour éviter la saturation du service en limitant le nombre de connexions (iptables semble une bonne approche pour commencer)

ws-server.php : un simple service echo

#!/usr/local/bin/php
<?php
set_time_limit(0);

while(true){ // boucle infini, c'est un serveur !
    $f = fgets(STDIN);
    // appel bloquant, l’exécution est suspendue
    // tant qu'il n'y a pas de données

    if($f === false){ // STDIN fermé, on quitte
       break;
    }
    
    if(strlen($f) > 0){ // on a des données
        foreach(explode("\n",$f) as $line){ // une commande par ligne
           echo trim($line)."\n; // renvoi la ligne reçue
        }
    }
   
}

Il suffit de lire STDIN pour récupérer les données entrantes, et un simple echo pour les renvoyer au client (ou utiliser STDOUT). N’oubliez pas de faire un « chmod +x ws-server.php » pour le rendre exécutable en mode CLI

Cette solution à de nombreux avantages :

  • Plus de problème de multi-threading / fork et compagnie
  • Une utilisation simple, un outil = une tâche
  • Gestion propre du SSL/TLS
  • Économe en ressources
  • Vraiment. Beaucoup. Plus. Rapide.
  • Vous utilisez le langage que vous voulez. Vous pouvez même connecter les interfaces /dev à une websocket si ça vous chante !

Plus d’informations ici : http://websocketd.com/

En bonus, un script init pour websocketd, à placer dans /etc/init.d (testé sous Debian Jessie)
/etc/init.d/wsserver

#! /bin/sh
### BEGIN INIT INFO
# Provides: Webservice
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Webservices via websocket
# Description: WS via Websocket sur port 9000
### END INIT INFO

PIDF=/var/run/websocket
DAEMON=/bin/websocketd
ARGS="--port 9000 /var/www/ws-server.php"
USERID=1000 # UID de l'utilisateur sous lequel votre serveur tournera

case "$1" in
  start)
    echo "Start ws"
    start-stop-daemon --make-pidfile --start -b --pidfile $PIDF --quiet -c $USERID --exec $DAEMON -- $ARGS
    ;;
  stop)
    echo "Stop ws"
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDF
    ;;
  restart)
   echo "Restart ws"
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDF
    start-stop-daemon --make-pidfile --start -b --pidfile $PIDF --quiet -c $USERID --exec $DAEMON -- $ARGS
   ;;
  *)
    echo "Usage: /etc/init.d/wsserver {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
Bookmark and Share