Semestre 3
Compétences
M8

Compétence M8

En fonction des projets déterminés autour de la « Conception et implémentation des services numériques », savoir identifier, choisir (y-c défendre) et adapter les solutions les plus appropriées pour les défis rencontrés

  • Quoi :

Cette compétence implique la capacité à évaluer, sélectionner et justifier les outils et technologies les plus appropriés pour répondre aux besoins spécifiques des projets en matière de conception et d'implémentation de services numériques.

  • Comment :
  1. Choix de REALM pour la base de données : J'ai choisi REALM, une base de données locale pour Android et iOS, en raison de sa performance supérieure et de sa facilité d'intégration par rapport à d'autres options comme Iris. REALM offre une synchronisation en temps réel et une réactivité qui étaient cruciales pour le projet.
import 'package:realm/realm.dart';
part 'xxxxxxx_data.g.dart';
 
 
@RealmModel()
class _Datalogger {
  @PrimaryKey()
  late ObjectId id;
  late String xxxx;
  late String xxxx;
  late String macAddress;
  late String model;
 
  late List<_Data> dataEntries;
}
 
@RealmModel()
class _Data {
  @PrimaryKey()
  late ObjectId id;
  double? humidity;
  double? temperature;
  double? pressure;
  int? timestamp;
}
  1. Utilisation de Pusher : Après avoir réalisé un tableau comparatif, j'ai déterminé que Pusher était le meilleur outil pour nos besoins en termes de coût, support communautaire et facilité d'utilisation, ce qui le rendait idéal pour notre projet nécessitant des fonctionnalités de communication en temps réel.
FrameworkCoûtCaractéristiques PrincipalesFacilité d'IntégrationPerformanceSupport ClientDocumentationCas d'Usage Typiques
Twilio Chat - GratuitGratuitInclut 1 000 visiteurs/mois, 500 000 enregistrements ETL/mois, 2 sources, plus de 450 intégrations, 1 destination de data warehouseFacileRobusteSupport par email et communautéDisponibleIdéal pour les entreprises de toutes tailles
Twilio Chat - PayantÀ partir de 120 $/moisTout ce qui est dans le gratuit plus : inclut 10 000 visiteurs/mois, 1 000 000 enregistrements ETL/mois, sources illimitées, accès API publicAvancéePlus robusteSupport prioritaireDisponibleEntreprises avec besoins d'engagement élevés
SendBird - GratuitGratuit100 MAU, 10 connexions simultanées, toutes les fonctionnalités pro, support communautaire
SendBird - Payant399 $/mois5K MAU, les essentiels de la messagerie moderne, modération de base, assistance payante
PubNub - GratuitGratuitJusqu'à 200 MAUs ou 1M transactions totales par mois
PubNub - Payant49 $/moisJusqu'à 1 000 MAUs, jusqu'à 3 000 transactions par MAU
CometChat - Gratuit109 $/mois26-1 000 MAUs, fonctionnalités de chat principales, intégration facile, infrastructure robuste, support par email et communautéFacile avec outils sans codeRobusteSupport par email et communautéDisponibleStartups et petites entreprises
CometChat - Payant529 $/mois26-1 000 MAUs, tous les essentiels, engagement utilisateur robuste, 15k minutes de voix et vidéoIntégration avancéePlus robusteSupport prioritaireDisponibleEntreprises en croissance
Pusher Chatkit - GratuitGratuit200k messages/jour, 100 connexions simultanéesStandard
Pusher Chatkit - Payant49 $/mois1 million messages/jour, 500 connexions simultanéesStandard
Stream Chat - GratuitGratuit25 MAU, 25 connexions simultanéesSupport communautaire
Stream Chat - Payant399 $/mois10 000 MAU, 500 connexions simultanées, modération avancée, conservation illimitée des messages, support hors ligne, exportation des données, aucune limite sur les membres ou les canauxModération avancée & filtresDisponibleEnvironnements de production exigeants
Chatwoot - GratuitGratuitJusqu'à 2 agents, support par chat, conservation des messages limitée à 500 par mois, données conservées 30 joursFacileStandardSupport par chatDisponiblePetites équipes et startups
Chatwoot - Payant19 $/agent/moisJusqu'à 2 agents, support par chat et email, requêtes de fonctionnalités prioritaires, conservation illimitée des messages, données conservées indéfinimentFacileStandardSupport par chat et emailDisponibleÉquipes plus grandes et startups
Ably - GratuitGratuit6M messages/mois, 200 canaux et connexions simultanées, SLA de disponibilité, pas de coûts pour l'hébergement sur siteFacileHauteSupport communautaireDisponibleExploration des capacités de la plateforme
Ably - PayantVariable0.01 $ par MAU, 0.9 $ par GB pour la bande passante en temps réel, 2.5 $ par GB pour la base de données en temps réelFacileHauteSupport technique étenduDisponibleInfrastructure évolutive pour besoins croissants
Tinode - GratuitGratuitInstallation par soi-même, support communautaire, configuration simplifiée des notifications push, surveillance de la productionFacileStandardSupport communautaireDisponiblePetites équipes et familles
Tinode - Payant500 $/anTout ce qui est dans le gratuit plus : gestion du serveur Tinode Admin, configuration simple des applications iOS et Android, applications personnalisées, demandes de fonctionnalités prioritairesAvancéeÉlevéeSupport prioritaireDisponibleExploitation d'une entreprise
Mesibo - GratuitGratuitAppels vidéo et voix gratuits, conférences, serveur TURN à 0.4 $ par GB, scripts et chatbots à 0.01 $ par seconde de durée CPU, conservation des messages illimitée, taille de transfert de fichiers illimitéeFacileHauteSupport pour serveur TURN, scripts et chatbotsVoir page de conférenceAppels vidéo et voix un à un, conférences, scripts et chatbots personnalisables
  1. Adoption de JIRA : J'ai opté pour JIRA pour la gestion de projet en raison de sa capacité à structurer et à suivre efficacement le travail en équipe, ainsi que pour ses fonctionnalités de reporting avancées.
  2. Application de Scrum : Scrum a été adopté pour sa méthode agile, qui favorise la flexibilité, la réactivité aux changements et une collaboration étroite au sein de l'équipe.

Weeklymeeting Exemple d'un weekly meeting


Dailymeeting User stories


Dailymeeting Diagramme de Gantt pour voir l'évolution du projet

  1. Intégration de GIT : J'ai choisi GIT pour le contrôle de version en raison de sa robustesse, de sa flexibilité et de sa large adoption dans la communauté des développeurs, facilitant la collaboration et le suivi des modifications.

git Le projet Koloka sur GitHub

  1. Sélection de Docker : Docker a été choisi pour sa capacité à simplifier le déploiement des applications en conteneurisant l'environnement, garantissant ainsi la cohérence entre les environnements de développement et de production.

docker Docker pour le projet Koloka

  1. Utilisation de Node.js : Node.js a été sélectionné pour sa performance en matière de développement back-end, en particulier pour les applications nécessitant un traitement rapide et un environnement évolutif.

docker NodeJS dans le projet Koloka

  1. Choix de Slack : Slack a été utilisé comme outil de communication de l'équipe pour sa facilité d'utilisation, ses intégrations avec d'autres outils et sa capacité à organiser les communications en canaux dédiés.

docker Outils de communication

  1. Préférence pour Insomnia : J'ai choisi Insomnia pour tester les API en raison de son interface utilisateur intuitive et de sa capacité à gérer facilement différentes configurations d'environnements.

insomnia Insomnia pour tester les API

  1. Adoption d'Excalidraw : Excalidraw a été utilisé pour sa simplicité et son efficacité dans la création de diagrammes et de schémas visuels, aidant à conceptualiser et à communiquer les idées de manière claire.

pusher Schema intégration de Pusher

  1. Utilisation de Figma : Adopté pour la conception et le prototypage d'interfaces utilisateur grâce à ses outils de design collaboratif.

prototype Prototype projet AKTS

  1. Intégration de Grafana : Utilisé pour la visualisation de données et la création de tableaux de bord interactifs, permettant un suivi efficace des performances.

Grafana Un graphique sur Grafana

  • Pourquoi :

Chaque outil et technologie a été sélectionné pour maximiser l'efficacité, améliorer la collaboration et garantir la réussite du projet. Leur utilisation a permis de relever les défis spécifiques du projet tout en optimisant les processus de développement et de gestion.

  • Application pratique :

Dans la mise en œuvre de ces outils et technologies, j'ai non seulement pu répondre efficacement aux exigences du projet, mais j'ai également acquis une expérience précieuse dans la sélection et l'utilisation de diverses solutions numériques. Cette compétence m'a permis de naviguer dans les défis techniques avec assurance et de contribuer de manière significative à la réussite des projets.

  • Réflexion personnelle :

L'expérience d'identifier et de choisir les outils et technologies adaptés pour mes projets numériques a été un aspect fondamental de mon apprentissage professionnel. La décision d'utiliser REALM, Pusher, JIRA, GIT, et d'autres outils était basée sur une évaluation détaillée de leurs fonctionnalités et de leur pertinence par rapport aux exigences spécifiques de mes projets. Cette compétence m'a enseigné l'importance d'une analyse réfléchie et d'une capacité d'adaptation dans le domaine technologique en constante évolution. J'ai appris que le succès d'un projet numérique repose non seulement sur les compétences techniques, mais aussi sur la capacité à choisir judicieusement les ressources et à les aligner de manière efficace avec les défis uniques du projet. Cette expérience a renforcé ma confiance en ma capacité à prendre des décisions éclairées et à justifier mes choix technologiques dans un contexte professionnel.

Last updated on June 21, 2024