Skip to content

1. Architecture et Stack

darkjaja edited this page Dec 3, 2021 · 5 revisions

Objectifs

  • une API
  • un bot
  • un front

Interface front

Architecture des dossiers

front reactJS + Typescript

Fonctionnement

schémas + explications

Design patterns

expliquer pour chaque pattern pourquoi on l’a choisi et comment on l’a implémenté

Interface back

Architecture des dossiers

back bot handlers connection domain commands queries api router controllers domain commands queries shared CQRS models repositories => interface bus pour bot et api main.go (lance le bot + l’api)

Gestion base de données

Notre bot doit pouvoir gérer un utilisateur et une connexion simple à une base de données relationnelle telle que MySQL ou PostgreSQL. Fonctionnement

schémas + explications

Design patterns

Pattern Command

Pour la partie bot discord, nous avons besoin d’un pattern permettant de gérer facilement et efficacement les commandes envoyées par l’utilisateur. Le pattern Command convient totalement à un développeur qui, comme dans ce cas-ci, sera amené à créer une nouvelle commande pour le bot à chaque fois qu’une nouvelle feature sera décidée.

Refacto

Devant le constat d'un copier collé de code redondant dans le développement, nous avons pris la décision de créer et d'utiliser un package utilitaire facilitant le travail et la lisibilité du code :

  • Créer un pkg permettant de concentrer le code partagé au travers des applications => IN_REVIEW 👨‍💻
  • Revoir la structure de la commande generique
  • Utiliser la méthode d’appel API (PerformRequest) dans tous les appels déjà existants
  • Résoudre la duplication des conditions sur les requêtes en base de données.

Package:

Le package contiendra:

  • les models
  • connexion db
  • cors
  • environnement (helper)
  • Connecteurs DomainAPI/DiscordAPI
  • Méthodes utilitaires (parser etc..)
  • Services ?