0000000000000000000000000000000000000000 e5e8b10f810676e295d03ee4b6ecbd966d4f21da Sajad Dast <sajad79dast@gmail.com> 1786559074 +0330	clone: from https://github.com/sajad79dast/Sajad
e5e8b10f810676e295d03ee4b6ecbd966d4f21da 85b8c263a9a723be0c293be5af725e9f9a72ec89 Sajad Dast <sajad79dast@gmail.com> 1786603383 +0330	commit: with bugs
85b8c263a9a723be0c293be5af725e9f9a72ec89 85798adc4a27d058bb67e228dedce3ed32898984 Sajad Dast <sajad79dast@gmail.com> 1786605739 +0330	commit: with bugs
85798adc4a27d058bb67e228dedce3ed32898984 78811b3f88a13808f76286177b9dac2858ff9939 Sajad Dast <sajad79dast@gmail.com> 1786605746 +0330	commit: with bugs
78811b3f88a13808f76286177b9dac2858ff9939 00f6b489a3c444e22e31b9b780758b1695e874b1 Sajad Dast <sajad79dast@gmail.com> 1786610075 +0330	commit: with bugs
00f6b489a3c444e22e31b9b780758b1695e874b1 459506941cc8ac06252e9f36091c712dc0ba5144 Sajad Dast <sajad79dast@gmail.com> 1786611176 +0330	commit: with bugs
459506941cc8ac06252e9f36091c712dc0ba5144 33d6cae6c22f77a2245a9bc915a38b4bb3aab813 Sajad Dast <sajad79dast@gmail.com> 1786624780 +0330	commit: with bugs
33d6cae6c22f77a2245a9bc915a38b4bb3aab813 7d0e4ec331866fdb1af1767012eca5d64c9f8c76 Sajad Dast <sajad79dast@gmail.com> 1786626530 +0330	commit: with bugs
7d0e4ec331866fdb1af1767012eca5d64c9f8c76 231f6255b2e69cf081d8d5465b073fdf2a472d98 Sajad Dast <sajad79dast@gmail.com> 1786627350 +0330	commit: with bugs
231f6255b2e69cf081d8d5465b073fdf2a472d98 38b9ec02a98acf3cd2fdfd7c1307f17861464c11 Sajad Dast <sajad79dast@gmail.com> 1786628180 +0330	commit: with bugs
38b9ec02a98acf3cd2fdfd7c1307f17861464c11 90d01371400fd686600ef38ad68e6f0bc44bad19 Sajad Dast <sajad79dast@gmail.com> 1786629832 +0330	commit: with bugs
90d01371400fd686600ef38ad68e6f0bc44bad19 2fbf02c588a9964f9c9433e5617ae2b5b3ad0de3 Sajad Dast <sajad79dast@gmail.com> 1786630272 +0330	commit: with bugs
2fbf02c588a9964f9c9433e5617ae2b5b3ad0de3 bb6dfe795b835b96cddbff965a6964c75007e8fb Sajad Dast <sajad79dast@gmail.com> 1786733928 +0330	commit: with bugs
bb6dfe795b835b96cddbff965a6964c75007e8fb ceab0db6f84c1f913fb013ddca55e34e65b56678 Sajad Dast <sajad79dast@gmail.com> 1786935567 +0330	commit: with bugs
ceab0db6f84c1f913fb013ddca55e34e65b56678 45806787213b14b13991ac6da6f55199375b89fd Sajad Dast <sajad79dast@gmail.com> 1786936109 +0330	commit: with bugs
45806787213b14b13991ac6da6f55199375b89fd 222d5dd08bf181afc90255d2e0e5ee72b0f75e2b Sajad Dast <sajad79dast@gmail.com> 1786936861 +0330	commit: with bugs
222d5dd08bf181afc90255d2e0e5ee72b0f75e2b 8f70004568c9f56a1aa9f749c468c8e9c1344695 Sajad Dast <sajad79dast@gmail.com> 1786967360 +0330	commit: with bugs
8f70004568c9f56a1aa9f749c468c8e9c1344695 fb2fbd98f609b1d91470c38dc102ce696184ff09 Sajad Dast <sajad79dast@gmail.com> 1786968706 +0330	commit: with bugs
fb2fbd98f609b1d91470c38dc102ce696184ff09 eca3e08d425f9f30ab352d22b383b3c179fd5cdc Sajad Dast <sajad79dast@gmail.com> 1786970116 +0330	commit: with bugs
eca3e08d425f9f30ab352d22b383b3c179fd5cdc 209a235fe50a642dcd49f6f5b854138c9c19d531 Sajad Dast <sajad79dast@gmail.com> 1786971537 +0330	commit: with bugs
209a235fe50a642dcd49f6f5b854138c9c19d531 c4588b59f50cf54a20537d165278a5218141212f Sajad Dast <sajad79dast@gmail.com> 1786972983 +0330	commit: with bugs
c4588b59f50cf54a20537d165278a5218141212f 83b89b834bc1b70e332f038719624e5897ffe4a6 Sajad Dast <sajad79dast@gmail.com> 1786984571 +0330	commit: with bugs
83b89b834bc1b70e332f038719624e5897ffe4a6 b1a116f331b2fa86b668ffb1233c73f8cc33ac6a Sajad Dast <sajad79dast@gmail.com> 1786987034 +0330	commit: with bugs
b1a116f331b2fa86b668ffb1233c73f8cc33ac6a dd7e74fbd0d7edce1633a4ed0752ba6d4548c35f Sajad Dast <sajad79dast@gmail.com> 1786988538 +0330	commit: with bugs
dd7e74fbd0d7edce1633a4ed0752ba6d4548c35f bdaa1cc818270086ee7cfe6b44e244c37efb8d7f Sajad Dast <sajad79dast@gmail.com> 1786991970 +0330	commit: with bugs
bdaa1cc818270086ee7cfe6b44e244c37efb8d7f 67eca6b15dd9a3bea6ec8c82aaec74ddf5114bb6 Sajad Dast <sajad79dast@gmail.com> 1788104585 +0330	commit: with bugs
67eca6b15dd9a3bea6ec8c82aaec74ddf5114bb6 8cb29d7418b2e87b1b03ab73232e133e3e6f98e5 Sajad Dast <sajad79dast@gmail.com> 1788122991 +0330	commit: with bugs
8cb29d7418b2e87b1b03ab73232e133e3e6f98e5 b56fbd0287a3d8499e497335fe06e5d3b8d3de1e Sajad Dast <sajad79dast@gmail.com> 1788124474 +0330	commit: with bugs
b56fbd0287a3d8499e497335fe06e5d3b8d3de1e e55f9e1266ead60f880452b04c027cbfcfdd8fde Sajad Dast <sajad79dast@gmail.com> 1788125395 +0330	commit: with bugs
e55f9e1266ead60f880452b04c027cbfcfdd8fde 2d025f4b61d0b17c8318eb34cad8292194b9725a Sajad Dast <sajad79dast@gmail.com> 1788126365 +0330	commit: with bugs
2d025f4b61d0b17c8318eb34cad8292194b9725a 85e36e5700e5564c58b68c9180087707ea8d9350 Sajad Dast <sajad79dast@gmail.com> 1788340740 +0330	commit: with bugs
85e36e5700e5564c58b68c9180087707ea8d9350 fcd2558b22f34db8c4643f38d9adc8e801063fe7 Sajad Dast <sajad79dast@gmail.com> 1788344791 +0330	commit: with bugs
fcd2558b22f34db8c4643f38d9adc8e801063fe7 6af06fd3146404c62a1e91d7fd63fb0df66ccc32 Sajad Dast <sajad79dast@gmail.com> 1788458290 +0330	commit: with bugs
6af06fd3146404c62a1e91d7fd63fb0df66ccc32 a9e3a2b4e1a0d2cdd48f0e5cd933df2ef4a22007 Sajad Dast <sajad79dast@gmail.com> 1788459142 +0330	commit: with bugs
a9e3a2b4e1a0d2cdd48f0e5cd933df2ef4a22007 9b6dc71f8c1fecde7045ed505e5373c21df73169 Sajad Dast <sajad79dast@gmail.com> 1788459333 +0330	commit: with bugs
9b6dc71f8c1fecde7045ed505e5373c21df73169 65cf4482977847107a7732acfbeed9edaf18c269 Sajad Dast <sajad79dast@gmail.com> 1788460815 +0330	commit: with bugs
65cf4482977847107a7732acfbeed9edaf18c269 91915bf54e48a9833f02b27194bcae65d7efd322 Sajad Dast <sajad79dast@gmail.com> 1788461920 +0330	commit: with bugs
91915bf54e48a9833f02b27194bcae65d7efd322 47add71069be930afa586033d8ccbdbfdc606d86 Sajad Dast <sajad79dast@gmail.com> 1788534417 +0330	commit: with bugs
47add71069be930afa586033d8ccbdbfdc606d86 76eb404c5dbfb18f1fc82713662bdb68924fa7df Sajad Dast <sajad79dast@gmail.com> 1788535284 +0330	commit: with bugs
76eb404c5dbfb18f1fc82713662bdb68924fa7df 6a1faca64342d8acd9dd4eb8538c68b77b61debe Sajad Dast <sajad79dast@gmail.com> 1788536519 +0330	commit: with bugs
6a1faca64342d8acd9dd4eb8538c68b77b61debe c8569a21955d79972c3bb0c6e4a6099cc1a21124 Sajad Dast <sajad79dast@gmail.com> 1788540519 +0330	commit: with bugs
c8569a21955d79972c3bb0c6e4a6099cc1a21124 f50595c85416e9556c4c4cfde8169f4c0b03f496 Sajad Dast <sajad79dast@gmail.com> 1788542640 +0330	commit: with bugs
f50595c85416e9556c4c4cfde8169f4c0b03f496 39a2c566ef7e471b2ff9dd4f91989ca5bfe60db2 Sajad Dast <sajad79dast@gmail.com> 1788547360 +0330	commit: with bugs
39a2c566ef7e471b2ff9dd4f91989ca5bfe60db2 33f8c19941ec2a97664afe501c88e02db48dcdbd Sajad Dast <sajad79dast@gmail.com> 1788548740 +0330	commit: with bugs
33f8c19941ec2a97664afe501c88e02db48dcdbd c2ca07a0d7c365162b5de913c3895f8955b7bf90 Sajad Dast <sajad79dast@gmail.com> 1788625095 +0330	commit: with bugs
c2ca07a0d7c365162b5de913c3895f8955b7bf90 548787a206e895ad25532e884ea070dca7b63362 Sajad Dast <sajad79dast@gmail.com> 1788697924 +0330	commit: with bugs
548787a206e895ad25532e884ea070dca7b63362 7fcb06426d30c2b4e1275156a83fdf476c5098a1 Sajad Dast <sajad79dast@gmail.com> 1788698562 +0330	commit: with bugs
7fcb06426d30c2b4e1275156a83fdf476c5098a1 7ef27b748c083298863b2328887bd8675ecc4763 Sajad Dast <sajad79dast@gmail.com> 1788700125 +0330	commit: with bugs
7ef27b748c083298863b2328887bd8675ecc4763 97472fbde1d522ea6c99a13e1b110203f5e53ee6 Sajad Dast <sajad79dast@gmail.com> 1788700131 +0330	commit: with bugs
97472fbde1d522ea6c99a13e1b110203f5e53ee6 00894fef9eba7dd3100fd3d3760f6d24881077bc Sajad Dast <sajad79dast@gmail.com> 1788700248 +0330	commit: with bugs
00894fef9eba7dd3100fd3d3760f6d24881077bc 6299f054aed90b910e5a7ee60b1676df0ae3ef13 Sajad Dast <sajad79dast@gmail.com> 1788700297 +0330	commit: with bugs
6299f054aed90b910e5a7ee60b1676df0ae3ef13 7b8036a154e314a088f6245a1b0588af11685a30 Sajad Dast <sajad79dast@gmail.com> 1788700305 +0330	commit: with bugs
7b8036a154e314a088f6245a1b0588af11685a30 cc8de3d79d8e667afaa20570c55d6527d89e869f Sajad Dast <sajad79dast@gmail.com> 1788700772 +0330	commit: with bugs
cc8de3d79d8e667afaa20570c55d6527d89e869f 400d92ef9121ca356ce61dc5ab38334e69ee8e03 Sajad Dast <sajad79dast@gmail.com> 1788712306 +0330	commit: with bugs
400d92ef9121ca356ce61dc5ab38334e69ee8e03 cde06f734096bf1709f1fec01219ec548bf2fcba Sajad Dast <sajad79dast@gmail.com> 1788786880 +0330	commit: with bugs
cde06f734096bf1709f1fec01219ec548bf2fcba f879758dcb0d88321588722e912ab21645abb8aa Sajad Dast <sajad79dast@gmail.com> 1788787200 +0330	commit: with bugs
f879758dcb0d88321588722e912ab21645abb8aa 809b8a2a2d4bba85954dc5d06d5bfeef0bd09881 Sajad Dast <sajad79dast@gmail.com> 1788787482 +0330	commit: with bugs
809b8a2a2d4bba85954dc5d06d5bfeef0bd09881 a9419a1519c6caaba3fa671152e576602aba3041 Sajad Dast <sajad79dast@gmail.com> 1788788505 +0330	commit: with bugs
a9419a1519c6caaba3fa671152e576602aba3041 94a0f679c366d0b1f5e995fa87854aaeeb865b39 Sajad Dast <sajad79dast@gmail.com> 1788789773 +0330	commit: with bugs
94a0f679c366d0b1f5e995fa87854aaeeb865b39 cc507e8cc37000e3ad8f412c7f08b155c681a0b9 Sajad Dast <sajad79dast@gmail.com> 1788790925 +0330	commit: with bugs
cc507e8cc37000e3ad8f412c7f08b155c681a0b9 40d305f1bd14e4ba3c72382cecdd18c8e077e7f5 Sajad Dast <sajad79dast@gmail.com> 1788792687 +0330	commit: with bugs
40d305f1bd14e4ba3c72382cecdd18c8e077e7f5 2cd6748780ec2a2b11e38ff6eb9f7bdd3aab7d38 Sajad Dast <sajad79dast@gmail.com> 1788797043 +0330	commit: with bugs
2cd6748780ec2a2b11e38ff6eb9f7bdd3aab7d38 bf40bf9d285aa894187c748bda0af7bd1826de5a Sajad Dast <sajad79dast@gmail.com> 1788817798 +0330	commit: with bugs
bf40bf9d285aa894187c748bda0af7bd1826de5a e1d2cdb5ed7811cde9a1956f00ae8a6b399d2d12 Sajad Dast <sajad79dast@gmail.com> 1788832709 +0330	commit: with bugs
e1d2cdb5ed7811cde9a1956f00ae8a6b399d2d12 42c4029cf41659e5bbfa4f176a469142c395a40e Sajad Dast <sajad79dast@gmail.com> 1788835407 +0330	commit: with bugs
42c4029cf41659e5bbfa4f176a469142c395a40e 24c5363aae308495b44dad2de9e7761e12584b93 Sajad Dast <sajad79dast@gmail.com> 1789320539 +0330	commit: with bugs
24c5363aae308495b44dad2de9e7761e12584b93 17cde5af547184fc0417a116af64f9770457e3d5 Sajad Dast <sajad79dast@gmail.com> 1789321343 +0330	commit: with bugs
17cde5af547184fc0417a116af64f9770457e3d5 87da50fd3a857070cf16b7698110e2cc9660b748 Sajad Dast <sajad79dast@gmail.com> 1789328578 +0330	commit: with bugs
87da50fd3a857070cf16b7698110e2cc9660b748 668de795e6b1d17394b86bdd10c7adf1385adf6f Sajad Dast <sajad79dast@gmail.com> 1789328623 +0330	commit: feat(exams): add route and CSRF exemption for Excel grades export
668de795e6b1d17394b86bdd10c7adf1385adf6f 96256d5f3f34a17cf897536bfbe744ea919e8163 Sajad Dast <sajad79dast@gmail.com> 1789329355 +0330	commit: fix(users): resolve MySQL error 1364 for start_date on trainee creation
96256d5f3f34a17cf897536bfbe744ea919e8163 32eda3de6241985ee2063531ba7640a0721c0dc1 Sajad Dast <sajad79dast@gmail.com> 1789329633 +0330	commit: feat(exams): implement descriptive grading queue and manual scoring workflow
32eda3de6241985ee2063531ba7640a0721c0dc1 68f755365e48908c875591c9c1a809aec6c8430a Sajad Dast <sajad79dast@gmail.com> 1789333083 +0330	commit: feat(exams): implement central question bank schema, pivot linking, and backend APIs
68f755365e48908c875591c9c1a809aec6c8430a a72dcd4be3fc2367c0218f89ece5c4ac941693d0 Sajad Dast <sajad79dast@gmail.com> 1789333378 +0330	commit: feat(exams): implement Centralized Question Bank, Assignment Modal, Auto-Save and Chart.js Analytics
a72dcd4be3fc2367c0218f89ece5c4ac941693d0 809884392475b3b66c2371920c4e06061254ca5b Sajad Dast <sajad79dast@gmail.com> 1789350053 +0330	commit: fix(exams): resolve question assignment synchronization and accurate count display
809884392475b3b66c2371920c4e06061254ca5b 6946ec85a2513b15749c2778c67a24dc807007f0 Sajad Dast <sajad79dast@gmail.com> 1789350776 +0330	commit: fix(auth): fix profile completion section routing and prevent unauthorized background API requests
6946ec85a2513b15749c2778c67a24dc807007f0 d4bacdc2b6254512e3f9b41cbbd8bf023809b451 Sajad Dast <sajad79dast@gmail.com> 1789351598 +0330	commit: fix(trainee-auth): prevent 403 errors and duplicate intervals for trainee accounts
d4bacdc2b6254512e3f9b41cbbd8bf023809b451 0c4f67bc4e36eb540272f70228d96fdd00bcecc9 Sajad Dast <sajad79dast@gmail.com> 1789398188 +0330	commit: feat(certificates): initialize core architecture for certificates module v2
0c4f67bc4e36eb540272f70228d96fdd00bcecc9 4418b2870acca1612b7baeba9d8bd9c45196fffb Sajad Dast <sajad79dast@gmail.com> 1789399592 +0330	commit: feat(certificates): rebuild core engine and add UI asset upload system
4418b2870acca1612b7baeba9d8bd9c45196fffb 263e56eaa8d7c7b9ac7108c3f07e857e2d475bd1 Sajad Dast <sajad79dast@gmail.com> 1789399820 +0330	commit: feat(certificates): implement visual template designer and mPDF generation engine
263e56eaa8d7c7b9ac7108c3f07e857e2d475bd1 0deb9920f8dc884f3e70e09664f2a7407d1fc9e4 Sajad Dast <sajad79dast@gmail.com> 1789400269 +0330	commit: feat(certificates): implement certificate issuance, dynamic QR generation, and PDF export
0deb9920f8dc884f3e70e09664f2a7407d1fc9e4 f5126ad6e346ec9fe5478f4558f889060c198221 Sajad Dast <sajad79dast@gmail.com> 1789500764 +0330	commit: fix(certificates): restore missing API functions, update CSRF exemptions, and overhaul visual designer layout
f5126ad6e346ec9fe5478f4558f889060c198221 66a803c8b6e50d07db1798d97e6dd18584e44eeb Sajad Dast <sajad79dast@gmail.com> 1789500789 +0330	commit: fix(certificates): redesign visual designer layout and update CSRF whitelist
66a803c8b6e50d07db1798d97e6dd18584e44eeb dc20dff3643962366f268f03f69fae9f67a35810 Sajad Dast <sajad79dast@gmail.com> 1789501517 +0330	commit: fix(certificates): restore API handlers, redesign designer layout, and fix drag positioning
dc20dff3643962366f268f03f69fae9f67a35810 771a8449efbd21c3be09e18d485d50b798fc9228 Sajad Dast <sajad79dast@gmail.com> 1789668015 +0330	commit: fix(certificates): audit and refactor Certificates Module across backend and frontend
