live exam redesign

This commit is contained in:
skillens.ai 2025-11-04 00:47:42 +05:30
parent ae360b9184
commit 203e0e4e19
4 changed files with 463 additions and 401 deletions

View File

@ -1,72 +1,72 @@
robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49 robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49
manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51 manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51
favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663 favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663
service-worker.js,1762033576010,cfb0ce475baa94cc60e1869832c0fe2939e1c4a58299d87c831802921cf671ba service-worker.js,1762197441563,2cef97b967d6c4989ea4efb3153daee3512aa6459219bed2ac9dd869be1a6162
precache-manifest.e792bfc4213ddd52029a478d6027fc99.js,1762033576009,76ded865b62480a7f3e65736db15833c6baa240b7471fb78664c1b8fc48d3a11 static/media/tru-fals-icon.d0b962d8.svg,1762197441525,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33
static/media/sub-ques-icon.366b4f1e.svg,1762033575914,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 static/media/sub-ques-icon.366b4f1e.svg,1762197441526,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425
index.html,1762033575945,da5fdeefcd2690e56b536507d9ec1ad38b5224edbdbbfa9bc496cd74a277782b index.html,1762197441563,6b0cf5d8f403681f7b303ecf0e01392112a13033bb113477e796a2c049273ff3
asset-manifest.json,1762033576010,16aaa20a6971f047d30fbaaccca3dafda9e2f25d77fc37bf42c11976ead91d1e static/media/student-engaged.53fb7b0b.svg,1762197441522,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf
static/media/tru-fals-icon.d0b962d8.svg,1762033575911,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 precache-manifest.30e502e06f56d735210bfa3ff8ab599d.js,1762197441563,1f209f013dbf1073ff221d4ff151e2d160358a02d7183422a4c8f5a1b4f1d29c
static/media/student-engaged.53fb7b0b.svg,1762033575909,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf asset-manifest.json,1762197441563,df8f6328165f57bc9e00f6b3dba798fd56f61647111de902165158aa6ea8e9f8
static/media/translate.610ad011.svg,1762033575915,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 static/media/quizexam.5545802e.svg,1762197441517,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569
static/media/quizexam.5545802e.svg,1762033575902,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 static/media/question.0c505ed9.svg,1762197441517,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36
static/media/question.0c505ed9.svg,1762033575901,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 static/media/questions-icon.3d3c1aaf.svg,1762197441520,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1
static/media/questions-icon.3d3c1aaf.svg,1762033575909,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 static/media/practice.f05e6f00.svg,1762197441517,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475
static/media/PracticeKiaLogo.a8336af5.svg,1762033575843,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 static/media/PracticeKiaLogo.a8336af5.svg,1762197441492,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8
static/media/practice.f05e6f00.svg,1762033575902,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 static/media/performance.88855f12.svg,1762197441520,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9
static/media/practice-icon.bf603115.svg,1762033575909,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c static/media/mul-cho-icon.b3dc9ea9.svg,1762197441524,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f
static/media/performance.88855f12.svg,1762033575907,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 static/media/mul-res-icon.8ef3b097.svg,1762197441524,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4
static/media/OdiSVGlogo.f0834bb1.svg,1762033575853,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 static/media/locale-icon.b3596424.svg,1762197441520,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054
static/media/perf-icon.1597a235.svg,1762033575910,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 static/media/OdiSVGlogo.f0834bb1.svg,1762197441495,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235
static/media/mul-res-icon.8ef3b097.svg,1762033575911,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 static/media/practice-icon.bf603115.svg,1762197441522,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c
static/media/mul-cho-icon.b3dc9ea9.svg,1762033575910,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f static/media/perf-icon.1597a235.svg,1762197441524,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28
static/media/locale-icon.b3596424.svg,1762033575907,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 static/media/KaTeX_Size4-Regular.61522cd3.woff2,1762197441515,65378bc44e4f908ff3e7d3b5a36f1351cd29dbed446fcf86ebe0655afefe9ea8
static/media/KaTeX_Size4-Regular.61522cd3.woff2,1762033575899,65378bc44e4f908ff3e7d3b5a36f1351cd29dbed446fcf86ebe0655afefe9ea8 static/media/KaTeX_Typewriter-Regular.b8b8393d.woff2,1762197441515,54a0126379ac9b84c5745f17cd0ac9bf11532ea04c39d387d165a71caf77f8d2
static/media/KaTeX_Size4-Regular.3045a61f.woff,1762033575898,c397a0db368b7313fdae7297ab0efb8f25f1bc12afc4ce691dabf8e0918017fa static/media/KaTeX_Typewriter-Regular.0e046058.woff,1762197441515,82cff08904dbae816ffe38a914d56622c9b677680bba6a629e584a19ffb6e873
static/media/KaTeX_Typewriter-Regular.b8b8393d.woff2,1762033575899,54a0126379ac9b84c5745f17cd0ac9bf11532ea04c39d387d165a71caf77f8d2 static/media/KaTeX_Size4-Regular.27a23ee6.ttf,1762197441515,df3392005f1d7a6f9bd8cbc0d1e0f06c147944fdd86e3316fd38d4f55f8e4a9f
static/media/KaTeX_Size3-Regular.9108a400.woff2,1762033575891,01dd9815f099722e1f7958ab976d9c0ee81615fa39699daf775fdd8a953ff8b1 static/media/KaTeX_Size3-Regular.9108a400.woff2,1762197441516,01dd9815f099722e1f7958ab976d9c0ee81615fa39699daf775fdd8a953ff8b1
static/media/KaTeX_Size3-Regular.963af864.ttf,1762033575900,f94a1dddcfc1df9beb0ecfaf0a73c3df96009a8d7e8a098ada1aa3a39e9ca678 static/media/KaTeX_Size4-Regular.3045a61f.woff,1762197441515,c397a0db368b7313fdae7297ab0efb8f25f1bc12afc4ce691dabf8e0918017fa
static/media/KaTeX_Size4-Regular.27a23ee6.ttf,1762033575899,df3392005f1d7a6f9bd8cbc0d1e0f06c147944fdd86e3316fd38d4f55f8e4a9f static/media/KaTeX_Size2-Regular.95a1da91.woff2,1762197441512,47c15e4348ddda442adae347550b466a6325266ccf8d7a4793481682b5bdf4f2
static/media/KaTeX_Size3-Regular.4de844d4.woff,1762033575893,4398fd91cc5e6b45e4293262c5361ada3a54a24aff0d7a38bc70d3a242f0ef27 static/media/KaTeX_Size3-Regular.4de844d4.woff,1762197441513,4398fd91cc5e6b45e4293262c5361ada3a54a24aff0d7a38bc70d3a242f0ef27
static/media/KaTeX_Size2-Regular.b0628bfd.woff,1762033575893,e23e150fad1a0531631c97f0170716a09b51211d3ad23c84794647ef603a19de static/media/KaTeX_Size2-Regular.b0628bfd.woff,1762197441513,e23e150fad1a0531631c97f0170716a09b51211d3ad23c84794647ef603a19de
static/media/KaTeX_Size2-Regular.95a1da91.woff2,1762033575891,47c15e4348ddda442adae347550b466a6325266ccf8d7a4793481682b5bdf4f2 static/media/KaTeX_Size3-Regular.963af864.ttf,1762197441515,f94a1dddcfc1df9beb0ecfaf0a73c3df96009a8d7e8a098ada1aa3a39e9ca678
static/media/KaTeX_Size1-Regular.82ef26dc.woff2,1762033575889,353eb899698a648194c4bfabf250818092ebfdee0f3078346c3acb4194797f48 static/media/KaTeX_Size1-Regular.82ef26dc.woff2,1762197441512,353eb899698a648194c4bfabf250818092ebfdee0f3078346c3acb4194797f48
static/media/KaTeX_Typewriter-Regular.0e046058.woff,1762033575900,82cff08904dbae816ffe38a914d56622c9b677680bba6a629e584a19ffb6e873 static/media/KaTeX_Size1-Regular.4788ba5b.woff,1762197441511,8e8412c0abbcb89ea321e50ec95b55bfe9d77486c84664fbca5b9b101bab7f3d
static/media/KaTeX_Script-Regular.a82fa2a7.woff,1762033575889,84a67d2df883ac10ca688757491e777b64ef90f94ca712cc23b64a8c97de68af static/media/KaTeX_Size2-Regular.1fdda0e5.ttf,1762197441514,1685351b16075c0e5c880bbb9c6a3b4c5161ac3c852cc8a67963a37d7311b2b9
static/media/KaTeX_Size1-Regular.4788ba5b.woff,1762033575888,8e8412c0abbcb89ea321e50ec95b55bfe9d77486c84664fbca5b9b101bab7f3d static/media/KaTeX_Script-Regular.a82fa2a7.woff,1762197441511,84a67d2df883ac10ca688757491e777b64ef90f94ca712cc23b64a8c97de68af
static/media/KaTeX_Size2-Regular.1fdda0e5.ttf,1762033575889,1685351b16075c0e5c880bbb9c6a3b4c5161ac3c852cc8a67963a37d7311b2b9 static/media/KaTeX_Size1-Regular.0d8d9204.ttf,1762197441512,535e05d118e935a5a1ce5be35dc03a4b20a69ccc5f25210206deaed676c16a64
static/media/KaTeX_Size1-Regular.0d8d9204.ttf,1762033575889,535e05d118e935a5a1ce5be35dc03a4b20a69ccc5f25210206deaed676c16a64 static/media/KaTeX_Script-Regular.1b3161eb.woff2,1762197441511,a5bfd2c095c085b45d10126c94e5cc116a0ea8fd7946a49b54a95da414535890
static/media/KaTeX_SansSerif-Regular.5f8637ee.woff,1762033575880,d0d8050720c1b4cedb8cfe1feb22dc45fc0382ff62b5504c7fc09e1c24652544 static/media/KaTeX_Script-Regular.a189c37d.ttf,1762197441512,ec985a3df1d229119c660bfaa16e4be32ec7391f09d9c1e220cef2b149745a1a
static/media/KaTeX_Script-Regular.1b3161eb.woff2,1762033575887,a5bfd2c095c085b45d10126c94e5cc116a0ea8fd7946a49b54a95da414535890 static/media/KaTeX_SansSerif-Regular.5f8637ee.woff,1762197441511,d0d8050720c1b4cedb8cfe1feb22dc45fc0382ff62b5504c7fc09e1c24652544
static/media/KaTeX_Script-Regular.a189c37d.ttf,1762033575889,ec985a3df1d229119c660bfaa16e4be32ec7391f09d9c1e220cef2b149745a1a static/media/KaTeX_SansSerif-Regular.1ac3ed6e.woff2,1762197441512,2836d2dafad00dd468d7e2b8f305eeb3af4f434980bc7efb3c696e6968cec09b
static/media/KaTeX_SansSerif-Regular.3243452e.ttf,1762033575888,89e5632b7b1d0a3b94bcb71efd36838bb407d575f0212a8d3499b3c3c0fcb12c static/media/KaTeX_SansSerif-Regular.3243452e.ttf,1762197441511,89e5632b7b1d0a3b94bcb71efd36838bb407d575f0212a8d3499b3c3c0fcb12c
static/media/KaTeX_SansSerif-Regular.1ac3ed6e.woff2,1762033575881,2836d2dafad00dd468d7e2b8f305eeb3af4f434980bc7efb3c696e6968cec09b static/media/KaTeX_SansSerif-Italic.ef725de5.woff,1762197441511,9476b240a74b872f7cbe8517997d68df0c375e3d52a58e165f893a7191f54e86
static/media/KaTeX_SansSerif-Italic.f60b4a34.ttf,1762033575881,cf5a68a17d022639016a9da976bb6a4ab05e06ccd74ce712db3009adcf34fd32 static/media/KaTeX_SansSerif-Italic.f60b4a34.ttf,1762197441512,cf5a68a17d022639016a9da976bb6a4ab05e06ccd74ce712db3009adcf34fd32
static/media/KaTeX_SansSerif-Italic.ef725de5.woff,1762033575900,9476b240a74b872f7cbe8517997d68df0c375e3d52a58e165f893a7191f54e86 static/media/KaTeX_SansSerif-Italic.e934cbc8.woff2,1762197441509,2a474c036e86d3fcabb4f8d68318ccce7e5e103f27f804e1fd74a1646ed15cae
static/media/KaTeX_SansSerif-Italic.e934cbc8.woff2,1762033575880,2a474c036e86d3fcabb4f8d68318ccce7e5e103f27f804e1fd74a1646ed15cae static/media/KaTeX_SansSerif-Bold.ad546b47.woff2,1762197441507,9a2e88c7f50de44ea6842c0dc687cd0fc54cff06a47bf6408cf1eba76e25bb81
static/media/KaTeX_SansSerif-Bold.ad546b47.woff2,1762033575878,9a2e88c7f50de44ea6842c0dc687cd0fc54cff06a47bf6408cf1eba76e25bb81 static/media/translate.610ad011.svg,1762197441527,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120
static/media/KaTeX_SansSerif-Bold.f2ac7312.ttf,1762033575887,a248317ab48e3dc924f1c87b13a27cc5e6d887272d02b1c1cab72795de2c9591 static/media/KaTeX_SansSerif-Bold.0e897d27.woff,1762197441508,06df349cd9f09f229c964190cea7b3487aefe84f055207793ddf3e83a3db281a
static/media/KaTeX_SansSerif-Bold.0e897d27.woff,1762033575879,06df349cd9f09f229c964190cea7b3487aefe84f055207793ddf3e83a3db281a static/media/KaTeX_SansSerif-Bold.f2ac7312.ttf,1762197441509,a248317ab48e3dc924f1c87b13a27cc5e6d887272d02b1c1cab72795de2c9591
static/media/logo.0dd03933.png,1762033575852,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 static/media/logo.0dd03933.png,1762197441495,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085
static/media/KaTeX_Typewriter-Regular.6bf42875.ttf,1762033575900,3f8e9a7e1c8f9835a5fdbf303b775991de8d868a7b8ee8eb1f32b0b01ed1b90b static/media/KaTeX_Typewriter-Regular.6bf42875.ttf,1762197441516,3f8e9a7e1c8f9835a5fdbf303b775991de8d868a7b8ee8eb1f32b0b01ed1b90b
static/media/KaTeX_Math-Italic.ed7aea12.woff,1762033575879,7f65f9be10f45caa82382689fe21bf358899ac28002cbd44d3696eea1d6affee static/media/KaTeX_Math-Italic.ed7aea12.woff,1762197441508,7f65f9be10f45caa82382689fe21bf358899ac28002cbd44d3696eea1d6affee
static/media/KaTeX_Math-Italic.fe5ed587.ttf,1762033575881,1cf503e99eee1d6931a59f03a2718c879571c4bc878d8c5bb310c057e15fcffa static/media/KaTeX_Math-Italic.fe5ed587.ttf,1762197441509,1cf503e99eee1d6931a59f03a2718c879571c4bc878d8c5bb310c057e15fcffa
static/media/KaTeX_Fraktur-Regular.f9e6a99f.woff2,1762033575864,30c5ebf8d693d9a6db88068bd72eca6aaab2313d91682e147db6ae4d43efc013 static/media/KaTeX_Fraktur-Regular.e435cda5.woff,1762197441502,1ed825d761d10b653432e13606827af1a1621353e75a2bb10c9fdc3f9568cbf2
static/media/KaTeX_Fraktur-Regular.e435cda5.woff,1762033575865,1ed825d761d10b653432e13606827af1a1621353e75a2bb10c9fdc3f9568cbf2 static/media/KaTeX_Fraktur-Regular.97a699d8.ttf,1762197441502,c84e9b333b1c3dfd0edf947b0166c4436bded08309d47955b99fa4e43177bdaf
static/media/KaTeX_Fraktur-Regular.97a699d8.ttf,1762033575865,c84e9b333b1c3dfd0edf947b0166c4436bded08309d47955b99fa4e43177bdaf static/media/KaTeX_Fraktur-Regular.f9e6a99f.woff2,1762197441502,30c5ebf8d693d9a6db88068bd72eca6aaab2313d91682e147db6ae4d43efc013
static/media/KaTeX_Fraktur-Bold.796f3797.woff2,1762033575854,440fe396e2bc189c86a666bed548bed61a5482c3afaa04eb41e5b4e977f9accd static/media/KaTeX_Fraktur-Bold.796f3797.woff2,1762197441502,440fe396e2bc189c86a666bed548bed61a5482c3afaa04eb41e5b4e977f9accd
static/media/KaTeX_Fraktur-Bold.40934fc0.woff,1762033575864,8a9c9bd2084df9282df1c63c593dda4c662d2a8111d09956d5bf2c92e6213f4a static/media/KaTeX_Caligraphic-Regular.a25140fb.woff,1762197441496,41d8909c711af0e11e9df1fa5bbd8c14071e22130fbac9b6518e920386152038
static/media/KaTeX_Fraktur-Bold.b9d7c449.ttf,1762033575865,05ef840382f3b9a91d6a08c707c5288ed173a0623b5f986c92d03afd59d2972e static/media/KaTeX_Fraktur-Bold.40934fc0.woff,1762197441502,8a9c9bd2084df9282df1c63c593dda4c662d2a8111d09956d5bf2c92e6213f4a
static/media/KaTeX_Caligraphic-Regular.08d95d99.woff2,1762033575864,d4574df1e20cd3519662aff34dcdfa42339c48bfd9dd675d804723794949a8c8 static/media/KaTeX_Caligraphic-Regular.08d95d99.woff2,1762197441502,d4574df1e20cd3519662aff34dcdfa42339c48bfd9dd675d804723794949a8c8
static/media/KaTeX_Caligraphic-Regular.e6fb499f.ttf,1762033575864,7d6aca5b5f7d749a0fd1f9e4e7449b1b79a347fd08696f5cadc303ea5e3f3f1c static/media/KaTeX_Caligraphic-Regular.e6fb499f.ttf,1762197441503,7d6aca5b5f7d749a0fd1f9e4e7449b1b79a347fd08696f5cadc303ea5e3f3f1c
static/media/KaTeX_Caligraphic-Bold.a9e9b095.woff2,1762033575852,80906c4f0be4d8dccfbb0d3b8cafe79b6ba8bc3200c3c9f060b5616a4d8dec39 static/media/KaTeX_Caligraphic-Bold.de2ba279.woff,1762197441495,4e80ee5909ce3b5b965be5b11b75919d58dc6633d372869dbbbbd13f93dbd662
static/media/KaTeX_Caligraphic-Regular.a25140fb.woff,1762033575852,41d8909c711af0e11e9df1fa5bbd8c14071e22130fbac9b6518e920386152038 static/media/KaTeX_Fraktur-Bold.b9d7c449.ttf,1762197441502,05ef840382f3b9a91d6a08c707c5288ed173a0623b5f986c92d03afd59d2972e
static/media/KaTeX_Caligraphic-Bold.de2ba279.woff,1762033575853,4e80ee5909ce3b5b965be5b11b75919d58dc6633d372869dbbbbd13f93dbd662 static/media/KaTeX_Caligraphic-Bold.a9e9b095.woff2,1762197441495,80906c4f0be4d8dccfbb0d3b8cafe79b6ba8bc3200c3c9f060b5616a4d8dec39
static/media/KaTeX_Caligraphic-Bold.497bf407.ttf,1762033575858,50b8dd982d91b531aaf3009e30dc42e72635d476bd0e3d6fe9ba2bdb5c7a036f static/media/GrayscalePKLogo.6bb74404.svg,1762197441495,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2
static/media/getFetch.2b2b7da4.cjs,1762033575852,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 static/media/KaTeX_Caligraphic-Bold.497bf407.ttf,1762197441496,50b8dd982d91b531aaf3009e30dc42e72635d476bd0e3d6fe9ba2bdb5c7a036f
static/media/GrayscalePKLogo.6bb74404.svg,1762033575852,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 static/media/feature-2.36f8d7e2.webp,1762197441495,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c
static/media/feature-2.36f8d7e2.webp,1762033575852,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c static/media/getFetch.2b2b7da4.cjs,1762197441495,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096
static/media/delete-icon.da38c0f4.svg,1762033575923,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 static/media/exam-icon.10f48851.svg,1762197441522,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693
assets/images/locale-icon.svg,1761396900579,610498c7ca3b5800d268b1654473f0b1d79de2c6493a7c6982bef90456d35179 assets/images/locale-icon.svg,1761396900579,610498c7ca3b5800d268b1654473f0b1d79de2c6493a7c6982bef90456d35179
assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73 assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73
assets/images/icons/icon-72x72.png,1761396900600,a42f1df8ab0a8fe921573976d49158e1a2c52fe430460c869947f221aba30a94 assets/images/icons/icon-72x72.png,1761396900600,a42f1df8ab0a8fe921573976d49158e1a2c52fe430460c869947f221aba30a94
@ -76,52 +76,52 @@ assets/images/icons/icon-192x192.png,1761396900592,ac9fe46fbeb4c54fb3c838b645380
assets/images/icons/icon-152x152.png,1761396900590,95a5a117fbd5640f1f1f13c9923398545e3f5b66734ff6c8ce67c942319a8b67 assets/images/icons/icon-152x152.png,1761396900590,95a5a117fbd5640f1f1f13c9923398545e3f5b66734ff6c8ce67c942319a8b67
assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00 assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00
assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b
static/media/exam-icon.10f48851.svg,1762033575909,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 static/media/delete-icon.da38c0f4.svg,1762197441531,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722
static/media/dashboard.8ec7624b.svg,1762033575901,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 static/media/classes.3b73dba0.svg,1762197441520,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d
static/media/classes.3b73dba0.svg,1762033575905,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d static/media/dashboard.8ec7624b.svg,1762197441517,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1
static/media/Checkmark.1356376c.svg,1762033575923,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 static/media/class-icon.6afd34b5.svg,1762197441520,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e
static/media/class-icon.6afd34b5.svg,1762033575909,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e static/media/Checkmark.1356376c.svg,1762197441530,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027
static/media/batch.3fcff66e.svg,1762033575904,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 static/media/batch.3fcff66e.svg,1762197441517,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862
static/media/batch-icon.bf664771.svg,1762033575910,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 static/media/batch-icon.bf664771.svg,1762197441523,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0
static/media/auth-BG.2835584f.svg,1762033575852,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf static/media/auth-BG.2835584f.svg,1762197441495,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf
static/media/add-circle.0011f2bc.svg,1762033575909,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 static/media/KaTeX_Math-Italic.d8b7a801.woff2,1762197441508,463c7b305e898eff5291b63c93cc5cb344035692b6913c1c79073ecbb6243bd4
static/media/KaTeX_Math-Italic.d8b7a801.woff2,1762033575879,463c7b305e898eff5291b63c93cc5cb344035692b6913c1c79073ecbb6243bd4 static/media/add-circle.0011f2bc.svg,1762197441520,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17
static/media/KaTeX_Math-BoldItalic.1320454d.woff2,1762033575887,6845d5004e7c212c58d4760856f246a648906e552b0fe06cc1602598c12451c2 static/media/KaTeX_Math-BoldItalic.48155e43.woff,1762197441507,85cd1b757a1e147fa60d9a33c097ac463cd361d7d29278acb6f9fa12b1ab1807
static/media/KaTeX_Math-BoldItalic.48155e43.woff,1762033575878,85cd1b757a1e147fa60d9a33c097ac463cd361d7d29278acb6f9fa12b1ab1807 static/media/KaTeX_Main-Regular.f8a7f19f.woff2,1762197441507,d9e0bfb38531e96891681155d118070f8026358d2951cb8470c394b91809288d
static/media/KaTeX_Main-Italic.65297062.woff2,1762033575865,d85767f0359678f357e48c84e9872f47b139674a79b7b71db0fdbb1317c26d12 static/media/KaTeX_Math-BoldItalic.1320454d.woff2,1762197441516,6845d5004e7c212c58d4760856f246a648906e552b0fe06cc1602598c12451c2
static/media/KaTeX_Math-BoldItalic.6589c4f1.ttf,1762033575878,7015e678d3236d50b3fefa9ba69b1473ed3f8e75adee5cace69614afcfc2f5bf static/media/KaTeX_Main-Italic.65297062.woff2,1762197441503,d85767f0359678f357e48c84e9872f47b139674a79b7b71db0fdbb1317c26d12
static/media/KaTeX_Main-Regular.f8a7f19f.woff2,1762033575867,d9e0bfb38531e96891681155d118070f8026358d2951cb8470c394b91809288d static/media/KaTeX_Math-BoldItalic.6589c4f1.ttf,1762197441507,7015e678d3236d50b3fefa9ba69b1473ed3f8e75adee5cace69614afcfc2f5bf
static/media/KaTeX_Main-BoldItalic.d8737343.woff2,1762033575865,c626855b7d035c168c7d791991df8d939103de514bfb4451d79d386573284c72 static/media/KaTeX_Main-Italic.8ffd28f6.woff,1762197441504,96448f48ed2241c86e68c8461f1640b4420784ddafae0187411614145e1b86b7
static/media/KaTeX_Main-Italic.8ffd28f6.woff,1762033575871,96448f48ed2241c86e68c8461f1640b4420784ddafae0187411614145e1b86b7 static/media/KaTeX_Main-BoldItalic.d8737343.woff2,1762197441502,c626855b7d035c168c7d791991df8d939103de514bfb4451d79d386573284c72
static/media/KaTeX_Main-Regular.f1cdb692.woff,1762033575878,17452652a1119d3bcd8a71406fc8698a686f53c3923cb96e790e6a5d36d08ab1 static/media/KaTeX_Main-BoldItalic.5f875f98.woff,1762197441504,70abceb4229394d854d0f09cb4c174bb3044efcb0c914765da73cef487dff695
static/media/KaTeX_Main-Italic.39349e0a.ttf,1762033575878,1d8cb78615c1bf0e6382d19209ab3b545f62297a75006719c9fe6a82f4b3b282 static/media/KaTeX_Main-Regular.f1cdb692.woff,1762197441507,17452652a1119d3bcd8a71406fc8698a686f53c3923cb96e790e6a5d36d08ab1
static/media/KaTeX_Main-BoldItalic.5f875f98.woff,1762033575867,70abceb4229394d854d0f09cb4c174bb3044efcb0c914765da73cef487dff695 static/media/KaTeX_Main-Italic.39349e0a.ttf,1762197441507,1d8cb78615c1bf0e6382d19209ab3b545f62297a75006719c9fe6a82f4b3b282
static/media/KaTeX_Main-Bold.a9382e25.woff2,1762033575865,5a85aa329e280b7ebe07d42616135b81a43b3e7699beb03e4f85cb85cc1c42a0 static/media/KaTeX_Main-Bold.a9382e25.woff2,1762197441503,5a85aa329e280b7ebe07d42616135b81a43b3e7699beb03e4f85cb85cc1c42a0
static/media/KaTeX_Main-BoldItalic.52fb39b0.ttf,1762033575878,2c270214096b727d963e376c50c9372e0696e3807ab3593c99721e98a2350d9a static/media/KaTeX_Main-BoldItalic.52fb39b0.ttf,1762197441507,2c270214096b727d963e376c50c9372e0696e3807ab3593c99721e98a2350d9a
static/media/KaTeX_Main-Bold.4cdba646.woff,1762033575865,0a80f97f42c420ce18f49adadd979581ee6c7b2fea155197d564eab7d4a33b94 static/media/KaTeX_Main-Bold.4cdba646.woff,1762197441502,0a80f97f42c420ce18f49adadd979581ee6c7b2fea155197d564eab7d4a33b94
static/js/runtime-main.27caaa44.js.map,1762033576009,3e879e38038e68cf871d7b4279b1462769cde43557fc9f9d43b6b2637de2a260 static/js/runtime-main.6a9bca74.js.map,1762197441563,f2801a917822d679fa77f96a7c6f7bf4475b6f9ac15f63e5ed38e0545f6a7bfa
static/media/KaTeX_Main-Regular.818582da.ttf,1762033575878,303bad6cffa808e8161bca30051b6116e39cd128fad1565f4cfe87d57e54f715 static/media/KaTeX_Main-Regular.818582da.ttf,1762197441507,303bad6cffa808e8161bca30051b6116e39cd128fad1565f4cfe87d57e54f715
static/js/runtime-main.27caaa44.js,1762033575915,4e3d05857c79855a7e920016b818defe70440121809e87b3f135be225ec7e3b3 static/js/runtime-main.6a9bca74.js,1762197441530,b07c706cc4496a561bb9f07774327eaeada45d83b0b942e19f5c93d7f98dc2a9
static/media/KaTeX_Main-Bold.8e431f7e.ttf,1762033575865,05a2a07c87d1436ec1339788f266910afda2ef11c2c159b5f9da217e5862678b static/media/KaTeX_AMS-Regular.66c67820.woff2,1762197441495,d3c3fdcc36a8dd47d2361854708db75facde86716ac4aff340c27a53edb91fa3
static/media/KaTeX_AMS-Regular.66c67820.woff2,1762033575853,d3c3fdcc36a8dd47d2361854708db75facde86716ac4aff340c27a53edb91fa3 static/media/KaTeX_Main-Bold.8e431f7e.ttf,1762197441507,05a2a07c87d1436ec1339788f266910afda2ef11c2c159b5f9da217e5862678b
static/media/feature-1.ea5c34ea.svg,1762033575852,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 static/media/feature-1.ea5c34ea.svg,1762197441495,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8
static/media/KaTeX_AMS-Regular.10824af7.woff,1762033575853,6c46aa92e4310f9c70a445e7a423691f1704dce1cdc29fdd2e0c83d195fcee10 static/media/KaTeX_AMS-Regular.10824af7.woff,1762197441495,6c46aa92e4310f9c70a445e7a423691f1704dce1cdc29fdd2e0c83d195fcee10
static/media/KaTeX_AMS-Regular.56573229.ttf,1762033575899,c2f8c0a308e057708caa69b82f187cbff35ecda40162ceed7cf66bb958032bba static/media/KaTeX_AMS-Regular.56573229.ttf,1762197441499,c2f8c0a308e057708caa69b82f187cbff35ecda40162ceed7cf66bb958032bba
static/media/feature-3.3d5d81e9.svg,1762033575852,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b static/media/feature-3.3d5d81e9.svg,1762197441495,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b
static/js/4.d2a9338f.chunk.js.map,1762033576010,a5a722bf8db9cf0993b417f66bd3422dea3490040f4dd79cb5215fccba3a4484 static/js/4.95785133.chunk.js.map,1762197441564,0ab0e485bf46fc04955033cd0935429295a34da2dbbe06ddc2d5f309be41a5a0
static/js/4.d2a9338f.chunk.js,1762033575933,b2c24d1c151dd22afe16c8b659c41997a73711332c80c677b26cf17eb169d18b static/js/4.95785133.chunk.js,1762197441535,a7b48c8d7479b7c78426e720416ddf3a198d43a52b8717a8b773ba30cc5acea0
static/js/3.6099e5fb.chunk.js.map,1762033576010,ca2dde76e10854eb0dc3f7dc050a6a5ae82575f83a207f9b0bc8658c1dd577ab static/js/3.4a298447.chunk.js.map,1762197441563,a40200e99d0d521ddeaa7a40a9b26cb84829172b219d2b54e4ecc11fb8b9f650
static/js/3.6099e5fb.chunk.js,1762033575925,d8ab7de01ca728821c8d5ba785256db83815cb152fbb8072459796057ee12c09 static/js/3.4a298447.chunk.js,1762197441531,3d4d361f74a77f67c1d3155cb59398a18774d75c1845bc720f3b3cb72b9882a0
static/js/2.528544a1.chunk.js.LICENSE.txt,1762033575933,73e179810607ee243bc579404bb639366a35a513c110f956327178f85a8ec4ca static/js/2.a2fb1b42.chunk.js.LICENSE.txt,1762197441533,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b
static/js/main.0436c6bb.chunk.js,1762033575924,2f316815289bb09026fcf5d3e8e0d53a8400e0b937958c039f19c1d019278239 static/js/main.2a44678e.chunk.js,1762197441526,29d8ed00ff32f033cf188ee6bb35f345c67082dac53e98170968a48930e75a0a
static/css/4.629184c9.chunk.css,1762033575927,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab static/css/4.629184c9.chunk.css,1762197441533,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab
static/css/2.9f1a6119.chunk.css,1762033575923,5b08fdb85c1aaa0cf9acf7c4c35148cabc67c4897f21b89b8734390f584ad0a2 static/css/main.0526d673.chunk.css,1762197441526,5a7f21d3d08bf99af6859090265554c53383f0d8c105c95973d99b94f3bec417
static/css/3.6c5a3051.chunk.css,1762033575924,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 static/css/3.6c5a3051.chunk.css,1762197441532,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1
static/css/main.7d296f3d.chunk.css,1762033575915,8ac95acd624c795fc1e9d9d802ed76463b7fc234fc1fa91ee66ce2dba402ae85 static/css/2.9f1a6119.chunk.css,1762197441531,5b08fdb85c1aaa0cf9acf7c4c35148cabc67c4897f21b89b8734390f584ad0a2
static/js/main.0436c6bb.chunk.js.map,1762033576010,a0ce92d9fed67afdd565a4503ad53e1de37e06de9694e45f2ecf91399f993f76 static/css/4.629184c9.chunk.css.map,1762197441541,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205
static/css/4.629184c9.chunk.css.map,1762033576010,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 static/js/main.2a44678e.chunk.js.map,1762197441563,b289bd0bb836eb4ebe7cf85c99c68c45d977223d0f850aad19eb83ccffa42972
static/css/3.6c5a3051.chunk.css.map,1762033575946,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 static/css/main.0526d673.chunk.css.map,1762197441536,ee5cf1afc044616049e9766ca1c86278437b1a5ba9360f94592665a2975a88bb
static/css/main.7d296f3d.chunk.css.map,1762033575935,5be5e90a97bc9a5e33bd3778a47be8ef41322cfe3daeffc8e0b6637db3f31488 static/css/3.6c5a3051.chunk.css.map,1762197441541,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796
static/css/2.9f1a6119.chunk.css.map,1762033575944,65fe44874775e5d32c6076f91b40fc5d120cecbf5da0d211d9303dbb56b2e6ec static/css/2.9f1a6119.chunk.css.map,1762197441540,65fe44874775e5d32c6076f91b40fc5d120cecbf5da0d211d9303dbb56b2e6ec
static/js/2.528544a1.chunk.js,1762033575927,29dab7a742a766d0a7049868eabaa7080ffc99c8094f6462f1d98eba8c22c89d static/js/2.a2fb1b42.chunk.js,1762197441534,423e2b3067ea1e1982566fe278946da3cfeb9ec01dab8e39436134c0b67d7185
static/js/2.528544a1.chunk.js.map,1762033576026,5a3a44e5a9c7d2ee29219a23fde8788967e178b2a078cfc04e6939384cfe226e static/js/2.a2fb1b42.chunk.js.map,1762197441573,7d97604a5733b0883538aa1e7e7b279f8ddffd913b847222ea9354a5fb94820d

View File

@ -188,10 +188,10 @@ export function Siderc(props) {
style={{ height: '100%', borderRight: '0px solid #f0f2f5' }} style={{ height: '100%', borderRight: '0px solid #f0f2f5' }}
> >
<Menu.Item key="dashboard" icon={<DashboardOutlined />}> <Link to="/dashboard">Dashboard</Link></Menu.Item> <Menu.Item key="dashboard" icon={<DashboardOutlined />}> <Link to="/dashboard">Dashboard</Link></Menu.Item>
<SubMenu key="question" icon={<CompassOutlined />} title="Question"> {/* <SubMenu key="question" icon={<CompassOutlined />} title="Question">
<Menu.Item key="4">Bookmarked</Menu.Item> <Menu.Item key="4">Bookmarked</Menu.Item>
</SubMenu> </SubMenu> */}
<SubMenu key="quiz" icon={<KeyOutlined />} title="Quiz/Exam"> <SubMenu key="quiz" icon={<KeyOutlined />} title="Quiz/Exam">
<Menu.Item key="8"><Link to="/liveExams">Live Exams</Link></Menu.Item> <Menu.Item key="8"><Link to="/liveExams">Live Exams</Link></Menu.Item>
<Menu.Item key="9"><Link to="/upcomingExams">Upcoming Exams</Link></Menu.Item> <Menu.Item key="9"><Link to="/upcomingExams">Upcoming Exams</Link></Menu.Item>
@ -200,12 +200,12 @@ export function Siderc(props) {
<SubMenu key="practice" icon={<BookOutlined />} title="Practice"> <SubMenu key="practice" icon={<BookOutlined />} title="Practice">
<Menu.Item key="9"><Link to="/practiceExams">Practice Exams</Link></Menu.Item> <Menu.Item key="9"><Link to="/practiceExams">Practice Exams</Link></Menu.Item>
</SubMenu> </SubMenu>
<SubMenu key="calendar" icon={<CalendarOutlined />} title="Calendar"> {/* <SubMenu key="calendar" icon={<CalendarOutlined />} title="Calendar">
<Menu.Item key="14">option9</Menu.Item> <Menu.Item key="14">option9</Menu.Item>
<Menu.Item key="15">option10</Menu.Item> <Menu.Item key="15">option10</Menu.Item>
<Menu.Item key="16">option11</Menu.Item> <Menu.Item key="16">option11</Menu.Item>
<Menu.Item key="17">option12</Menu.Item> <Menu.Item key="17">option12</Menu.Item>
</SubMenu> </SubMenu> */}
</Menu> </Menu>
} }
</Sider> </Sider>

View File

@ -1,46 +1,20 @@
li.MyExam{ .exam-card {
-moz-box-shadow: 0 0 5px #888; transition: all 0.2s ease-in-out;
-webkit-box-shadow: 0 0 5px#888;
box-shadow: 0 0 5px #E1E1E1;
margin-bottom: 10px;
padding:5px 35px 5px 25px;
border-radius: 7px;
}
li.MyExam table{
width:80%;
}
span.MyExamImage{
width: 100px;
height: 100px;
line-height: 40px;
} }
span.MyExamImage img{ .exam-card:hover {
width: 100px; transform: translateY(-4px);
height: 100px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
} }
div.MyExamDiv table tr> th{ :root {
border:none; --background-color: #f5f5f5;
padding: 0 0 0 10px; --card-bg: #fff;
text-align: left; --text-secondary: #555;
font-weight: normal;
} }
div.MyExamDiv table tr> td{ [data-theme="dark"] {
border:none; --background-color: #141414;
padding: 0 0 0 10px; --card-bg: #1f1f1f;
text-align: left; --text-secondary: #bbb;
font-weight: bolder;
}
li.MyExam h4.ant-list-item-meta-title{
padding: 0 0 0 10px;
}
li.MyExam span.MyExamSpan{
padding: 0 0 0 10px;
} }

View File

@ -1,293 +1,381 @@
import React from "react"; import React from "react";
import "./LiveExams.css"; import "./LiveExams.css";
import { Layout, List, Avatar, Button, Space, Divider } from "antd"; import {
Layout,
List,
Avatar,
Button,
Card,
Tag,
Typography,
Space,
} from "antd";
import {
AppstoreOutlined,
UnorderedListOutlined,
} from "@ant-design/icons";
import "antd/dist/antd.css"; import "antd/dist/antd.css";
import { authenticationService } from "../../../../_services"; import { authenticationService } from "../../../../_services";
import { Siderc } from "../../../Main/Siderc"; import { Siderc } from "../../../Main/Siderc";
import { Headerc } from "../../../Main/Headerc"; import { Headerc } from "../../../Main/Headerc";
import { selectorService } from "../../../../services/selectorService"; import { selectorService } from "../../../../services/selectorService";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
const { Content } = Layout; const { Content } = Layout;
const { Title, Text } = Typography;
class LiveExams extends React.Component { class LiveExams extends React.Component {
state = { state = {
currentUser: authenticationService.currentUserValue, currentUser: authenticationService.currentUserValue,
classes: "1",
batch: "1", batch: "1",
data: [], data: [],
total_count: 0, total_count: 0,
total_pages: 0, layout: "card", // 'card' or 'detail'
}; };
componentDidMount() { componentDidMount() {
this.handleLoadUpcomingExam(); this.loadExams(1);
} }
handleLoadUpcomingExam() { loadExams = (pageNumber) => {
// console.log('jsonObj:', jsonObj); const json = {
const json = {}; pageSize: 10,
json.pageSize = 10; pageNumber,
json.pageNumber = 1; batch: JSON.parse(sessionStorage.getItem("currentUser"))?.batch_id || null,
const storedUser = JSON.parse(sessionStorage.getItem("currentUser")) || {}; };
json.batch = storedUser.batch_id || null;
selectorService.loadLiveExams(json).then((data1) => { selectorService.loadLiveExams(json).then((data1) => {
// console.log('Success:', data1); const result = data1?.result || {};
//data = $.parseJSON(data); const exams = result.exams || [];
let result = {}; const formattedData = exams.map((exam, index) => {
if (data1 !== undefined) result = data1.result; const start = new Date(exam.start_date);
this.state.data = []; const end = new Date(exam.end_date);
let data = []; const daysLeft = Math.floor(
let map = {}; (end.getTime() - new Date().getTime()) / (1000 * 3600 * 24)
if (result.exams !== undefined) { );
for (let index = 0; index < result.exams.length; index++) { return {
let c = {}; key: index,
c.index = index; id: exam.id,
c.id = result.exams[index].id; name: exam.name,
c.name = result.exams[index].name; subject: exam.subject_name,
c.image = result.exams[index].image; marks: exam.total_marks,
questions: exam.total_questions,
c.total_marks = result.exams[index].total_marks; duration: exam.exam_duration / 60,
c.total_questions = result.exams[index].total_questions; startDate: start.toLocaleDateString(),
c.exam_duration = result.exams[index].exam_duration; endDate: end.toLocaleDateString(),
c.attempt_status = result.exams[index].attempt_status; daysLeft,
let Difference_In_Time = attemptStatus: exam.attempt_status,
new Date(result.exams[index].end_date).getTime() - };
new Date().getTime();
// To calculate the no. of days between two dates
c.number_Of_Days = ~~(Difference_In_Time / (1000 * 3600 * 24));
let date = new Date(result.exams[index].start_date);
let dd = date.getDate();
let mm = date.getMonth() + 1;
let yyyy = date.getFullYear();
if (dd < 10) {
dd = "0" + dd;
}
if (mm < 10) {
mm = "0" + mm;
}
c.start_date = dd + "/" + mm + "/" + yyyy;
let date1 = new Date(result.exams[index].end_date);
let dd1 = date1.getDate();
let mm1 = date1.getMonth() + 1;
let yyyy1 = date1.getFullYear();
if (dd1 < 10) {
dd1 = "0" + dd1;
}
if (mm1 < 10) {
mm1 = "0" + mm1;
}
c.end_date = dd1 + "/" + mm1 + "/" + yyyy1;
data.push(c);
map[c.id] = c;
}
}
this.setState({
data: data,
map: map,
result: result,
total_count: result.total_count,
total_pages: result.total_pages,
}); });
});
//console.log(data);
}
handleChange = (pageNumber) => {
const json = {};
json.pageSize = 10;
json.pageNumber = pageNumber;
json.batch = this.state.batch;
selectorService.loadLiveExams(json).then((data1) => {
// console.log('Success:', data1);
//data = $.parseJSON(data);
let result = {};
if (data1 !== undefined) result = data1.result;
this.state.data = [];
let data = [];
let map = {};
if (result.exams !== undefined) {
for (let index = 0; index < result.exams.length; index++) {
let c = {};
c.index = index;
c.id = result.exams[index].id;
c.name = result.exams[index].name;
c.image = result.exams[index].image;
c.total_marks = result.exams[index].total_marks;
c.total_questions = result.exams[index].total_questions;
c.exam_duration = result.exams[index].exam_duration;
c.attempt_status = result.exams[index].attempt_status;
let Difference_In_Time =
new Date(result.exams[index].end_date).getTime() -
new Date().getTime();
// To calculate the no. of days between two dates
c.number_Of_Days = ~~(Difference_In_Time / (1000 * 3600 * 24));
let date = new Date(result.exams[index].start_date);
let dd = date.getDate();
let mm = date.getMonth() + 1;
let yyyy = date.getFullYear();
if (dd < 10) {
dd = "0" + dd;
}
if (mm < 10) {
mm = "0" + mm;
}
c.start_date = dd + "/" + mm + "/" + yyyy;
let date1 = new Date(result.exams[index].end_date);
let dd1 = date1.getDate();
let mm1 = date1.getMonth() + 1;
let yyyy1 = date1.getFullYear();
if (dd1 < 10) {
dd1 = "0" + dd1;
}
if (mm1 < 10) {
mm1 = "0" + mm1;
}
c.end_date = dd1 + "/" + mm1 + "/" + yyyy1;
data.push(c);
map[c.id] = c;
}
}
this.setState({ this.setState({
data: data, data: formattedData,
map: map,
result: result,
total_count: result.total_count, total_count: result.total_count,
total_pages: result.total_pages,
}); });
}); });
}; };
render() { render() {
const { data, total_count, layout } = this.state;
return ( return (
<Layout> <Layout>
<Siderc /> <Siderc />
<Layout> <Layout>
<Headerc /> <Headerc />
<Content <Content
className="site-layout-background"
style={{ style={{
padding: 24, padding: "24px",
margin: 0, background: "#f0f3f8", // same as topbar
minHeight: "100vh",
}} }}
> >
<Layout className="createExamLayoutHeader">Live Exams</Layout> {/* Header + Buttons */}
<Layout className="createExamLayout"> <Space
style={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
marginBottom: 20,
}}
>
<Title level={3} style={{ margin: 0, color: "#222", fontWeight: 600 }}>
🎯 Live Exams
</Title>
<Button.Group>
<Button
type={layout === "card" ? "primary" : "default"}
icon={<AppstoreOutlined />}
onClick={() => this.setState({ layout: "card" })}
>
Card View
</Button>
<Button
type={layout === "detail" ? "primary" : "default"}
icon={<UnorderedListOutlined />}
onClick={() => this.setState({ layout: "detail" })}
>
Detail View
</Button>
</Button.Group>
</Space>
{/* Card Layout */}
{layout === "card" ? (
<List <List
itemLayout="horizontal" grid={{
dataSource={this.state.data} gutter: 24,
pagination={{ xs: 1,
onChange: (page) => { sm: 1,
this.handleChange(page); md: 2,
}, lg: 2,
pageSize: 10, xl: 3,
total: this.state.total_count,
}} }}
renderItem={(item) => { pagination={{
console.log(item); pageSize: 10,
return ( total: total_count,
<List.Item className="MyExam"> onChange: (page) => this.loadExams(page),
<List.Item.Meta }}
avatar={ dataSource={data}
renderItem={(item) => (
<List.Item>
<Card
hoverable
bordered={false}
style={{
borderRadius: 12,
background: "#ffffff",
boxShadow:
"0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.06)",
transition: "all 0.2s ease-in-out",
}}
>
<Space direction="vertical" size="small" style={{ width: "100%" }}>
{/* Top Section: Avatar + Title + Days Left */}
<Space align="center" style={{ width: "100%", justifyContent: "flex-start" }}>
<Avatar <Avatar
src={`https://s3bucket-for-oa.s3.ap-south-1.amazonaws.com/${9}/exams/${item.id}.png`} src={`https://s3bucket-for-oa.s3.ap-south-1.amazonaws.com/${9}/exams/${item.id}.png`}
size="large" size={64}
shape="square" shape="square"
className="MyExamImage"
/> />
} <div style={{ flex: 1, marginLeft: 10 }}>
size="large" {/* Exam Name + Days Left Inline */}
bordered="true" <div style={{ display: "flex", alignItems: "center", flexWrap: "wrap" }}>
title={item.name} <Title
description={ level={5}
<> style={{
<span className="MyExamSpan"> margin: 0,
{item.number_Of_Days} days to end{" "} color: "#222",
</span> fontWeight: 600,
<div className="MyExamDiv"> display: "inline-block",
<table> }}
<thead> >
<tr> {item.name}
<th>Start Date</th> </Title>
<th>End Date</th>
<th>Subject</th> <Tag
<th>Durations</th> color={
<th>Questions</th> item.daysLeft <= 0
<th>Marks</th> ? "red"
</tr> : item.daysLeft < 3
</thead> ? "orange"
<tbody> : "green"
<tr> }
<td>{item.start_date}</td> style={{
<td>{item.end_date}</td> marginLeft: 10,
<td>{item.exam_duration}</td> fontSize: 13,
<td>{item.exam_duration}</td> padding: "0 8px",
<td>{item.total_questions}</td> height: 22,
<td>{item.total_marks}</td> display: "flex",
</tr> alignItems: "center",
</tbody> }}
</table> >
{item.daysLeft > 0 ? `${item.daysLeft} days left` : "Ended"}
</Tag>
</div> </div>
</>
} <Text type="secondary">{item.subject}</Text>
/> </div>
<div className="MyExamDiv"> </Space>
<table>
<tbody> {/* Exam Details */}
<tr> <Space
<td> direction="vertical"
<Link style={{
to={{ marginTop: "10px",
className: "AnchorBlue", fontSize: "14px",
pathname: "/attemptExam", color: "#444",
state: { }}
examId: item.id, >
examIdType: "exam", <div>
}, <Text strong>Start:</Text> {item.startDate}
}} </div>
> <div>
{item.attempt_status === "Pause" ? ( <Text strong>End:</Text> {item.endDate}
<Button id={item.id} type="primary"> </div>
Resume <div>
</Button> <Text strong>Duration:</Text> {item.duration} mins
) : ( </div>
<Button id={item.id} type="primary"> <div>
Start Exam <Text strong>Questions:</Text> {item.questions}
</Button> </div>
)} <div>
</Link> <Text strong>Marks:</Text> {item.marks}
</td> </div>
<td> </Space>
{item.attempt_status === "Completed" ? (
<Link {/* Buttons */}
to={{ <Space style={{ marginTop: 12 }}>
className: "AnchorBlue", <Link
pathname: "/report", to={{
state: { examId: item.id }, pathname: "/attemptExam",
}} state: { examId: item.id, examIdType: "exam" },
> }}
<Button id={item.id} type="primary"> >
Report <Button type="primary">
</Button> {item.attemptStatus === "Pause" ? "Resume" : "Start Exam"}
</Link> </Button>
) : ( </Link>
""
)} {item.attemptStatus === "Completed" && (
</td> <Link to={{ pathname: "/report", state: { examId: item.id } }}>
</tr> <Button>View Report</Button>
</tbody> </Link>
</table> )}
</div> </Space>
</List.Item> </Space>
); </Card>
}} </List.Item>
)}
/> />
</Layout>
) : (
// Detail Layout (Horizontal Cards)
<List
itemLayout="horizontal"
dataSource={data}
pagination={{
pageSize: 10,
total: total_count,
onChange: (page) => this.loadExams(page),
}}
renderItem={(item) => (
<List.Item style={{ padding: "12px 0" }}>
<Card
bordered={false}
style={{
width: "100%",
borderRadius: 12,
background: "#ffffff",
boxShadow:
"0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.06)",
}}
>
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "space-between",
width: "100%",
}}
>
{/* Left Section - Image + Details */}
<Space align="start">
<Avatar
src={`https://s3bucket-for-oa.s3.ap-south-1.amazonaws.com/${9}/exams/${item.id}.png`}
size={80}
shape="square"
/>
<div style={{ flex: 1, marginLeft: 16 }}>
{/* Title + Days Left Tag close together */}
<div
style={{
display: "flex",
alignItems: "center",
flexWrap: "wrap",
}}
>
<Title level={5} style={{ margin: 0, color: "#222" }}>
{item.name}
</Title>
<Tag
color={
item.daysLeft <= 0
? "red"
: item.daysLeft < 3
? "orange"
: "green"
}
style={{ marginLeft: 10, fontSize: 13 }}
>
{item.daysLeft > 0
? `${item.daysLeft} days left`
: "Ended"}
</Tag>
</div>
<Text type="secondary">{item.subject}</Text>
<div style={{ marginTop: 8, fontSize: 14 }}>
<Text strong>Start:</Text> {item.startDate}{" "}
<Text strong style={{ marginLeft: 16 }}>
End:
</Text>{" "}
{item.endDate}{" "}
<Text strong style={{ marginLeft: 16 }}>
Duration:
</Text>{" "}
{item.duration} mins{" "}
<Text strong style={{ marginLeft: 16 }}>
Questions:
</Text>{" "}
{item.questions}{" "}
<Text strong style={{ marginLeft: 16 }}>
Marks:
</Text>{" "}
{item.marks}
</div>
</div>
</Space>
{/* Right Section - Centered Buttons */}
<div
style={{
display: "flex",
flexDirection: "column",
alignItems: "center",
justifyContent: "center",
minWidth: 120,
}}
>
<Space>
<Link
to={{
pathname: "/attemptExam",
state: { examId: item.id, examIdType: "exam" },
}}
>
<Button type="primary">
{item.attemptStatus === "Pause" ? "Resume" : "Start Exam"}
</Button>
</Link>
{item.attemptStatus === "Completed" && (
<Link to={{ pathname: "/report", state: { examId: item.id } }}>
<Button>View Report</Button>
</Link>
)}
</Space>
</div>
</div>
</Card>
</List.Item>
)}
/>
)}
</Content> </Content>
</Layout> </Layout>
</Layout> </Layout>