mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
Revert "Melanie ite4"
This commit is contained in:
parent
94935d2a3a
commit
89189ca496
8 changed files with 51 additions and 113 deletions
|
|
@ -137,19 +137,14 @@ const GiftCheatSheet: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="question-type">
|
<div className="question-type">
|
||||||
<h4> 8. LaTeX et Markdown</h4>
|
<h4> 8. LaTeX </h4>
|
||||||
<p>
|
<p>
|
||||||
Les format LaTeX et markdown sont supportés dans cette application. Vous devez cependant penser
|
Le format LaTeX est supporté dans cette application. Vous devez cependant penser
|
||||||
à 'échapper' les caractères spéciaux mentionnés plus haut.
|
à 'échapper' les caractères spéciaux mentionnés plus haut.
|
||||||
</p>
|
</p>
|
||||||
<p>Exemple d'équation:</p>
|
<p>Exemple d'équation:</p>
|
||||||
<pre>
|
<pre>
|
||||||
<code className="question-code-block selectable-text">{'$$x\\= \\frac\\{y^2\\}\\{4\\}$$'}</code>
|
<code className="question-code-block">{'$$x\\= \\frac\\{y^2\\}\\{4\\}$$'}</code>
|
||||||
<code className="question-code-block selectable-text">{'\n$x\\= \\frac\\{y^2\\}\\{4\\}$'}</code>
|
|
||||||
</pre>
|
|
||||||
<p>Exemple de texte Markdown:</p>
|
|
||||||
<pre>
|
|
||||||
<code className="question-code-block selectable-text">{'[markdown]Grâce à la balise markdown, Il est possible d\'insérer du texte *italique*, **gras**, du `code` et bien plus.'}</code>
|
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ interface TextTypeOptions extends TemplateOptions {
|
||||||
function formatLatex(text: string): string {
|
function formatLatex(text: string): string {
|
||||||
return text
|
return text
|
||||||
.replace(/\$\$(.*?)\$\$/g, (_, inner) => katex.renderToString(inner, { displayMode: true }))
|
.replace(/\$\$(.*?)\$\$/g, (_, inner) => katex.renderToString(inner, { displayMode: true }))
|
||||||
.replace(/\$(.*?)\$/g, (_, inner) => katex.renderToString(inner, { displayMode: false }))
|
|
||||||
.replace(/\\\[(.*?)\\\]/g, (_, inner) => katex.renderToString(inner, { displayMode: true }))
|
.replace(/\\\[(.*?)\\\]/g, (_, inner) => katex.renderToString(inner, { displayMode: true }))
|
||||||
.replace(/\\\((.*?)\\\)/g, (_, inner) =>
|
.replace(/\\\((.*?)\\\)/g, (_, inner) =>
|
||||||
katex.renderToString(inner, { displayMode: false })
|
katex.renderToString(inner, { displayMode: false })
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
// MultipleChoiceQuestion.tsx
|
// MultipleChoiceQuestion.tsx
|
||||||
import React, { useEffect, useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import Latex from 'react-latex';
|
||||||
import '../questionStyle.css';
|
import '../questionStyle.css';
|
||||||
import { Button } from '@mui/material';
|
import { Button } from '@mui/material';
|
||||||
import TextType from '../../GiftTemplate/templates/TextType';
|
|
||||||
import { TextFormat } from '../../GiftTemplate/templates/types';
|
|
||||||
import Latex from 'react-latex';
|
|
||||||
|
|
||||||
type Choices = {
|
type Choices = {
|
||||||
feedback: { format: string; text: string } | null;
|
feedback: { format: string; text: string } | null;
|
||||||
|
|
@ -14,7 +12,8 @@ type Choices = {
|
||||||
};
|
};
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
questionContent: TextFormat;
|
questionTitle: string | null;
|
||||||
|
questionContent: string;
|
||||||
choices: Choices[];
|
choices: Choices[];
|
||||||
globalFeedback?: string | undefined;
|
globalFeedback?: string | undefined;
|
||||||
handleOnSubmitAnswer?: (answer: string) => void;
|
handleOnSubmitAnswer?: (answer: string) => void;
|
||||||
|
|
@ -22,24 +21,22 @@ interface Props {
|
||||||
}
|
}
|
||||||
|
|
||||||
const MultipleChoiceQuestion: React.FC<Props> = (props) => {
|
const MultipleChoiceQuestion: React.FC<Props> = (props) => {
|
||||||
const { questionContent, choices, showAnswer, handleOnSubmitAnswer, globalFeedback } = props;
|
const { questionTitle, questionContent, choices, showAnswer, handleOnSubmitAnswer, globalFeedback } = props;
|
||||||
const [answer, setAnswer] = useState<string>();
|
const [answer, setAnswer] = useState<string>();
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setAnswer(undefined);
|
|
||||||
}, [questionContent]);
|
|
||||||
|
|
||||||
const handleOnClickAnswer = (choice: string) => {
|
const handleOnClickAnswer = (choice: string) => {
|
||||||
setAnswer(choice);
|
setAnswer(choice);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const alpha = Array.from(Array(26)).map((_e, i) => i + 65);
|
const alpha = Array.from(Array(26)).map((_e, i) => i + 65);
|
||||||
const alphabet = alpha.map((x) => String.fromCharCode(x));
|
const alphabet = alpha.map((x) => String.fromCharCode(x));
|
||||||
return (
|
return (
|
||||||
<div className="question-container">
|
<div className="question-container">
|
||||||
|
<div className="title mb-1 text-center align-h-center">
|
||||||
|
{questionTitle}
|
||||||
|
</div>
|
||||||
<div className="question content">
|
<div className="question content">
|
||||||
<div dangerouslySetInnerHTML={{ __html: TextType({text: questionContent}) }} />
|
<Latex>{questionContent}</Latex>
|
||||||
</div>
|
</div>
|
||||||
<div className="choices-wrapper mb-1">
|
<div className="choices-wrapper mb-1">
|
||||||
{choices.map((choice, i) => {
|
{choices.map((choice, i) => {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
// NumericalQuestion.tsx
|
// NumericalQuestion.tsx
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import Latex from 'react-latex';
|
||||||
import '../questionStyle.css';
|
import '../questionStyle.css';
|
||||||
import { Button, TextField } from '@mui/material';
|
import { Button, TextField } from '@mui/material';
|
||||||
import TextType from '../../GiftTemplate/templates/TextType';
|
|
||||||
import { TextFormat } from '../../GiftTemplate/templates/types';
|
|
||||||
|
|
||||||
type CorrectAnswer = {
|
type CorrectAnswer = {
|
||||||
numberHigh?: number;
|
numberHigh?: number;
|
||||||
|
|
@ -13,7 +12,8 @@ type CorrectAnswer = {
|
||||||
};
|
};
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
questionContent: TextFormat;
|
questionTitle: string | null;
|
||||||
|
questionContent: string;
|
||||||
correctAnswers: CorrectAnswer;
|
correctAnswers: CorrectAnswer;
|
||||||
globalFeedback?: string | undefined;
|
globalFeedback?: string | undefined;
|
||||||
handleOnSubmitAnswer?: (answer: number) => void;
|
handleOnSubmitAnswer?: (answer: number) => void;
|
||||||
|
|
@ -21,7 +21,7 @@ interface Props {
|
||||||
}
|
}
|
||||||
|
|
||||||
const NumericalQuestion: React.FC<Props> = (props) => {
|
const NumericalQuestion: React.FC<Props> = (props) => {
|
||||||
const { questionContent, correctAnswers, showAnswer, handleOnSubmitAnswer, globalFeedback } =
|
const { questionTitle, questionContent, correctAnswers, showAnswer, handleOnSubmitAnswer, globalFeedback } =
|
||||||
props;
|
props;
|
||||||
|
|
||||||
const [answer, setAnswer] = useState<number>();
|
const [answer, setAnswer] = useState<number>();
|
||||||
|
|
@ -33,8 +33,11 @@ const NumericalQuestion: React.FC<Props> = (props) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="question-wrapper">
|
<div className="question-wrapper">
|
||||||
|
<div className="title mb-1 text-center center-h-align">
|
||||||
|
{questionTitle}
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div dangerouslySetInnerHTML={{ __html: TextType({text: questionContent}) }} />
|
<Latex>{questionContent}</Latex>
|
||||||
</div>
|
</div>
|
||||||
{showAnswer ? (
|
{showAnswer ? (
|
||||||
<>
|
<>
|
||||||
|
|
@ -46,8 +49,8 @@ const NumericalQuestion: React.FC<Props> = (props) => {
|
||||||
<div className="answer-wrapper mb-1">
|
<div className="answer-wrapper mb-1">
|
||||||
<TextField
|
<TextField
|
||||||
type="number"
|
type="number"
|
||||||
id={questionContent.text}
|
id={questionContent}
|
||||||
name={questionContent.text}
|
name={questionContent}
|
||||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
setAnswer(e.target.valueAsNumber);
|
setAnswer(e.target.valueAsNumber);
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ const Question: React.FC<QuestionProps> = ({
|
||||||
case 'TF':
|
case 'TF':
|
||||||
questionTypeComponent = (
|
questionTypeComponent = (
|
||||||
<TrueFalseQuestion
|
<TrueFalseQuestion
|
||||||
questionContent={question.stem}
|
questionTitle={question.title}
|
||||||
|
questionContent={question.stem.text}
|
||||||
correctAnswer={question.isTrue}
|
correctAnswer={question.isTrue}
|
||||||
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||||||
showAnswer={showAnswer}
|
showAnswer={showAnswer}
|
||||||
|
|
@ -41,7 +42,8 @@ const Question: React.FC<QuestionProps> = ({
|
||||||
case 'MC':
|
case 'MC':
|
||||||
questionTypeComponent = (
|
questionTypeComponent = (
|
||||||
<MultipleChoiceQuestion
|
<MultipleChoiceQuestion
|
||||||
questionContent={question.stem}
|
questionTitle={question.title}
|
||||||
|
questionContent={question.stem.text}
|
||||||
choices={question.choices}
|
choices={question.choices}
|
||||||
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||||||
showAnswer={showAnswer}
|
showAnswer={showAnswer}
|
||||||
|
|
@ -54,7 +56,8 @@ const Question: React.FC<QuestionProps> = ({
|
||||||
if (!Array.isArray(question.choices)) {
|
if (!Array.isArray(question.choices)) {
|
||||||
questionTypeComponent = (
|
questionTypeComponent = (
|
||||||
<NumericalQuestion
|
<NumericalQuestion
|
||||||
questionContent={question.stem}
|
questionTitle={question.title}
|
||||||
|
questionContent={question.stem.text}
|
||||||
correctAnswers={question.choices}
|
correctAnswers={question.choices}
|
||||||
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||||||
showAnswer={showAnswer}
|
showAnswer={showAnswer}
|
||||||
|
|
@ -64,7 +67,8 @@ const Question: React.FC<QuestionProps> = ({
|
||||||
} else {
|
} else {
|
||||||
questionTypeComponent = (
|
questionTypeComponent = (
|
||||||
<NumericalQuestion
|
<NumericalQuestion
|
||||||
questionContent={question.stem}
|
questionTitle={question.title}
|
||||||
|
questionContent={question.stem.text}
|
||||||
correctAnswers={question.choices[0].text}
|
correctAnswers={question.choices[0].text}
|
||||||
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||||||
showAnswer={showAnswer}
|
showAnswer={showAnswer}
|
||||||
|
|
@ -77,7 +81,8 @@ const Question: React.FC<QuestionProps> = ({
|
||||||
case 'Short':
|
case 'Short':
|
||||||
questionTypeComponent = (
|
questionTypeComponent = (
|
||||||
<ShortAnswerQuestion
|
<ShortAnswerQuestion
|
||||||
questionContent={question.stem}
|
questionTitle={question.title}
|
||||||
|
questionContent={question.stem.text}
|
||||||
choices={question.choices}
|
choices={question.choices}
|
||||||
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||||||
showAnswer={showAnswer}
|
showAnswer={showAnswer}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
// ShortAnswerQuestion.tsx
|
// ShortAnswerQuestion.tsx
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import Latex from 'react-latex';
|
||||||
import '../questionStyle.css';
|
import '../questionStyle.css';
|
||||||
import { Button, TextField } from '@mui/material';
|
import { Button, TextField } from '@mui/material';
|
||||||
import TextType from '../../GiftTemplate/templates/TextType';
|
|
||||||
import { TextFormat } from '../../GiftTemplate/templates/types';
|
|
||||||
|
|
||||||
type Choices = {
|
type Choices = {
|
||||||
feedback: { format: string; text: string } | null;
|
feedback: { format: string; text: string } | null;
|
||||||
|
|
@ -13,7 +12,8 @@ type Choices = {
|
||||||
};
|
};
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
questionContent: TextFormat;
|
questionTitle: string | null;
|
||||||
|
questionContent: string;
|
||||||
choices: Choices[];
|
choices: Choices[];
|
||||||
globalFeedback?: string | undefined;
|
globalFeedback?: string | undefined;
|
||||||
handleOnSubmitAnswer?: (answer: string) => void;
|
handleOnSubmitAnswer?: (answer: string) => void;
|
||||||
|
|
@ -21,13 +21,16 @@ interface Props {
|
||||||
}
|
}
|
||||||
|
|
||||||
const ShortAnswerQuestion: React.FC<Props> = (props) => {
|
const ShortAnswerQuestion: React.FC<Props> = (props) => {
|
||||||
const { questionContent, choices, showAnswer, handleOnSubmitAnswer, globalFeedback } = props;
|
const { questionTitle, questionContent, choices, showAnswer, handleOnSubmitAnswer, globalFeedback } = props;
|
||||||
const [answer, setAnswer] = useState<string>();
|
const [answer, setAnswer] = useState<string>();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="question-wrapper">
|
<div className="question-wrapper">
|
||||||
|
<div className="title mb-1 text-center center-h-align">
|
||||||
|
{questionTitle}
|
||||||
|
</div>
|
||||||
<div className="question content">
|
<div className="question content">
|
||||||
<div dangerouslySetInnerHTML={{ __html: TextType({text: questionContent}) }} />
|
<Latex>{questionContent}</Latex>
|
||||||
</div>
|
</div>
|
||||||
{showAnswer ? (
|
{showAnswer ? (
|
||||||
<>
|
<>
|
||||||
|
|
@ -43,8 +46,8 @@ const ShortAnswerQuestion: React.FC<Props> = (props) => {
|
||||||
<div className="answer-wrapper mb-1">
|
<div className="answer-wrapper mb-1">
|
||||||
<TextField
|
<TextField
|
||||||
type="text"
|
type="text"
|
||||||
id={questionContent.text}
|
id={questionContent}
|
||||||
name={questionContent.text}
|
name={questionContent}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setAnswer(e.target.value);
|
setAnswer(e.target.value);
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
// TrueFalseQuestion.tsx
|
// TrueFalseQuestion.tsx
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import Latex from 'react-latex';
|
||||||
import '../questionStyle.css';
|
import '../questionStyle.css';
|
||||||
import { Button } from '@mui/material';
|
import { Button } from '@mui/material';
|
||||||
import TextType from '../../GiftTemplate/templates/TextType';
|
|
||||||
import { TextFormat } from '../../GiftTemplate/templates/types';
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
questionContent: TextFormat;
|
questionTitle: string | null;
|
||||||
|
questionContent: string;
|
||||||
correctAnswer: boolean;
|
correctAnswer: boolean;
|
||||||
globalFeedback?: string | undefined;
|
globalFeedback?: string | undefined;
|
||||||
handleOnSubmitAnswer?: (answer: boolean) => void;
|
handleOnSubmitAnswer?: (answer: boolean) => void;
|
||||||
|
|
@ -14,20 +14,23 @@ interface Props {
|
||||||
}
|
}
|
||||||
|
|
||||||
const TrueFalseQuestion: React.FC<Props> = (props) => {
|
const TrueFalseQuestion: React.FC<Props> = (props) => {
|
||||||
const { questionContent, correctAnswer, showAnswer, handleOnSubmitAnswer, globalFeedback } =
|
const { questionTitle, questionContent, correctAnswer, showAnswer, handleOnSubmitAnswer, globalFeedback } =
|
||||||
props;
|
props;
|
||||||
const [answer, setAnswer] = useState<boolean | undefined>(undefined);
|
const [answer, setAnswer] = useState<boolean | undefined>(undefined);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setAnswer(undefined);
|
setAnswer(undefined);
|
||||||
}, [questionContent]);
|
}, [questionTitle]);
|
||||||
|
|
||||||
const selectedTrue = answer ? 'selected' : '';
|
const selectedTrue = answer ? 'selected' : '';
|
||||||
const selectedFalse = answer !== undefined && !answer ? 'selected' : '';
|
const selectedFalse = answer !== undefined && !answer ? 'selected' : '';
|
||||||
return (
|
return (
|
||||||
<div className="question-container">
|
<div className="question-container">
|
||||||
|
<div className="title mb-1">
|
||||||
|
{questionTitle}
|
||||||
|
</div>
|
||||||
<div className="question content">
|
<div className="question content">
|
||||||
<div dangerouslySetInnerHTML={{ __html: TextType({text: questionContent}) }} />
|
<Latex>{questionContent}</Latex>
|
||||||
</div>
|
</div>
|
||||||
<div className="choices-wrapper mb-1">
|
<div className="choices-wrapper mb-1">
|
||||||
<Button
|
<Button
|
||||||
|
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
# Plan d'itération 1
|
|
||||||
|
|
||||||
## Étapes jalons
|
|
||||||
|
|
||||||
| Étape jalon | Date |
|
|
||||||
| :------------------------------------------------ | :--------- |
|
|
||||||
| Début de l'itération | 2024/02/08 |
|
|
||||||
| Démo de l'application et révision des user cases | 2024/02/27 |
|
|
||||||
| Fin de l'itération | 2024/02/29 |
|
|
||||||
|
|
||||||
## Objectifs clés
|
|
||||||
|
|
||||||
Les objectifs clés de cette itération sont les suivants:
|
|
||||||
|
|
||||||
- Configurer le serveur pour héberger la solution
|
|
||||||
- Configurer la base de données pour permettre la sauvegarde des quizs sur le serveur
|
|
||||||
- Implémenter le téléversement d'image dans les quizs
|
|
||||||
- Corriger certains bugs
|
|
||||||
|
|
||||||
|
|
||||||
## Affectations d'éléments de travail
|
|
||||||
|
|
||||||
| Nom / Description | Priorité | [Taille estimée (points)](#commentEstimer 'Comment estimer?') | Assigné à (nom) | Documents de référence |
|
|
||||||
| ------------------------------ | -------: | ------------------------------------------------------------: | --------------- | ----------------------------------------------------------------------------------------------- |
|
|
||||||
| Création d'un serveur | 1 | 4 | Samy, Mélanie ||
|
|
||||||
| Sauvegarde de quiz création BD | 1| 4 | Mathieu, Louis ||
|
|
||||||
| Connexion d'un étudiant à un quiz en cours| 1| 4| Mathieu, Louis ||
|
|
||||||
| Upload d'images directement dans un quiz| 1| 3| Louis | |
|
|
||||||
| Bug: perte de connexion | 2| 1| Mathieu, Louis | |
|
|
||||||
| Bug commentaires | 2| 1| Mélanie | |
|
|
||||||
|
|
||||||
## Problèmes principaux rencontrés
|
|
||||||
|
|
||||||
| Problème | Notes |
|
|
||||||
| -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| La section de GIFT pour la création des quizs ne semble plus prendre le code normalement comme avant. Un simple commentaire seul sera pris comme du texte normal et certains bout de codes ne fonctionnent pas correctement s'il n'y a pas une entrée avant.| Investigation en cours pour trouver ce qui ne fonctionne pas |
|
|
||||||
| Difficulté à mettre en place le microservice pour la gestion des images. API mis en place pour la gestion des images dans le backend| |
|
|
||||||
|
|
||||||
## Critères d'évaluation
|
|
||||||
|
|
||||||
> Une brève description de la façon d'évaluer si les objectifs (définis plus haut) de haut niveau ont été atteints.
|
|
||||||
> Vos critères d'évaluation doivent être objectifs (aucun membre de l'équipe ne peut avoir une opinion divergente) et quantifiables (sauf pour ceux évalués par l'auxiliaire d'enseignement). En voici des exemples:
|
|
||||||
|
|
||||||
- Accessibilité du serveur
|
|
||||||
- Disponibilité des images pour les quizs
|
|
||||||
- Modification du processus de connexion pour répondre aux cas utilisateurs
|
|
||||||
|
|
||||||
## Évaluation
|
|
||||||
|
|
||||||
| Résumé | |
|
|
||||||
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| Cible d'évaluation | Itération |
|
|
||||||
| Date d'évaluation | 2024/02/27 |
|
|
||||||
| Participants | **Équipe** : Louis-Antoine Caron, Samy Waddah, Mathieu Roy, Mélanie St-Hilaire<br> **professeur** : Christopher Fuhrman |
|
|
||||||
| État du projet | 🟢 |
|
|
||||||
|
|
||||||
### Éléments de travail: prévus vs réalisés
|
|
||||||
|
|
||||||
Le serveur a été configuré et la solution est présentement déployée pour débuter l'utilisation en classe. Cela permettra entre autre de tester les performances du serveur et permettra aux professeurs d'utiliser plus souvent la solution. Les quizs sont désormais sauvegardés sur le serveur, mais ils ne sont pas encore associés à un compte, il faut donc se fier au cookies pour récupérer les quizs. Les commentaires ont été temporairement corrigés en majorité, mais quelques problèmes de plus ont été apperçu dans la section d'édition du quiz. Le bug de perte de connexion semble avoir déja été corrigé par l'ancienne équipe et l'importation d'image dans les quiz est maintenant fonctionnelle.
|
|
||||||
|
|
||||||
### Évaluation par rapport aux résultats selon les critères d'évaluation
|
|
||||||
|
|
||||||
Nos principaux critères d'éavaluation ont été atteints, soit rendre le serveur accessible pour utilisation et autoriser l'importation d'images dans les quizs, qui sont maintenant sauvegardés sur le serveur. Même si de nouveaux problèmes ont fait surfaces, nous estimons que le projet répond à nos critères et est sur la bonne voie.
|
|
||||||
|
|
||||||
## Autres préoccupations et écarts
|
|
||||||
|
|
||||||
Quelques bugs en plus ont été découverts à la suite de cette itération. Une surveillance doit être effectué pour vérifier la stabilité du serveur.
|
|
||||||
Loading…
Reference in a new issue