สำคัญ
- ไคลเอนต์การจัดการเครือข่าย Meshtastic ต้องการเจ้าของแพลตฟอร์ม / ผู้ดูแลใหม่หรือไม่?
รายละเอียดเพิ่มเติมมีอยู่ในปัญหา #473
แอปพลิเคชันนี้เป็นไคลเอนต์เดสก์ท็อปสำหรับโครงการ Meshtastic ที่ออกแบบมาเพื่อให้ผู้ใช้สามารถจัดการเครือข่ายตาข่ายขนาดใหญ่ที่มีการกระจายอำนาจได้อย่างน่าเชื่อถือ ปัจจุบันระบบนิเวศไคลเอนต์ Meshtastic ได้รับการสนับสนุนที่แข็งแกร่งสำหรับการจัดการโหนดเดี่ยว แต่การสนับสนุนขั้นต่ำสำหรับการจัดการและการวิเคราะห์ระดับเครือข่าย เป้าหมายของโครงการนี้คือการให้ความมั่นใจแก่ผู้ใช้ในเครือข่าย meshtastic ของพวกเขาในฐานะโครงสร้างพื้นฐานการสื่อสารที่เชื่อถือได้ผ่านการวิเคราะห์อัลกอริทึมแบบใหม่และข้อมูลเชิงลึกระดับการเชื่อมต่อ

แอปพลิเคชั่นนี้สร้างขึ้นโดยใช้ Tauri Framework ซึ่งเป็นผู้สืบทอดที่ทันสมัยและปลอดภัยต่อเฟรมเวิร์กอิเล็กตรอน สิ่งนี้ช่วยให้เราสามารถรองรับ Linux, MacOS และ Windows ภายใน codebase เดียวกันโดยไม่ต้องมีประสิทธิภาพหรือหน่วยความจำค่าใช้จ่ายของเบราว์เซอร์โครเมียม โครงสร้างพื้นฐานแอปพลิเคชันหลักของเราเขียนขึ้นเป็นสนิมเนื่องจากประสิทธิภาพและความปลอดภัยและฟังก์ชั่น UI และไคลเอนต์ของเราเขียนด้วย React TypeScript โดยใช้ VITE โครงการนี้อยู่ในช่วงเริ่มต้นของการพัฒนาและ ยังไม่เหมาะสำหรับการใช้งานการผลิต
ในช่วงเวลาของการเขียนโครงการนี้ได้รับการดูแลโดยนักพัฒนาคนเดียว ดังนั้นโครงการกำลังมองหานักพัฒนาที่เต็มใจที่จะมีส่วนร่วมหรือเป็นผู้นำในการริเริ่มที่สำคัญต่อไปนี้:
โครงการนี้ยังอยู่ในช่วงเริ่มต้นของการพัฒนา แต่นี่เป็นแผนงานที่ยากลำบากของฟังก์ชั่นที่เรากำลังทำอยู่ เราให้ความสำคัญสูงในการทำให้โครงสร้างพื้นฐานหลักของเราถูกต้องเนื่องจากนี่เป็นแกนหลักของเลเยอร์ UI ที่แข็งแกร่งและมีประสิทธิภาพ
โครงการนี้สร้างขึ้นบนระบบนิเวศฮาร์ดแวร์ Meshtastic และลูกค้ารายนี้ต้องการให้คุณสามารถเข้าถึงวิทยุ meshtastic ได้ สิ่งนี้อาจเปลี่ยนแปลงได้ในอนาคต แต่ในขณะนี้จำเป็นต้องใช้วิทยุทางกายภาพเพื่อใช้ไคลเอนต์นี้
ฉันได้เขียนคำแนะนำฮาร์ดแวร์ส่วนตัวที่นี่
โครงการนี้สร้างขึ้นใน Rust และ React Typescript และจัดการโดยใช้ PNPM Package Manager ดังนั้นโครงการนี้ต้องใช้โปรแกรมต่อไปนี้ที่จะติดตั้งบนเครื่องพัฒนาของคุณ:
ในการเรียกใช้โครงการนี้ในพื้นที่ให้ทำตามขั้นตอนด้านล่าง:
git clone https://github.com/meshtastic/network-management-client.gitgit submodule update --initpnpm ipnpm run rust:dev แอปพลิเคชันควรรวบรวมได้สำเร็จและคุณควรเห็นแอปพลิเคชันเปิดสำเร็จ หากกระบวนการนี้ล้มเหลวสำหรับคุณโปรดแจ้งให้เราทราบ!ในขณะที่โครงการนี้สามารถพัฒนาได้ภายในตัวแก้ไขข้อความใด ๆ เราขอแนะนำตัวแก้ไขรหัส Visual Studio หากใช้ VSCODE เราขอแนะนำอย่างยิ่งให้คุณติดตั้งส่วนขยายรหัส Visual Studio ต่อไปนี้ ส่วนขยายเหล่านี้มีทั้งรูปแบบรหัสและเปิดใช้งานการสนับสนุนภาษาและกรอบสำหรับสแต็กเทคโนโลยีของเรา
ส่วนขยายเสริมบางอย่างที่ไม่จำเป็น แต่เราพบว่ามีประโยชน์มาก:
เพื่อสร้างมาตรฐานการพัฒนาของเราเราใช้คำสั่ง PNPM ที่กำหนดไว้ใน package.json คำสั่งเหล่านี้สามารถรันได้ด้วย pnpm run NAME ...ARGS ไวยากรณ์ คำสั่งของเราแบ่งออกเป็นสองประเภทหลัก rust:* คำสั่งและ ui:* คำสั่ง คำสั่ง rust:* เรียกใช้แอปพลิเคชันเดสก์ท็อปทั้งหมดโดยที่คำสั่ง ui:* เรียกใช้เลเยอร์ UI เท่านั้น
หมายเหตุ: เราขอแนะนำอย่างยิ่งต่อการใช้
ui:devและui:buildคำสั่งด้วยตนเอง คำสั่งเหล่านี้ถูกเรียกใช้ภายในโดย Therust:devและrust:buildCommands ตามลำดับ คุณจะ ไม่ สามารถเชื่อมต่อกับ Devce แบบอนุกรมเมื่อเรียกใช้คำสั่งui:devเนื่องจากตรรกะนี้ไม่ได้รับการจัดการในชั้น UI
ขณะนี้เรากำลังทำงานเพื่อเพิ่มการสนับสนุนสำหรับกรอบนิทานซึ่งจะช่วยให้ผู้มีส่วนร่วมในการพัฒนาส่วนประกอบ UI โดยไม่ต้องใช้แอปพลิเคชันเดสก์ท็อปทั้งหมด
pnpm run rust:dev - เริ่มแอปพลิเคชันเดสก์ท็อปในโหมดการพัฒนาช่วยให้สามารถโหลด UI และรหัสสนิมได้อย่างร้อนแรง
pnpm run rust:build - สร้างแอปพลิเคชันเดสก์ท็อปในโหมดการผลิตสำหรับสถาปัตยกรรมระบบของคุณ ขณะนี้เราใช้คำสั่งนี้สำหรับการทดสอบตัวแยกวิเคราะห์อาร์กิวเมนต์ CLI ของแอปพลิเคชันเท่านั้น
pnpm run rust:test - เรียกใช้การทดสอบแบ็กเอนด์บนไดเรกทอรี Rust Codebase ( /src-tauri ) คำสั่งนี้ยังสร้างการผูกไคลเอนต์ TypeScript ในไดเรกทอรี /src-tauri/bindings เพิ่ม -- --show-output เพื่อแสดง println! การโทรแมโครภายในชุดทดสอบ
pnpm run ui:dev - เริ่มต้นเซิร์ฟเวอร์การพัฒนา UI เพื่อให้สามารถพัฒนา UI ในสภาพแวดล้อมของเบราว์เซอร์ โปรดทราบว่ารหัสใด ๆ ที่เชื่อมต่อกับแบ็กเอนด์ Rust จะไม่ทำงาน ภายในสภาพแวดล้อมของเบราว์เซอร์นี้ซึ่งหมายความว่าคุณจะไม่สามารถเชื่อมต่อกับอุปกรณ์อนุกรมในบริบทนี้ได้
pnpm run ui:build : - เรียกใช้การผลิตการสร้างบนรหัส UI ลงในไดเรกทอรี dist
pnpm run ui:lint - ใช้ ESLINT เพื่อตรวจสอบข้อผิดพลาดสไตล์รหัส โปรดทราบว่าไปป์ไลน์ CI ของเราต้องการให้คำสั่งนี้สำเร็จก่อนที่จะสามารถรวมการเปลี่ยนแปลงใด ๆ ได้
pnpm run ui:format - รูปแบบ UI Codebase โดยใช้ Prettier และ Eslint เราขอแนะนำให้คุณเรียกใช้สิ่งนี้ก่อนที่จะสร้าง PR!
pnpm run ui:test - เรียกใช้ชุดทดสอบ UI โดยใช้ JEST ปัจจุบันโครงการไม่มีชุดทดสอบ UI แต่เราเปิดรับการสนับสนุนมาก!
(เลิกใช้แล้ว)pnpm run ui:preview - เรียกใช้ UI ที่สร้างขึ้นจากไดเรกทอรี dist คำสั่งนี้จะต้องเรียกใช้หลังจาก ui:build
หมายเหตุ: บน Linux ผู้ใช้ของคุณอาจไม่ได้รับอนุญาตให้เข้าถึงพอร์ตอนุกรมที่กำหนด หากสิ่งนี้เกิดขึ้นคุณอาจต้องเพิ่มผู้ใช้ของคุณในกลุ่มที่ควบคุมพอร์ตอนุกรมที่คุณต้องการเข้าถึง คุณสามารถค้นหากลุ่มที่ควบคุมพอร์ตอนุกรมผ่านคำสั่ง
ls -ld PATH_TO_PORT_HEREคุณสามารถเพิ่มผู้ใช้ของคุณในกลุ่มนี้ผ่านคำสั่งusermod -a -G GROUP_NAME_HERE $USER
เนื่องจากเรายังคงอยู่ในช่วงต้นของการพัฒนาเรายังไม่มีกรอบมาตรฐานสำหรับการยอมรับการมีส่วนร่วม สิ่งนี้ถูกกล่าวว่าเราเปิดกว้างสำหรับคำแนะนำและ/หรือการเปลี่ยนแปลงรหัส! หากคุณสนใจที่จะมีส่วนร่วมในที่เก็บข้อมูลนี้เราจะขอให้คุณตรวจสอบบอร์ดปัญหาของเราก่อนเพื่อให้แน่ใจว่างานของคุณไม่ได้ทำซ้ำการทำงานของผู้อื่น จากนั้นโปรดสร้างปัญหาบนกระดานของเราเพื่อให้เรารู้ว่าคุณสนใจทำงานอย่างไร หากคุณมีคำถามใด ๆ เกี่ยวกับโครงการเรายินดีที่จะได้ยินจากคุณ!