การบริจาคเลือดเป็นวิธีที่ง่ายและปลอดภัยในการช่วยชีวิตผู้อื่น แต่กระบวนการจับคู่ผู้บริจาคกับผู้ป่วยที่มีกรุ๊ปเลือดตรงกันยังคงมีความซับซ้อนและใช้เวลานาน เวลาเป็นปัจจัยสำคัญที่สุดในการบริจาคเลือด ทำให้การจับคู่ที่รวดเร็วและแม่นยำเป็นสิ่งจำเป็นอย่างยิ่ง
กระบวนการที่มีประสิทธิภาพมากเท่าไหร่ ชีวิตที่ได้รับการช่วยชีวิตก็จะมากขึ้นเท่านั้น บัญญู กอร์ทิวัดา (Bhanu Korthiwada) ได้รับมือกับความท้าทายนี้โดยสร้างแอปพลิเคชัน Zindagi ซึ่งเร่งความเร็วกระบวนการบริจาคเลือดทั้งหมดโดยการจับคู่ผู้บริจาคกับผู้ป่วยที่เหมาะสมที่สุดได้อย่างทันท่วงที
หัวใจสำคัญของแอปพลิเคชันนี้คือความจำเป็นในการส่งข้อมูลด้วยประสิทธิภาพสูงสุดเพื่อให้ผู้ใช้ได้รับการอัปเดตแบบเรียลไทม์ การล่าช้าหรือความหน่วงจะสร้างประสบการณ์ผู้ใช้ที่แย่และไม่สามารถตอบสนองความต้องการเร่งด่วนของการบริจาคเลือดได้
เพื่อตอบสนองความต้องการเหล่านี้ Redis ถูกนำมาใช้เป็นฐานข้อมูลหลักของแอปพลิเคชัน ซึ่งส่งผลต่อประสิทธิภาพอย่างน่าทึ่ง ข้อมูลถูกส่งด้วยประสิทธิภาพสูงสุด ผู้ใช้ได้รับการอัปเดตแบบเรียลไทม์ และการบริจาคเลือดกลายเป็นเรื่องราบรื่น
มาเรียนรู้กันว่าบัญญูสร้างแอปพลิเคชันนี้อย่างไร แต่ก่อนจะเจาะลึกรายละเอียด เรายังมีแอปพลิเคชันน่าสนใจอีกมากมายบน Redis Launchpad ให้สำรวจกันได้
อย่าลืมไปดูหลังจากอ่านบทความนี้เสร็จนะครับ!
วิธีสร้างแอปที่เชื่อมต่อผู้บริจาคเลือดกับผู้ป่วย
- คุณจะสร้างอะไร?
- สิ่งที่คุณต้องเตรียม
- สถาปัตยกรรม
- เริ่มต้นใช้งาน
- วิธีใช้แอปพลิเคชัน
- หลักการทำงาน
1. คุณจะสร้างอะไร?
คุณจะสร้างแอปพลิเคชันที่จับคู่ผู้บริจาคเลือดกับผู้ป่วยที่มีกรุ๊ปเลือดตรงกัน ซึ่งจะส่งเสริมกระบวนการบริจาคเลือดให้ราบรื่นและมีประสิทธิภาพมากขึ้น ประหยัดเวลาเพื่อช่วยชีวิต
เราจะแนะนำทุกขั้นตอนที่จำเป็นในการนำแอปพลิเคชันนี้มาสู่การใช้งานจริง พร้อมทั้งระบุองค์ประกอบที่ต้องใช้ ตั้งแต่ต้นจนจบ เราจะแยกขั้นตอนออกเป็นหน่วยย่อยที่เข้าใจง่าย เพื่อให้การสร้างแอปพลิเคชันนี้ง่ายที่สุด
พร้อมเริ่มต้นแล้วหรือยัง?
ดี เริ่มเลยครับ!
2. สิ่งที่คุณต้องเตรียม
RedisJSON: ใช้มาตรฐาน ECMA-404 สำหรับการแลกเปลี่ยนข้อมูล JSON เป็นชนิดข้อมูลพื้นฐาน (native data type)
RediSearch: ให้การสืบค้นขั้นสูง ดัชนีรอง (secondary indexing) และการค้นหาข้อความเต็ม (full-text search) สำหรับ Redis
Redis Pub/Sub: ใช้สำหรับการส่งข้อความเหตุการณ์ (event messaging) สามารถส่งข้อความไปยังผู้สมัครรับ (subscribers) จำนวนมากบนช่องทาง (channel) เดียวกัน
Telerik: ให้ชุดเครื่องมือซอฟต์แวร์สำหรับพัฒนาเว็บ มือถือ เดสก์ท็อป และอื่นๆ
Blazor: เฟรมเวิร์กเว็บโอเพนซอร์สฟรี ที่ให้นักพัฒนาสร้างเว็บแอปด้วย C# และ HTML
.NET Core Runtime – ให้บริการพื้นฐานสำหรับแอปที่เชื่อมต่ออินเทอร์เน็ต
3. สถาปัตยกรรม
4. เริ่มต้นใช้งาน
ข้อกำหนดเบื้องต้น
- .NET Core – v5.0.x (เวอร์ชันแพทช์ล่าสุด)
- Visual Studio 2019 16.9 หรือ Visual Studio Code 1.55
- Docker – v19.03.13 (ไม่บังคับ)
- Auth0:
- Domain
- Client ID
- Client Secret
- SMTP (ไม่บังคับ): ฟีเจอร์เสริม มีผู้ให้บริการหลายราย เช่น SendGrid by Twilio, Amazon SES, Mail Jet, Mailgun
- SMS: โค้ดฟีเจอร์ SMS ยังไม่ได้นำไปใช้ แต่มีแผนจะทำในอนาคต ผู้ให้บริการยอดนิยม ได้แก่ Msg91, Twilio
การติดตั้งในเครื่องด้วย Docker
ข้อกำหนดเบื้องต้น
- Docker
- Docker Compose
ขั้นตอนที่ 1: Clone โครงการ
git clone https://github.com/redis-developer/rediszindagi
อัปเดตไฟล์
.envด้วยรายละเอียด Auth0 และ SMTP
ขั้นตอนที่ 2: ตรวจสอบไฟล์ Docker Compose
ไฟล์ Compose นี้กำหนดบริการหลัก 2 ตัว:
- Redismod
- rediszindagi
Redismod มีโมดูลในตัว เช่น RedisJSON และ RediSearch ที่ใช้ในโครงการนี้ คุณต้องส่งตัวแปรสภาพแวดล้อมของ Auth0 หลายตัว SMTP เป็นตัวเลือกเสริม สำหรับความต่อเนื่อง (persistence) ได้เพิ่ม Docker volumes mount และแอปเปิดพอร์ต 80
รันคำสั่ง
docker-compose up -dจากเทอร์มินัล/คอมมานด์พรอมต์
เข้าถึงแอปพลิเคชันผ่าน localhost ได้เลย
5. วิธีจัดเก็บข้อมูล
- ข้อมูลคำขอถูกจัดเก็บในคีย์ (keys) และชนิดข้อมูลหลายแบบ
- สำหรับแต่ละคำขอ:
- ID:
Guid
เป็นสตริง - กรุ๊ปเลือด, ประเภทการบริจาค, ความสำคัญ, สถานะ:
C# ENUM
- ID:
- สำหรับแต่ละคำขอ:
- Redis JSON
- User Profile Key: prefix:
USER_PROFILE
postfix: Auth0 name identifier - Request Key: prefix:
BLOOD_REQUEST
postfix: Guid string
- User Profile Key: prefix:
- Redis Publish
- Requests: คำขอเลือดใหม่จะเผยแพร่ request id เป็นข้อความไปยังหัวข้อ
URN:BLOODREQUESTS:NEW
- Requests: คำขอเลือดใหม่จะเผยแพร่ request id เป็นข้อความไปยังหัวข้อ
วิธีการเข้าถึงข้อมูล:
- ใช้ C# Repository pattern ทุกการเรียกจะสร้างอินสแตนซ์ด้วย Connection Multiplexer
6. วิธีใช้แอปพลิเคชัน
สร้างบัญชีหรือเข้าสู่ระบบ
เพื่อใช้ประโยชน์เต็มที่ ผู้บริจาคเลือดต้องสร้างบัญชี ทำได้ที่แดชบอร์ดหลักโดยกlik 'Register Now'
บริจาคเลือด
กดปุ่มบริจาคเลือดบนแถบนำทางด้านบน จะมีฟิลด์ให้กรอกข้อมูลกรุ๊ปเลือดและปริมาณที่ต้องการบริจาค
รับคำขอการบริจาคเลือด
หลังสร้างบัญชีแล้ว ผู้ป่วยที่เข้ากับกรุ๊ปเลือดของคุณจะได้รับแจ้งเตือน พวกเขาสามารถส่งคำขอการบริจาคได้ เข้าดูรายการคำขอทั้งหมดที่แท็บ 'Requests' บนแถบนำทาง
สรุป: เชื่อมโยงผู้ป่วยกับผู้บริจาคเลือดเพื่อช่วยชีวิตด้วย Redis
การเข้าถึงเลือดอย่างรวดเร็วเป็นตัวแปรสำคัญระหว่างชีวิตและความตายของผู้ป่วยหลายคน การจับคู่ผู้บริจาคกับผู้ป่วยที่เหมาะสมมักใช้เวลานาน ทุกวินาทีที่ผ่านไปก็เสี่ยงต่อชีวิตผู้ป่วย แอปพลิเคชันของบัญญูช่วยกำจัดอุปสรรคนี้ด้วยความสามารถของ Redis ในการส่งข้อมูลระหว่างส่วนประกอบด้วยความเร็วแสง
การส่งข้อมูลอย่างมีประสิทธิภาพทำให้ Zindagi จับคู่ผู้บริจาคกับผู้ป่วยที่ตรงตามเกณฑ์ได้อย่างรวดเร็ว เร่งกระบวนการบริจาคเลือดทั้งหมด ทำให้ผู้บริจาคและผู้ป่วยโต้ตอบกันแบบเรียลไทม์และจัดการบริจาคได้
หัวใจของแอปพลิเคชันคือความสามารถในการรวมทุกฝ่ายเข้าด้วยกัน ให้ทิศทางที่ดีที่สุดสำหรับความก้าวหน้า หมายถึงการบริจาคมากขึ้น เวลาที่เสียไปน้อยลง และประสบการณ์ที่ราบรื่นสำหรับทุกคน
หากต้องการเข้าใจภาพรวมมากขึ้น ดูวิดีโอ YouTube นี้ได้เลย หากชอบบทความนี้ อย่าลืมไปสำรวจ Redis Launchpad ที่มีแอปพลิเคชันนวัตกรรมมากมายที่สร้างผลกระทบต่อชีวิตประจำวัน
มีแอปติดตามรถบัสแบบเรียลไทม์บนแผนที่ แอปป้องกันขาดแคลนวัสดุในโรงพยาบาลประเทศใน vías พัฒนา และอีกมากมายรอคุณค้นพบ
ไปดูกันเลย!
ผู้สร้างแอปคือใคร?
บัญญู กอร์ทิวัดา (Bhanu Korthiwada)
บัญญูเป็นวิศวกรซอฟต์แวร์มืออาชีพ ปัจจุบันทำงานเป็นที่ปรึกษาอาวุโส (senior consultant) ที่ ADP หากต้องการติดตามโครงการล่าสุดของเขา ติดตาม GitHub ของเขาได้เลย