ตัวย่อลิงค์ที่ทันสมัย
โครงการนี้เป็นตัว ย่อ ที่ปรับขนาดได้และเต็มไปด้วยคุณสมบัติที่สร้างขึ้นด้วยเทคโนโลยีที่ทันสมัยใน. NET 8 มันใช้สถาปัตยกรรมแบบเลเยอร์เพื่อให้แน่ใจว่าการบำรุงรักษาความสามารถในการทดสอบและความสามารถในการปรับขนาด แอปพลิเคชันประกอบด้วย ASP.NET Core Web API เป็นแบ็กเอนด์และส่วนหน้าของ Blazor WebAssembly มันใช้ประโยชน์จากเทคโนโลยีและรูปแบบการออกแบบที่หลากหลายเพื่อมอบประสบการณ์ที่ปลอดภัยมีประสิทธิภาพและใช้งานง่าย
คุณสมบัติที่สำคัญ
- Secure Link Shortening : ใช้ Hashing SHA-256 กับการจัดการการชนกัน
- การสนับสนุนลิงค์ที่กำหนดเอง : สร้างลิงค์สั้น ๆ ส่วนบุคคล (คุณสมบัติพรีเมี่ยม)
- การสร้างรายได้ : สร้างรายได้จากการโฆษณา
- สนับสนุนทั้งการเปลี่ยนเส้นทางที่สร้างรายได้และการเปลี่ยนเส้นทางธรรมดา
- สถิติเรียลไทม์ : การติดตามสดและการอัปเดตผ่าน SignalR
- การประมวลผลแบบแบทช์ : สนับสนุนการดำเนินการสั้น
- การวิเคราะห์ขั้นสูง : ข้อมูลเชิงลึกโดยละเอียดรวมถึงข้อมูลทางภูมิศาสตร์และข้อมูลอุปกรณ์ตามที่อยู่ IP และตัวแทนผู้ใช้
- การตรวจสอบความปลอดภัย : การรับรองความถูกต้องของ JWT พร้อมการป้องกัน XSS & CSRF
- การ จำกัด อัตรา : คำขออัจฉริยะการควบคุมปริมาณตามความไวของจุดสิ้นสุด
- การจัดการลิงค์ ด้วยคลิกเดียว:
- สลับการเปิดใช้งานลิงก์
- สลับ การสร้างรายได้ ลิงค์
- การจัดการการชนที่กำหนดเอง
- การรับประกันแฮชที่ไม่ใช่ตัวเลข
- คุณสมบัติด้านความปลอดภัย
- HTTP -ONLY คุกกี้ jwt และการจัดเก็บโทเค็นรีเฟรช
- การป้องกัน CSRF ผ่านการป้องกันการปลอมแปลงโทเค็น
- การแฮชรหัสผ่านโดยใช้ bcrypt
- กลไกการ จำกัด อัตรา
- มาตรการ ป้องกันการโจมตีของ XSS
- การรวม Turnstile Cloudflare สำหรับหน้าเพื่อป้องกันบอท
- IP และการประมวลผลตัวแทนผู้ใช้โดยใช้บริการที่เชื่อถือได้ภายนอก
- ความลับของผู้ใช้ การใช้ความลับของผู้ใช้เพื่อป้องกันการรั่วไหลของคีย์ API หรือข้อมูลสำคัญอื่น ๆ
- การอนุญาตตามบทบาท
- การตรวจสอบข้อมูลประเภทที่ปลอดภัยอย่างเข้มงวด
สแต็คทางเทคนิค
แบ็กเอนด์ (.NET 8)
- สถาปัตยกรรม : สถาปัตยกรรมชั้น
- API : ASP.NET CORE WEB API
- การรับรองความถูกต้อง : JWT พร้อมที่เก็บคุกกี้ที่ปลอดภัย
- ฐานข้อมูล : PostgreSQL (Dockerized)
- นายหน้าแคชและข้อความ : Redis (Dockerized)
- ORM : Entity Framework Core
- การสื่อสารแบบเรียลไทม์ : SignalR
- การประมวลผลการชำระเงิน : ZibalClient
ส่วนหน้า (.NET 8)
- เทคโนโลยี : Blazor WebAssembly
- CSS Framework : bootstrap
- การรับรองความถูกต้อง โดยใช้ตัวจัดการ HTTP ที่กำหนดเองเพื่อตรวจสอบสิทธิ์คำขอ
- การอนุญาต : การใช้. NET Avality State ผู้ให้บริการ
- การสื่อสารแบบเรียลไทม์ : ไคลเอนต์ SignalR
- การจัดเก็บและการแจ้งเตือนท้องถิ่น : blazored
- ไอคอน : ไอคอนที่ยอดเยี่ยมของ Blazorise
- Captcha : Blazor Turnstile
แพ็คเกจคีย์
- SignalR : สำหรับการสื่อสารแบบเรียลไทม์
- Automapper สำหรับการแมป DTO
- FluentValidation สำหรับการตรวจสอบความถูกต้อง
- IPINFO สำหรับการวิเคราะห์บน IP
- NPGSQL สำหรับการเชื่อมต่อ postgreSQL
- bcrypt.net เพื่อความปลอดภัยรหัสผ่าน
- chart.js สำหรับการแสดงแผนภูมิในแผงควบคุม
- Blazored : สำหรับการจัดเก็บข้อมูลท้องถิ่นและแสดงการแจ้งเตือน
- Blazorise : สำหรับองค์ประกอบ UI เช่นไอคอน
- โครงสร้างพื้นฐาน
- ฐานข้อมูล PostgreSQL containerized
- REDIs คอนเทนเนอร์สำหรับการแคชและการเป็นนายหน้าส่งข้อความ
- บริการพื้นหลังสำหรับการดำเนินงาน async
- บริการอีเมล สำหรับรหัสการรับรองความถูกต้อง
- คุณสมบัติขั้นสูง
การสร้างรายได้
- โฆษณา : สนับสนุนการหารายได้โดยแสดงโฆษณาในหน้าเปลี่ยนเส้นทางได้สูงสุด 8 โฆษณา
การจัดการข้อมูล
- การใช้การปนเปื้อนที่กำหนดเอง
- การจัดการธุรกรรมสำหรับการดำเนินการเชื่อมโยงเพื่อให้แน่ใจว่า อะตอม
- กลยุทธ์การจัดการชน
- แฮชที่ไม่ใช่ numeric
ระบบแคช
- การใช้งานแคช Redis ทั่วไป
- การสนับสนุนการแคชแบบแบทช์
- ประสิทธิภาพที่ดีที่สุดสำหรับสถานการณ์การลงทุนสูง
- redis คิวสำหรับการสื่อสารบริการพื้นหลัง
การวิเคราะห์
- การวิเคราะห์ผู้เข้าชมโดยละเอียด
- การตรวจจับอุปกรณ์และเบราว์เซอร์
- การติดตามตำแหน่งทางภูมิศาสตร์
- การประมวลผลพื้นหลังของข้อมูล IP และตัวแทนผู้ใช้
- แผงควบคุมผู้ใช้ที่ครอบคลุมพร้อมข้อมูลเชิงลึกของลูกค้า:
- แผนภูมิแสดงการคลิกของเดือนที่ผ่านมา
- การแสดงแผนภูมิในช่วงเวลาใดของวันที่มีการคลิกมีแนวโน้มที่จะเกิดขึ้น
- การเติบโตของการคลิกรายสัปดาห์
- จำนวนลิงก์ทั้งหมด
- คลิกเมื่อวานนี้
- คลิกเฉลี่ยต่อลิงค์
- รายการลิงก์ที่คลิกด้านบน
- ประเทศชั้นนำที่คลิกมาจาก
- อุปกรณ์ด้านบน clickers ใช้
- ตารางแสดงลิงก์สั้นล่าสุด 5 ลิงก์ล่าสุด
ลิงก์สั้นลง
- รองรับทั้งลิงก์เดี่ยวและแบทช์สั้นลง
- สลับสำหรับการเปิดใช้งานและการสร้างรายได้ของลิงก์ที่สั้นลง
- ตารางที่ใช้งานง่ายและกำหนดเองเพื่อจัดการลิงก์ที่สั้นลงในหน้าโปรไฟล์ผู้ใช้และหน้าย่อ
การอัปเดตแบบเรียลไทม์
- การรวม SignalR สำหรับสถิติสด
- การอัปเดตสถิติยอดคงเหลือทันทีและโปรไฟล์
- การซิงโครไนซ์โปรไฟล์ผู้ใช้แบบเรียลไทม์