Skip to content

Commit

Permalink
Merge pull request #257 from Sunbird-ALL/all-1.3.1-tn-prod
Browse files Browse the repository at this point in the history
All 1.3.1 tn prod
  • Loading branch information
gouravmore authored Jan 13, 2025
2 parents d2578d4 + a9a00f0 commit 1070dff
Show file tree
Hide file tree
Showing 20 changed files with 624 additions and 408 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/all-dev-tn-new.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: ALL new tn dev Deployment
on:
push:
branches:
- all-1.3-tn-dev-hotfix
- all-1.3-feedback-change

jobs:
deploy:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/all-dev-tn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: ALL tn dev Deployment
on:
push:
branches:
- all-1.2-tn-dev
- all-1.3.1-dev

jobs:
deploy:
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/all-prod-tn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: ALL tn staging Deployment
on:
push:
branches:
- all-1.3-tn-prod-hotfix
- all-1.3.1-tn-prod

jobs:
deploy:
Expand All @@ -19,11 +19,6 @@ jobs:
with:
node-version: '18'

- name: Install AWS CLI
run: |
sudo DEBIAN_FRONTEND=noninteractive apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y awscli
- name: Configure AWS credentials
run: |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ lerna-debug.log*
.env
#build
build

*.env*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
"@mui/material": "^5.2.2",
"@mui/styles": "^5.2.3",
"@project-sunbird/client-services": "^5.1.2",
"@project-sunbird/telemetry-sdk": "0.0.29",
"@reduxjs/toolkit": "^2.2.0",
"@tekdi/all-telemetry-sdk": "^0.0.32",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
Expand Down
40 changes: 24 additions & 16 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,20 @@ import FingerprintJS from "@fingerprintjs/fingerprintjs";
import routes from "./routes";
import { AppContent } from "./views";
import theme from "./assets/styles/theme";
import { initialize } from "./services/telementryService";
import { initialize, end } from "./services/telementryService";
import { startEvent } from "./services/callTelemetryIntract";
import "@project-sunbird/telemetry-sdk/index.js";
import "@tekdi/all-telemetry-sdk/index.js";
import { getParameter } from "./utils/constants";

const App = () => {
const ranonce = useRef(false);
useEffect(() => {
const initService = async () => {
var did;
if (localStorage.getItem("fpDetails_v2") !== null) {
let fpDetails_v2 = localStorage.getItem("fpDetails_v2");
did = fpDetails_v2.result;
} else {
did = localStorage.getItem("did");
}

const initService = async (visitorId) => {
await initialize({
context: {
mode: process.env.REACT_APP_MODE, // To identify preview used by the user to play/edit/preview
authToken: "", // Auth key to make api calls
did: did, // Unique id to identify the device or browser
did: localStorage.getItem("deviceId") || visitorId, // Unique id to identify the device or browser
uid: "anonymous",
channel: process.env.REACT_APP_CHANNEL, // Unique id of the channel(Channel ID)
env: process.env.REACT_APP_ENV,
Expand Down Expand Up @@ -63,15 +55,31 @@ const App = () => {
const fp = await FingerprintJS.load();

const { visitorId } = await fp.get();
if (!localStorage.getItem("did")) {
localStorage.setItem("did", visitorId);
}
initService();
// //if (!localStorage.getItem("did")) {
// localStorage.setItem("did", visitorId);
// //}
initService(visitorId);
};

setFp();
}, []);

useEffect(() => {
const handleBeforeUnload = (event) => {
window.telemetry &&
window.telemetry.syncEvents &&
window.telemetry.syncEvents();
};

// Add the event listener
window.addEventListener("beforeunload", handleBeforeUnload);

// Cleanup the event listener on component unmount
return () => {
window.removeEventListener("beforeunload", handleBeforeUnload);
};
}, []);

useEffect(() => {
let virtualId;

Expand Down
12 changes: 7 additions & 5 deletions src/components/Assesment/Assesment.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -598,10 +598,12 @@ const Assesment = ({ discoverStart }) => {
}

localStorage.setItem("lang", lang || "ta");
const getPointersDetails = await axios.get(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${usernameDetails?.data?.result?.virtualID}/${session_id}?language=${lang}`
);
setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0);
if (process.env.REACT_APP_IS_APP_IFRAME !== "true" && localStorage.getItem("contentSessionId") !== null) {
const getPointersDetails = await axios.get(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${usernameDetails?.data?.result?.virtualID}/${session_id}?language=${lang}`
);
setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0);
}

dispatch(setVirtualId(usernameDetails?.data?.result?.virtualID));
})();
Expand Down Expand Up @@ -635,7 +637,7 @@ const Assesment = ({ discoverStart }) => {
localStorage.setItem("sessionId", sessionId);
}

if (virtualId) {
if (process.env.REACT_APP_IS_APP_IFRAME !== "true" && virtualId && localStorage.getItem("contentSessionId") !== null) {
const getPointersDetails = await axios.get(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}`
);
Expand Down
26 changes: 16 additions & 10 deletions src/components/AssesmentEnd/AssesmentEnd.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,23 @@ import { useEffect, useState } from "react";
import LevelCompleteAudio from "../../assets/audio/levelComplete.wav";
import { ProfileHeader } from "../Assesment/Assesment";
import desktopLevel5 from "../../assets/images/assesmentComplete.png";
import config from '../../utils/urlConstants.json';
import config from "../../utils/urlConstants.json";
import { uniqueId } from "../../services/utilService";
import usePreloadAudio from "../../hooks/usePreloadAudio";

const AssesmentEnd = () => {
const [shake, setShake] = useState(true);
const [level, setLevel] = useState("");
const [previousLevel, setPreviousLevel] = useState("");
const [points, setPoints] = useState(0);
const levelCompleteAudioSrc = usePreloadAudio(LevelCompleteAudio);

useEffect(() => {
(async () => {
let audio = new Audio(LevelCompleteAudio);
audio.play();
if (levelCompleteAudioSrc) {
let audio = new Audio(levelCompleteAudioSrc);
audio.play();
}
const virtualId = getLocalData("virtualId");
const lang = getLocalData("lang");
const previous_level = getLocalData("previous_level");
Expand All @@ -40,19 +44,21 @@ const AssesmentEnd = () => {
setLevel(data.data.milestone_level);
setLocalData("userLevel", data.data.milestone_level?.replace("m", ""));
let sessionId = getLocalData("sessionId");
if (!sessionId){
if (!sessionId) {
sessionId = uniqueId();
localStorage.setItem("sessionId", sessionId)
localStorage.setItem("sessionId", sessionId);
}
if (process.env.REACT_APP_IS_APP_IFRAME !== "true" && localStorage.getItem("contentSessionId") !== null) {
const getPointersDetails = await axios.get(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}`
);
setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0);
}
const getPointersDetails = await axios.get(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}`
);
setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0);
})();
setTimeout(() => {
setShake(false);
}, 4000);
}, []);
}, [levelCompleteAudioSrc]);

const navigate = useNavigate();
let newLevel = level.replace("m", "");
Expand Down
27 changes: 13 additions & 14 deletions src/components/DiscoverEnd/DiscoverEnd.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,9 @@ import back from "../../assets/images/back-arrow.svg";
import discoverEndLeft from "../../assets/images/discover-end-left.svg";
import discoverEndRight from "../../assets/images/discover-end-right.svg";
import textureImage from "../../assets/images/textureImage.png";
import {
LetsStart,
getLocalData,
setLocalData,
} from "../../utils/constants";
import config from '../../utils/urlConstants.json';
import { LetsStart, getLocalData, setLocalData } from "../../utils/constants";
import config from "../../utils/urlConstants.json";
import usePreloadAudio from "../../hooks/usePreloadAudio";

const sectionStyle = {
backgroundImage: `url(${textureImage})`,
Expand All @@ -32,12 +29,14 @@ const sectionStyle = {
const SpeakSentenceComponent = () => {
const [shake, setShake] = useState(true);
const [level, setLevel] = useState("");
const levelCompleteAudioSrc = usePreloadAudio(LevelCompleteAudio);

useEffect(() => {

(async () => {
let audio = new Audio(LevelCompleteAudio);
audio.play();
if (levelCompleteAudioSrc) {
let audio = new Audio(levelCompleteAudioSrc);
audio.play();
}
const virtualId = getLocalData("virtualId");
const lang = getLocalData("lang");
const getMilestoneDetails = await axios.get(
Expand All @@ -50,14 +49,14 @@ const SpeakSentenceComponent = () => {
setTimeout(() => {
setShake(false);
}, 4000);
}, []);
}, [levelCompleteAudioSrc]);

const handleProfileBack = () => {
try {
if (process.env.REACT_APP_IS_APP_IFRAME === 'true') {
navigate("/")
if (process.env.REACT_APP_IS_APP_IFRAME === "true") {
navigate("/");
} else {
navigate("/discover-start")
navigate("/discover-start");
}
} catch (error) {
console.error("Error posting message:", error);
Expand Down Expand Up @@ -132,7 +131,7 @@ const SpeakSentenceComponent = () => {
</Typography>

<Box
onClick={() => handleProfileBack()}
onClick={handleProfileBack}
sx={{
display: "flex",
justifyContent: "center",
Expand Down
65 changes: 35 additions & 30 deletions src/components/DiscoverSentance/DiscoverSentance.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import LevelCompleteAudio from "../../assets/audio/levelComplete.wav";
import config from "../../utils/urlConstants.json";
import { MessageDialog } from "../Assesment/Assesment";
import { Log } from "../../services/telementryService";
import usePreloadAudio from "../../hooks/usePreloadAudio";

const SpeakSentenceComponent = () => {
const [currentQuestion, setCurrentQuestion] = useState(0);
Expand All @@ -37,10 +38,13 @@ const SpeakSentenceComponent = () => {
const [totalSyllableCount, setTotalSyllableCount] = useState("");
const [isNextButtonCalled, setIsNextButtonCalled] = useState(false);

const levelCompleteAudioSrc = usePreloadAudio(LevelCompleteAudio);

const callConfettiAndPlay = () => {
let audio = new Audio(LevelCompleteAudio);
let audio = new Audio(levelCompleteAudioSrc);
audio.play();
callConfetti();
window.telemetry?.syncEvents && window.telemetry.syncEvents();
};

useEffect(() => {
Expand Down Expand Up @@ -118,35 +122,18 @@ const SpeakSentenceComponent = () => {
try {
const lang = getLocalData("lang");

if (!(localStorage.getItem("contentSessionId") !== null)) {
const pointsRes = await axios.post(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_POINTER}`,
{
userId: localStorage.getItem("virtualId"),
sessionId: localStorage.getItem("sessionId"),
points: 1,
language: lang,
milestone: "m0",
}
);
setPoints(pointsRes?.data?.result?.totalLanguagePoints || 0);
} else {
send(1);
// setPoints(localStorage.getItem("currentLessonScoreCount"));
}

await axios.post(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`,
{
userId: localStorage.getItem("virtualId"),
sessionId: localStorage.getItem("sessionId"),
milestone: `discoveryList/discovery/${currentCollectionId}`,
lesson: localStorage.getItem("storyTitle"),
progress: ((currentQuestion + 1) * 100) / questions.length,
language: lang,
milestoneLevel: "m0",
}
);
// await axios.post(
// `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`,
// {
// userId: localStorage.getItem("virtualId"),
// sessionId: localStorage.getItem("sessionId"),
// milestone: `discoveryList/discovery/${currentCollectionId}`,
// lesson: localStorage.getItem("storyTitle"),
// progress: ((currentQuestion + 1) * 100) / questions.length,
// language: lang,
// milestoneLevel: "m0",
// }
// );

if (currentQuestion < questions.length - 1) {
setCurrentQuestion(currentQuestion + 1);
Expand All @@ -164,6 +151,24 @@ const SpeakSentenceComponent = () => {
language: localStorage.getItem("lang"),
}
);

if (!(localStorage.getItem("contentSessionId") !== null)) {
const pointsRes = await axios.post(
`${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_POINTER}`,
{
userId: localStorage.getItem("virtualId"),
sessionId: localStorage.getItem("sessionId"),
points: 1,
language: lang,
milestone: "m0",
}
);
setPoints(pointsRes?.data?.result?.totalLanguagePoints || 0);
} else {
send(5);
// setPoints(localStorage.getItem("currentLessonScoreCount"));
}

setInitialAssesment(false);
const { data: getSetData } = getSetResultRes;
const data = JSON.stringify(getSetData?.data);
Expand Down
Loading

0 comments on commit 1070dff

Please sign in to comment.