Skip to content

Commit

Permalink
Merge branch 'master' into github-packages
Browse files Browse the repository at this point in the history
  • Loading branch information
allomanta authored Mar 18, 2024
2 parents 072a207 + a363167 commit df350f6
Show file tree
Hide file tree
Showing 9 changed files with 23,112 additions and 70,697 deletions.
2 changes: 1 addition & 1 deletion IguideME.Web/wwwroot/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ RUN mkdir /app
WORKDIR /app

RUN apt-get update && apt-get install -y curl git
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN curl -fsSL https://deb.nodesource.com/setup_21.x | bash -
RUN apt-get install -y nodejs

COPY package.json ./
Expand Down
80,134 changes: 22,909 additions & 57,225 deletions IguideME.Web/wwwroot/package-lock.json

Large diffs are not rendered by default.

184 changes: 90 additions & 94 deletions IguideME.Web/wwwroot/package.json
Original file line number Diff line number Diff line change
@@ -1,96 +1,92 @@
{
"name": "iguideme",
"version": "0.1.1-b",
"private": true,
"dependencies": {
"@mdi/js": "^5.9.55",
"@types/d3-time-format": "^3.0.0",
"@types/draft-js": "^0.10.44",
"@types/history": "^4.7.7",
"@types/react": "^16.9.49",
"@types/react-dom": "^16.9.8",
"@types/react-fade-in": "^0.1.0",
"@types/react-redux": "^7.1.9",
"@types/react-router-dom": "^5.1.5",
"@types/react-router-redux": "^5.0.18",
"@types/react-select": "^3.1.2",
"@types/redux-logger": "^3.0.8",
"@types/redux-promise": "^0.5.29",
"@visx/chord": "^1.7.0",
"@visx/visx": "^1.7.3",
"@vx/gradient": "^0.0.199",
"@vx/mock-data": "^0.0.199",
"@vx/pattern": "^0.0.199",
"@vx/stats": "^0.0.199",
"@vx/tooltip": "^0.0.199",
"antd": "^4.6.2",
"apexcharts": "^3.25.0",
"axios": "^0.20.0",
"chart.js": "^4.2.1",
"compute.io": "^0.106.0",
"d3-array": "^2.12.1",
"d3-time-format": "^3.0.0",
"draft-js": "^0.11.7",
"draft-js-export-html": "^1.4.1",
"draft-js-import-html": "^1.4.1",
"draft-js-linkify-plugin": "^2.0.2",
"draft-js-plugins-editor": "^3.0.0",
"draft-js-static-toolbar-plugin": "^3.0.1",
"i18n": "^0.13.2",
"i18next": "^19.7.0",
"i18next-browser-languagedetector": "^6.0.1",
"i18next-http-backend": "^1.0.20",
"js-regression": "^1.0.10",
"ml-regression-multivariate-linear": "^2.0.3",
"moment": "^2.29.1",
"node-emoji": "^1.10.0",
"path": "^0.12.7",
"react": "^16.13.1",
"react-apexcharts": "^1.3.7",
"react-chartjs-2": "^5.2.0",
"react-csv-reader": "^3.1.1",
"react-dom": "^16.13.1",
"react-draggable": "^4.4.3",
"react-fade-in": "^1.1.0",
"react-i18next": "^11.7.2",
"react-json-view": "^1.19.1",
"react-loading-dot": "^1.0.6",
"react-multi-date-picker": "^4.0.0",
"react-redux": "^7.2.1",
"react-router-dom": "^5.2.0",
"react-router-redux": "^4.0.8",
"react-scripts": "^5.0.1",
"react-select": "^4.0.2",
"react-sizeme": "^3.0.1",
"react-smooth-dnd": "^0.11.1",
"redux": "^4.0.5",
"redux-logger": "^3.0.6",
"redux-persist": "^6.0.0",
"redux-promise": "^0.6.0",
"redux-thunk": "^2.3.0",
"sass": "^1.38.0",
"sweetalert2": "^11.1.3",
"tsne-js": "^1.0.3",
"typescript": "^4.0.2",
"ui-neumorphism": "^1.1.3",
"yarn": "^1.22.17",
"ztypescript": "github:everydayanchovies/ztypescript"
},
"scripts": {
"start": "export REACT_APP_DEBUG=1 && react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not op_mini all"
],
"devDependencies": {
"@types/node-emoji": "^1.8.1"
}
"name": "iguideme",
"version": "0.1.1-b",
"private": true,
"dependencies": {
"@mdi/js": "^5.9.55",
"@types/d3-time-format": "^3.0.0",
"@types/draft-js": "^0.10.44",
"@types/history": "^4.7.7",
"@types/react": "^16.9.49",
"@types/react-dom": "^16.9.8",
"@types/react-fade-in": "^0.1.0",
"@types/react-redux": "^7.1.9",
"@types/react-router-dom": "^5.1.5",
"@types/react-router-redux": "^5.0.18",
"@types/react-select": "^3.1.2",
"@types/redux-logger": "^3.0.8",
"@types/redux-promise": "^0.5.29",
"@visx/chord": "^1.7.0",
"@visx/visx": "^1.7.3",
"@vx/gradient": "^0.0.199",
"@vx/mock-data": "^0.0.199",
"@vx/pattern": "^0.0.199",
"@vx/stats": "^0.0.199",
"@vx/tooltip": "^0.0.199",
"antd": "^4.6.2",
"apexcharts": "^3.25.0",
"axios": "^0.20.0",
"chart.js": "^4.2.1",
"compute.io": "^0.106.0",
"d3-array": "^2.12.1",
"d3-time-format": "^3.0.0",
"draft-js": "^0.11.7",
"draft-js-export-html": "^1.4.1",
"draft-js-import-html": "^1.4.1",
"draft-js-linkify-plugin": "^2.0.2",
"draft-js-plugins-editor": "^3.0.0",
"draft-js-static-toolbar-plugin": "^3.0.1",
"i18n": "^0.13.2",
"i18next": "^19.7.0",
"i18next-browser-languagedetector": "^6.0.1",
"i18next-http-backend": "^1.0.20",
"js-regression": "^1.0.10",
"ml-regression-multivariate-linear": "^2.0.3",
"moment": "^2.29.1",
"node-emoji": "^1.10.0",
"path": "^0.12.7",
"react": "^16.13.1",
"react-apexcharts": "^1.3.7",
"react-chartjs-2": "^5.2.0",
"react-csv-reader": "^3.1.1",
"react-dom": "^16.13.1",
"react-draggable": "^4.4.3",
"react-fade-in": "^1.1.0",
"react-i18next": "^11.7.2",
"react-json-view": "^1.19.1",
"react-loading-dot": "^1.0.6",
"react-multi-date-picker": "^4.0.0",
"react-redux": "^7.2.1",
"react-router-dom": "^5.2.0",
"react-router-redux": "^4.0.8",
"react-scripts": "^5.0.1",
"react-select": "^4.0.2",
"react-sizeme": "^3.0.1",
"react-smooth-dnd": "^0.11.1",
"redux": "^4.0.5",
"redux-logger": "^3.0.6",
"redux-persist": "^6.0.0",
"redux-promise": "^0.6.0",
"redux-thunk": "^2.3.0",
"sass": "^1.38.0",
"sweetalert2": "^11.1.3",
"tsne-js": "^1.0.3",
"typescript": "^4.0.2",
"ui-neumorphism": "^1.1.3",
"yarn": "^1.22.18",
"ztypescript": "github:everydayanchovies/ztypescript"
},
"scripts": {
"start": "export REACT_APP_DEBUG=1 && react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [">0.2%", "not dead", "not op_mini all"],
"devDependencies": {
"@types/node-emoji": "^1.8.1"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,78 +9,106 @@ import "./style.scss";
import { discussionType } from "../../../../models/canvas/Discussion";

export default class Tile extends Component<IProps, IState> {

state = { loaded: false }
state = { loaded: false };

getHeader = () => {
const { tile, tileEntries, submissions, userGrades, discussions, learningOutcomes, student } = this.props;
const {
tile,
tileEntries,
submissions,
userGrades,
discussions,
learningOutcomes,
student,
} = this.props;
const avg: number | null = getAverageGrade(userGrades);

if (tile.type === "DISCUSSIONS") {
let disc_grade = 0;
discussions.forEach(discussion => {
discussions.forEach((discussion) => {
if (discussion.type === discussionType.topic) {
if (discussion.posted_by === student.name)
disc_grade++;
if (discussion.posted_by === student.name) disc_grade++;
} else {
disc_grade++;
}
})
});
return (
<span style={{ textAlign: 'center' }}>
<strong>{disc_grade}</strong> discussion{discussions.length !== 1 && "s"}
<span style={{ textAlign: "center" }}>
<strong>{disc_grade}</strong> discussion
{discussions.length !== 1 && "s"}
</span>
);
}

switch (tile.content) {
case "LEARNING_OUTCOMES":
const success = learningOutcomes.filter(lo => lo.success).length;
const success = learningOutcomes.filter((lo) => lo.success).length;
return (
<span style={{ textAlign: 'center' }}>
<strong>{success}<small>/{learningOutcomes.length}</small></strong> completed
<span style={{ textAlign: "center" }}>
<strong>
{success}
<small>/{learningOutcomes.length}</small>
</strong>{" "}
completed
</span>
);
case "PREDICTION":
return <GradeStatistic grade={avg !== null ? avg!.toString() : "-"} />;
case "BINARY":
return (
<>
{!!avg && <Progress percent={getProgression(tile, tileEntries, submissions)} steps={tileEntries.length} style={{ width: '100%' }} />}
<GradeStatistic grade={avg !== null ? (avg * 10).toFixed(1) : "-"} />
{!!avg && (
<Progress
percent={getProgression(tile, tileEntries, submissions)}
style={{ width: "100%" }}
/>
)}
<GradeStatistic
grade={avg !== null ? (avg * 10).toFixed(1) : "-"}
/>
</>
);
case "ENTRIES":
return (
<>
{!!avg && <Progress percent={getProgression(tile, tileEntries, submissions)} steps={tileEntries.length} style={{ width: '100%' }} />}
{!!avg && (
<Progress
percent={getProgression(tile, tileEntries, submissions)}
style={{ width: "100%" }}
/>
)}
<GradeStatistic grade={avg !== null ? avg!.toFixed(1) : "-"} />
</>
);
default:
return null;
}
}
};

render(): React.ReactNode {
const { tile, peerGrades, userGrades } = this.props;
return (
<div className={"tile"}
<div
className={"tile"}
onClick={() => {
window.dispatchEvent(new CustomEvent("selectTile", { detail: { tile, userGrades } }))
window.dispatchEvent(
new CustomEvent("selectTile", { detail: { tile, userGrades } }),
);
}}
>
<div className={"wrapper"}>
<div className={"content"}>
<h2>{tile.title}</h2>
<Space direction={"vertical"} style={{ width: '100%' }}>
<Space direction={"vertical"} style={{ width: "100%" }}>
{this.getHeader()}
</Space>
</div>

<PeerComparison peerGrades={peerGrades.find(pg => pg.tileID === tile.id)} />
<PeerComparison
peerGrades={peerGrades.find((pg) => pg.tileID === tile.id)}
/>
</div>
</div>
)
);
}
}
25 changes: 13 additions & 12 deletions IguideME.Web/wwwroot/src/utils/configureStore.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
import thunk from 'redux-thunk';
import promise from 'redux-promise';
import { createLogger } from 'redux-logger';
import { applyMiddleware, createStore } from "redux";
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import thunk from "redux-thunk";
import promise from "redux-promise";
import { createLogger } from "redux-logger";
import { compose, applyMiddleware, createStore } from "redux";
import { persistStore, persistReducer } from "redux-persist";
import storage from "redux-persist/lib/storage";
import rootReducer from "../store";

const persistConfig = {
key: 'root',
key: "root",
storage,
whitelist: ['COURSE', 'USER', 'TILES']
}
whitelist: ["COURSE", "USER", "TILES"],
};

const persistedReducer = persistReducer(persistConfig, rootReducer)
const persistedReducer = persistReducer(persistConfig, rootReducer);

// const logger = createLogger() commented out because it was not matching the overload in applymiddleware
export const store = createStore(
persistedReducer,
applyMiddleware(thunk, promise, createLogger())
applyMiddleware(thunk, promise),
);

export const persistor = persistStore(store);
export const persistor = persistStore(store);
Loading

0 comments on commit df350f6

Please sign in to comment.