From 4ea8fe21d47654423bdf719255a5aa053c381458 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:34:10 +0800 Subject: [PATCH 1/9] Added two new apis --- backend/main.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/backend/main.go b/backend/main.go index b643734..4efbebc 100644 --- a/backend/main.go +++ b/backend/main.go @@ -157,6 +157,7 @@ func connect() { "result": array, "result2": array2, }) + } }) @@ -439,8 +440,60 @@ func connect() { c.JSON(http.StatusOK, gin.H{ "result": result, }) + + case "get-employeeid": + err := db.QueryRow("SELECT IFNULL(employeeid, 0) AS result FROM employee WHERE employeename = ?", data).Scan(&result) + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + c.String(http.StatusBadRequest, err.Error()) + } + c.JSON(http.StatusOK, gin.H{ + "result": result, + }) } }) + router.POST("/api/post-registration", func(c *gin.Context) { + type RegistrationData struct { + Data string `json:"data"` + Data2 string `json:"data2"` + } + var registrationData RegistrationData + if err := c.ShouldBindJSON(®istrationData); err != nil { + c.String(http.StatusBadRequest, "Invalid request body") + return + } + + c.Writer.Header().Set("X-XSS-Protection", "1; mode=block") + c.Writer.Header().Set("X-Content-Type-Options", "nosniff") + c.Writer.Header().Set("X-DNS-Prefetch-Control", "off") + c.Writer.Header().Set("X-Frame-Options", "DENY") + c.Writer.Header().Set("X-Download-Options", "noopen") + c.Writer.Header().Set("Referrer-Policy", "no-referrer") + + dbpost, err := db.Prepare("INSERT INTO esign (esignid, employeeid, signature) VALUES (NULL, ?, ?)") + if err != nil { + panic(err.Error()) + } + defer dbpost.Close() + + exec, err := dbpost.Exec(registrationData.Data, registrationData.Data2) + if err != nil { + panic(err.Error()) + } + + affect, err := exec.RowsAffected() + if err != nil { + panic(err.Error()) + } + + if affect > 0 { + c.String(http.StatusOK, "Success on Registrating e-Sign") + } else { + c.String(http.StatusInternalServerError, "Failed on Registrating e-Sign") + } + + }) + router.Run(":4320") } From 68e189bd3b56dcc708859bb4087d608330ecbc36 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:34:22 +0800 Subject: [PATCH 2/9] Added crypto-js --- package.json | 2 ++ pnpm-lock.yaml | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/package.json b/package.json index 3a01276..f600c84 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@kobalte/core": "^0.13.11", "@solidjs/router": "^0.15.3", + "crypto-js": "^4.2.0", "gsap": "^3.13.0", "nanostores": "^1.0.1", "ofetch": "^1.4.1", @@ -19,6 +20,7 @@ "solid-js": "^1.9.9" }, "devDependencies": { + "@types/crypto-js": "^4.2.2", "sass-embedded": "^1.93.2", "typescript": "~5.8.3", "vite": "^7.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0610d37..4f6dd35 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@solidjs/router': specifier: ^0.15.3 version: 0.15.3(solid-js@1.9.9) + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 gsap: specifier: ^3.13.0 version: 3.13.0 @@ -33,6 +36,9 @@ importers: specifier: ^1.9.9 version: 1.9.9 devDependencies: + '@types/crypto-js': + specifier: ^4.2.2 + version: 4.2.2 sass-embedded: specifier: ^1.93.2 version: 1.93.2 @@ -730,6 +736,9 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/crypto-js@4.2.2': + resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -776,6 +785,9 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -1780,6 +1792,8 @@ snapshots: dependencies: '@babel/types': 7.28.4 + '@types/crypto-js@4.2.2': {} + '@types/estree@1.0.8': {} babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.4): @@ -1827,6 +1841,8 @@ snapshots: convert-source-map@2.0.0: {} + crypto-js@4.2.0: {} + csstype@3.1.3: {} debug@4.4.3: From 4db6c89fd11af66a4f67a24d2d240e083d2f5ad2 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:34:33 +0800 Subject: [PATCH 3/9] New favicon --- public/favicon.png | Bin 2133 -> 8671 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/favicon.png b/public/favicon.png index f1dba7839f1749aeca064139247736f4d95eae09..b995ebd10a251adf4c3a82b430fd80d00641f2c1 100644 GIT binary patch literal 8671 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 literal 2133 zcmV-b2&(sqP)&ivEW&^K{7tXXK92}IHPmiTSw-0#cF%m1#gulq`+;;YrFZ!{YI;^M+zUS5XEHP3iQ8`{!` zzHy9|yMUPq!2JCDSI)Ut5VE!cFe(dX#s$TLO+^@_1)0W=ke zrKP1W1OTpfIvo)eO26Ot*Vos5xZiHK{rUO1?{>Ss)oKZ7cut!X7-Ll`l>!iRO#`Mh z2-n3ToA9jJYzFm#AOYFk-Sr0t2Z36^eE;m3-+%E#P&L{B zR7~*R_ZWvcn2R~ff++AQY}cAcgxVtw1;cDFCAl?@v!p!!_*~ z1CSr0)R=?0qICA|3}kh6^>e%ohH2G7*KiY#i`!gZU0wNlz3$J>&cbu9F?I^l5|CQ0 z<{_4LuV4Qh?pv)^(N^;?H#9)YIO$9TfgxHufEZ)kfhY)q7&s0PD%TJR5c+V9Dj^-U z!GqDC@u;<0EwneP7UqTq3#K%Xs7?bQARGxWF%_cpoXJrY06`oCL71LXxdyDbk2(R4 z{`BKnwOTF4wCZWWl#+-s>^(#(d$4K*r_p-|!eE)qs)o_?k%cylBjQmfKvk>N0)!-F zB@@+bFQ;Nz?}U+An}B1e1QYG-JP)cu1pt$xCbn2-kgK-92oc`xb_;cbNn9g&NrwOE z0EWETfJ7D+7QV#oA$GY|I0YzNDuBdId7hN`vL$VAy;!|o4JefSfszJ#k4+$I zCP1~4MQo@r28(1`#E?;dD72;(g67_hTGLz1pr#itR!;f zul8I2+pjPEpMU%kn4!XW5C&%_fw_uOrw?Sf-wz6H=2zvsE*C2>cV33a7;HZ)VL9M^}G1wR5SP*5vP&BvVIIUGu zS!jgzh~ZYPG$5U|dZP|=3brEeWmfygAsmsn;s?}Bs7V2nsDT-X+qZ_=&|)BwRe$O<9A~r%JB?h=p z7es(yAGrz;#)8msl{PR)hAXKw8jS&oSS^7Tn`u#!&@PCNZHNL#kO~9SS&NYh&j`WduKV%5>K-$ZqnKnktnt9hJmpAge-fR=Fxv zCrSSg5SdmxmWpC}PDe@{iuyZ~|`eOrUVrxq}`pp0u@+1i(QIUoz@9-9b;8qc<&p=(GGg z+_fA;pLKYn4VvO88-PjzN{{aBJRk6icRqR>cNi){6_aU?4>$D&Xm- z)U2FGx7#h4k~<8Y3CO79X%VI~6I4y=M8##(7O5x!%|C?kUg=nvptf2(@8x*9><0tf zOO0d)5P~YP0wXyjX1_<#c?Wi4&k3*Z>w|%5KH&hA7C?n15UXQph?Hu5@=rK65-_7a zs)@u+{ZS2lKiNk$8z12_C#^vb{+ZK80;bG|XXyDfAD*S-P6OmW|59}@zeep`00000 LNkvXXu0mjf$ho;k From 5e0afdfa66ab759f9ae7d1e4b73922256268a626 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:34:55 +0800 Subject: [PATCH 4/9] Improved modal component --- src/components/Modal/Modal.tsx | 45 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index 78458c8..02a9904 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -1,27 +1,25 @@ import './Modal.sass' import { type JSXElement, Show } from 'solid-js' import gsap from 'gsap' -import Button from '../Button/Button' interface Props { children: JSXElement background?: string color?: string border?: string + trigger: boolean } export default (props: Props) => { let dialogRef!: HTMLDivElement - // const [open, setOpen] = createSignal(false) - - const openHandler = () => { - gsap.to(dialogRef, { - duration: 0, - display: 'flex', - ease: 'power2.out', - }) - } + // const openHandler = () => { + // gsap.to(dialogRef, { + // duration: 0, + // display: 'flex', + // ease: 'power2.out', + // }) + // } const closeHandler = () => { gsap.to(dialogRef, { @@ -33,20 +31,21 @@ export default (props: Props) => { return ( <> - - + ) } From d3219d1ea8b01bf0799d5a1e172d36f96490b4e6 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:35:24 +0800 Subject: [PATCH 5/9] Changed main to div --- src/components/Page/Page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Page/Page.tsx b/src/components/Page/Page.tsx index 62d9a73..789fe9e 100644 --- a/src/components/Page/Page.tsx +++ b/src/components/Page/Page.tsx @@ -10,10 +10,10 @@ export default (props: Props) => { return ( <> -
{props.children}
+
{props.children}
-
{props.children}
+
{props.children}
) From 8523538bf339fcaf8be793efdbfef7ac0ce2670d Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 25 Sep 2025 12:35:37 +0800 Subject: [PATCH 6/9] Updated register page --- src/pages/RegisterPage/Register.tsx | 91 +++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 17 deletions(-) diff --git a/src/pages/RegisterPage/Register.tsx b/src/pages/RegisterPage/Register.tsx index 3d21825..e4d84d8 100644 --- a/src/pages/RegisterPage/Register.tsx +++ b/src/pages/RegisterPage/Register.tsx @@ -1,14 +1,49 @@ import './Register.sass' -import { Logo, Link, Page, Row, Padding, Form, Combobox, Box, File } from '../../components' +import { Logo, Link, Page, Row, Padding, Combobox, Box, File, Button, Modal, Column } from '../../components' import { IoChevronBack } from 'solid-icons/io' import { Show, createSignal } from 'solid-js' +import { ofetch } from 'ofetch' +import { SHA3 } from 'crypto-js' export default () => { + const API = import.meta.env.VITE_BACKEND const assessors = JSON.parse(sessionStorage.getItem('assessors')!) const roles = ['ASSESSOR', 'APPROVER'] const [role, setRole] = createSignal('') const [name, setName] = createSignal('') + const [id, setId] = createSignal(0) + const [signature, setSignature] = createSignal('') + const [saved, setSaved] = createSignal(false) + + const getEmployeeId = async (val: string) => { + try { + setName(val) + const id = await ofetch(API + 'get-employeeid/' + val, { parseResponse: JSON.parse }) + setId(id.result) + } catch { + setId(0) + } + } + + const generateSignature = () => { + const hash = SHA3(id().toString()) + setSignature(hash.toString()) + + try { + register() + setSaved(true) + } catch { + setSaved(false) + } + } + + const register = async () => { + await ofetch(API + 'post-registration', { + method: 'POST', + body: { data: id(), data2: signature() }, + }) + } return ( <> @@ -36,27 +71,49 @@ export default () => { Registration -
-

Role

- - -

List of Assessors

- -

Upload Signature

- -
- -

Name of Approver

- ARCH. KHASHAYAR L. TOGHYANI -

Upload Signature

- -
- +

Role

+ + +

List of Assessors

+ getEmployeeId(val!)} /> +

Upload Signature

+ + + + +