Jungmha คือแพลตฟอร์มที่มุ่งเน้นให้บริการตัวกลางสำหรับคนที่รักสุนัข บางครั้งอาจไม่สามารถหรือไม่มีเวลาดูแลหรือพาเพื่อนสุนัขของเขาไปเดินเล่น และสำหรับผู้ที่มีความสามารถและความประสงค์ที่จะรับจ้างนำสุนัขไปเดินเล่น
สามารถค้นหาคนที่พื้นที่ใกล้ตนเองได้ และกำการจองช่วงเวลาได้ตามตารางของของคนรับจ้างก็ต่อเมื่อได้ลงทะเบียนแล้ว
ในส่วนของรับจ้างสามารถปรับแก้ไขข้อมูลรายละเอียดราคาหรือพื้นที่ให้บริการ และยังสามารถยอมรับหรือปฏิเสธการจองได้
- ✨ ส่วนของการจัดส่งข้อมูล ที่จะให้บริการต่างๆแก่ Frontend
- ✨ สำหรับการทำงานของ Method หรือ ส่วนการคำนวณต่างๆ
- ✨ ในส่วนนี้จะเป็นการเชื่อมกับฐานข้อมูลและดำเนินการ SQL และ จัดเตรียมรูปแบบข้อมูล ที่จะส่งให้ ขั้นที่ 2 ไปคำนวณต่อ
- ✨ ฐานข้อมูลนี้คือก้อนของข้อมูล ที่มีการเก็บข้อมูลต่างๆไว้ และในส่วนนนี้ยังมีการ เขียนโปรแกรมทำอะไรบ้างอย่างกับข้อมูล เพื่อให้ฐานข้อมูลฉลาดขึ้น จะได้ลดภาระ หรือลดโค้ดในชั้นที่ 2 และ 3
ระบบลงทะเบียนและเข้าสู่ระบบ
เพื่อความปลอดภัยของข้อมูลที่ส่งไปยังเซิร์ฟเวอร์ การลงทะเบียนจำเป็นต้องมีการสร้างช่องทางสื่อสารที่ปลอดภัย โดยเฉพาะเมื่อข้อมูลที่ส่งมีความลับ เช่น ข้อมูลส่วนตัว หรือข้อความแชท ดังนั้น การใช้ Cryptography เป็นสิ่งสำคัญอย่างยิ่ง
ใช้ Elliptic Curve และเส้นโค้ง Secp256k1 ในการสร้าง Public Key เป็นรูปแบบบีบอัดขนาด 33 Bytes
Important
Private Key นั้นสร้างโดยนำ Password มา Hash ด้วย Sha256 ทั้งหมด 7,200 รอบ เพื่อถ่วงเวลาพวกที่จะมา brute force
ต่อไปใช้ ECDH Key Exchange เพื่อสร้าง Private Key ใหม่ โดยในกระบวนการนี้ Client และ Server จะแลกเปลี่ยน Public Key เพื่อสร้างกุญแจที่ใช้ในการเข้ารหัสข้อมูล
สุดท้ายใช้ ChaCha20 เพื่อเข้ารหัสข้อมูล โดยใช้ Private Key ที่ได้จากขั้นตอน ECDH
การเข้าสู่ระบบเพื่อเข้าใช้งานนั้น Client ต้องสร้างลายเซ็นดิจิตอล และส่งไปให้ Server เมื่อทาง Server ตรวจสอบเลยเซ็นแล้วพบว่าถูกต้อง จากนั้นจะส่ง Access token กลับไปให้ Client
นำข้อความที่กำหนดมา Hash ด้วย Sha256 เพียงครั้งเดียว แล้วนำ Private Key มาใช้สร้างลายเซ็นแบบ ECDSA แล้วส่งไปให้ Server เพื่อรับ Access token
Important
ลายเซ็นที่สร้างขึ้นใช้งานได้ครั่งเดียวเท่านั้น ไม่สามารถใช้ซ้ำได้
เริ่มต้นด้วยการคัดลอกโปรเจ็กต์จาก GitHub และเข้าไปยังไดเร็กทอรีของโปรเจ็กต์ที่คุณได้คัดลอก
git clone https://github.com/rushmi0/Jungmha.git
cd Jungmha
- ดาวน์โหลด GraalVM จากลิงก์นี้: GraalVM CE Builds
- ติดตั้ง GraalVM ตามขั้นตอนการติดตั้งที่เหมาะสมกับระบบปฏิบัติการที่ใช้
กำหนดตัวแปร JAVA_HOME และปรับ PATH เพื่อให้ระบบรู้ถึงที่ติดตั้งของ GraalVM
export JAVA_HOME=/home/$(whoami)/to/path/graalvm-ce-17.0.9
export PATH=$JAVA_HOME/bin:$PATH
source ~/.zshrc # หรือใช้ .bashrc หากใช้ bash
การใช้ GraalVM เพื่อคอมไพล์โปรแกรมเป็นไฟล์ native binaries ทำให้โปรแกรมสามารถทำงานได้โดยไม่ต้องใช้ Java Virtual Machine (JVM) อีกต่อไป นี่คือคำสั่งใน Gradle เพื่อใช้งาน GraalVM ในการคอมไพล์โปรแกรม
คำสั่งนี้จะใช้ GraalVM เพื่อคอมไพล์โปรแกรมไปเป็น native binaries
chmod +x run_native-image.sh
./run_native-image.sh
คำสั่งนี้จะใช้ GraalVM เพื่อคอมไพล์โปรแกรมไปเป็น native binaries โดยมีการปรับปรุงเพิ่มเติมในกระบวนการคอมไพล์เพื่อให้ได้ผลที่เร็วและมีประสิทธิภาพมากที่สุดที่เป็นไปได้
chmod +x run_jvm.sh
./run_jvm.sh
แปลงไปเป็น bytes code แล้วใช้ Java Virtual Machine (JVM) ในการรันโปรแกรม
docker compose up -d jungmhaDB jungmha-jvm-app
แปลงโค้ดไปเป็น native binaries ของแพลตฟอร์มนั้นๆ แล้วรันได้โดยตรง ดังนี้
docker compose up -d jungmhaDB jungmha-native-image