Git Product home page Git Product logo

backend-hello's People

Contributors

camillebrulotte avatar hugomigner avatar jonathanduvalv avatar mysticfragilist avatar

Stargazers

 avatar

Watchers

 avatar  avatar

backend-hello's Issues

Faire un système de recommandation

Lié à : ApplETS/Frontend-Hello#135

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez décrire.
Actuellement, le système de recommandation n'est pas encore implémenté côté backend. Cela limite notre capacité à fournir des recommandations personnalisées aux utilisateurs basées sur leurs préférences et comportements.

Décrivez la solution que vous souhaitez
Développer et intégrer la tâche backend pour le système de recommandation. Cela inclut la création d'algorithmes de recommandation, l'intégration avec la base de données utilisateur, et la mise en place des API nécessaires pour fournir des recommandations à l'application web et mobile.

Empêcher un organisateur où le compte a été désactivé de se connecter

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez décrire.
Actuellement, un organisateur désactivé peut toujours tenter de se connecter à l'application. Cela pose des problèmes de sécurité et de gestion des utilisateurs, car les organisateurs désactivés ne devraient pas avoir accès à l'application.

Décrivez la solution que vous souhaitez
Mettre en place une fonctionnalité qui empêche les organisateurs désactivés de se connecter à l'application. Lorsque l'état d'un organisateur est défini sur désactivé, il devrait être automatiquement bloqué de toutes les tentatives de connexion.

Ajouter un nombre maximum de caractères pour le champ 'Description' lors de la création d'une publication

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez décrire.
Actuellement, il n'y a pas de limite de caractères pour le champ 'Description' lors de la création d'une publication. Cela peut entraîner des descriptions trop longues qui affectent la lisibilité et l'affichage des publications.

Décrivez la solution que vous souhaitez
Mettre en place une limite maximale de caractères pour le champ 'Description' lors de la création d'une publication. Cela permettra de garantir que les descriptions restent concises et lisibles, améliorant ainsi l'expérience utilisateur et l'esthétique de l'application.

Fusionner comptes modérateurs et organizateurs

Cette tâche est une tâche de réingenierie pour fusionner les deux tables d'utilisateur ensemble avec un nouveau champs type. Le but serait qu'à la place d'avoir deux tables (Organizer et Moderator) on aurait une seule table (User) qui contiendrait les 2 types avec un nouveau champs enum "UserType(ORGANIZER, MODERATOR)". Ceci permettra plus de granularité dans l'ajout de rôle ultérieur.

Definition of Done (DOD)

  • Le EventManagementContext a maintenant tous les DbSet incluant DbSet.
  • Les repository ont été modifié pour retourner les bonnes informations.
  • Les classes d'entités ont été modifié, et User détient le nouveau champs "type" qui est overriden dans les deux classes hérités.
  • La méthode utilisé pour faire l'héritage d'entity est Table per Hierarchy. Le discriminateur de tables serait le champs UserType d'enum.

Compte de vues sur l'annonce

Il serait intéressant d'avoir un compte de vue à des fins de statistiques non précise pour l'organisateur (pour comparer entre différentes annonces). Seulement l'organisateur et le modérateur peut voir les vues. Les utilisateurs non connecté (ÉTSMobile et Calendrier ETS) ne peuvent pas voir ce nombre.

Definition of Done (DOD)

  • Avoir un système de compte de vues peut-être parmis les solutions suivantes:
    • Compter lors de l'accès au fetch de l'annonce. Peut ajouter de la latence et peut introduire des problèmes de concurrence. Aussi, réfléchir à quand le cache est hit (il ne comptera pas comme une vue supplémentaire si ça n'entre pas dans la fonction).
    • Faire un point d'accès spécifique pour compter. Plus granulaire mais rajoute de la logique qui pourrait être bypass par les utilisateurs (Quelqu'un pourrait se faire un script pour booster ses vues... Bien que ça serait inutile puisque cette info est uniquement pour lui)
    • Possibilité d'utiliser REDIS pour incrémenter un compte par annonce. Ce compte doit être synchroniser régulièrement avec la base de donnée mais au moins l'incrémentation sur REDIS est une opération atomique qui peut être fait de manière concurrentiel.
  • Retourner ce compte lors du fetching de la liste d'annonces pour modérateur et organisateurs.

Documenter l'architecture et construire un Wiki

Le but de cette tâche est de rassembler toute la documentation du Backend afin de construire une documentation étoffé de l'architecture, des composantes internes et externes et de mettre en place un wiki facile à utiliser servant de guide au développement.

Construire un filtre de profanités

Pour le moment le backend n'a aucune vérification des termes employé lorsque l'on crée une annonce. Il serait intéressant de pouvoir identifier certains mots ou phrases contenant des profanités connus et identifiable.

Ce filtre pourrait être appliqué au titre et à la description d'une nouvelle publication, autant à la création qu'à la modification.

Plusieurs liste de profanités sont disponible en ligne comme projet open-source, il faudrait en trouver une anglophone et une francophone potentiellement français-Canada, français-France et anglais-Générique.

Ajouter un compteur de nombre de vue

Élaborer une solution pour compter un nombre de vue sur des annonces. Ce compte peut être approximatif et permettrai de symboliquement afficher une estimation du nombre de visionnement de l'annonce pour les organisateurs et modérateurs. Les connexions anonymes (ÉTSMobile et calendrier en ligne) ne serait pas en mesure de voir ce chiffre.

Definition of done (DOD)

  • Avoir un système pour compter les vues.
    • Si on incrémente lors de la récupération d'annonce qu'arrive-t-il quand on passe par le cache? il faut compter aussi... peut être difficile.
    • Si on fait un endpoint qu'on hit quand quelqu'un visualise une annonce on peut avoir plus de précision, mais rajouter de la latence, voir si c'est un tradeoff intéressant!
    • Il est possible d'utiliser REDIS pour incrémenter et permet de tenir à jours beaucoup plus rapidement et de façon thread-safe un compte que sur la DB. il faudrait régulièrement updater la BD avec le compte sur REDIS pour s'assurer que lors du reboot de l'instance REDIS on ne perds pas tout. À noter que REDIS est memory based et ne sauvegarde pas de mémoire passer ça.
  • Retourner le compte de vue dans la liste des annonces pour modérateurs et organisateurs.

Ajouter les traductions pour les étiquettes lors de la création d'une annonce

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez décrire.
Actuellement, les étiquettes (tags) ne sont disponibles qu'en français lors de la création d'une annonce, même lorsque la langue du site est Anglais. Cela pose des problèmes de compréhension et d'accessibilité pour les utilisateurs qui parlent différentes langues.

Décrivez la solution que vous souhaitez
Mettre en place une fonctionnalité qui permet d'envoyer les étiquettes en anglais aussi.

Definition of done (DOD):

  • Ajouter une colonne non-nullable NameEn;
  • Renommer la colonne Name -> NameFr;
  • Créer une migration pour modifier tous les tags NameEn;
  • Modifier les objets de responses pour retourner NameEn et NameFr.

Retirer supabase et utiliser une solution d'authentification maison

Afin de garder les données à l'interne dans l'école et d'éviter de dépendre d'un service tiers pour l'authentification, il serait préférable de changer à une solution d'authentification internes.

Voici un tutoriel en .NET8 permettant de setup une base de données avec tous les champs d'authentification nécessaire. https://www.youtube.com/watch?v=8J3nuUegtL4

Du travail devra être fait au niveau du front-end pour migrer l'authentification.

Sauvegarder des modifications de brouillon

Comme son nom l'indique le but de cette tâche serait d'être en mesure de modifier des brouillons de publication déjà créé.

un nouveau endpoint [HttpPut] sur les draft devra être fait et implémenter pour gérer la modification d'un brouillon.

Pouvoir filtrer des nouvelles

Lié à : ApplETS/Notre-Dame#993

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez décrire.
Actuellement, il n'existe pas de système de filtrage dans ÉTSMobile pour les annonces. Cela rend difficile pour les utilisateurs de trouver rapidement et facilement les informations qui les intéressent.

Décrivez la solution que vous souhaitez
Développer et intégrer une fonctionnalité de filtrage dans ÉTSMobile. Cela inclut la création des critères de filtrage nécessaires (par exemple, date, catégorie, pertinence), l'intégration avec la base de données pour récupérer et trier les informations pertinentes, et la mise en place des API nécessaires pour fournir les options de filtrage à l'interface utilisateur.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.