Farrel Giovanni Jaohari

VeriCert

VeriCertVeriCert

Website link:https://vericertt.vercel.app/

Start: 20/11/2025 - End: 28/11/2025

VeriCert adalah sebuah website untuk menyimpan sertifikat digital dengan bebasis blockchain. Latar belakang ide ini muncul adalah banyaknya berita tentang ijazah palsu pada waktu itu sehingga saya dan teman-teman membuat website ini untuk lomba hackathon. Website ini memiliki fitur utama yaitu tiap data saling terhubung satu sama lain sesuai dengan cara kerja blockchain.

Tech stack yang digunakan pada website ini adalah Nextjs, Typescript, TailwindCSS, Supabase, Lucide Icon, Shadcn, dan Ethers. Pada pembuatan website ini saya bekerja sebagai fullstack (fokusnya di backend dan membantu UI sedikit). Dalam pembuatan website ini, saya menggunakan gemini AI untuk membantu saya memperbaiki bug, memperbaiki alur code, dan membantu saya untuk meyambungkan back-end saya dengan supabase.

1
const dataString = `${previousHash}-${hash}-${sortedMetadata}-${issuerId}-${timestamp}-${process.env.SECRET_KEY}`;
2
const txHash = ethers.id(dataString);
3
4
const newRecord = {
5
hash: hash,
6
metadata: metadata,
7
timestamp: timestamp,
8
tx_hash: txHash,
9
issuer: issuerId,
10
is_valid: true,
11
};

Pada code diatas terdapat sebuah fitur utama “blockchain”nya yaitu implementasi dari linked list cryptography. Setiap sertifikat yang diupload akan dihash bersamaan dengan nilai hash dari sertifikat sebelumnya. Sehingga setiap data sertifikat pada sistem ini akan saling terhubung satu sama lain. Ketika ada data yang diubah maka data berikutnya yang akan mengecek apakah sertifikat valid atau tidak.

Batasan dari project ini adalah data sertifikat yang paling terakhir diupload dapat diubah karena belum ada sertifikat yang baru untuk memvalidasi sertifikat ini. Oleh karena itu saya memiliki ide untuk menambahkan SECRET_KEY dalam proses hashingnya sehingga yang memegang database tidak dapat membuat hash palsu yang terbaca sesuai oleh sistem. SECRET_KEY ini sendiri merupakan 64 karakter HEX acak sehingga hampir mustahil untuk dibruteforce. Harapannya jika ini dideploy, orang yang memegang database dan orang yang memiliki SECRET_KEY ini adalah orang yang berbeda sehingga orang yang memegang database tidak dapat memodifikasi data.

HAVE A PROJECT IN MIND?

LET'S CREATEGREAT THINGS together.

GET IN TOUCH
© 2025 Farrel Giovanni Jaohari. All rights reserved.