diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..6d33626
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.0.0)
+project(MakerbaseClient VERSION 0.1.0)
+
+# if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+# find_package(PkgConfig REQUIRED)
+# pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
+# message(STATUS "----- GTK3_INCLUDE_DIRS: ${GTK3_INCLUDE_DIRS}")
+# message(STATUS "----- GKT3_LIBRARIES: ${GTK3_LIBRARIES}")
+# message(STATUS "----- GTK3_LINK_LIBRARIES: ${GTK3_LINK_LIBRARIES}")
+# include_directories(${GTK3_INCLUDE_DIRS})
+# link_directories(${GTK3_LIBRARY_DIRS})
+# list(APPEND FC_DEP_LIBS ${GTK3_LIBRARIES})
+# endif()
+
+include(CTest)
+enable_testing()
+
+include_directories(./include)
+# link_directories(./lib)
+
+add_executable(xindi main.cpp)
+add_subdirectory(src)
+target_link_libraries(xindi src -lpthread -lboost_system -lwpa_client)
+
+set(CPACK_PROJECT_NAME ${PROJECT_NAME})
+set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
+include(CPack)
\ No newline at end of file
diff --git a/README.md b/README.md
index 55df262..c3dd809 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,48 @@
-# QIDI_Q1_Pro
\ No newline at end of file
+

+
+
+# Documentation Guidelines
+
+QIDI_Q1_Pro is a server-side application designed specifically for the Q1_Pro model system, facilitating seamless interaction with its screen. This repository hosts our source code and offers a secure and straightforward method for updating: simply download the package file to a USB drive and perform the update locally on your device.
+
+For convenience, QIDI provides version-specific packaged files. Please download the necessary compressed package file prefixed with "Q1_Pro." We offer several versions of the source code tailored to different needs; select the appropriate branch for download, with each branch name reflecting the corresponding version.
+
+## Update Content for Version 4.4.15
+
+**Note**: Post-update, the Klipper configuration file will be overwritten. The former configuration file will be renamed to printer_{datetime}.cfg as a backup, and the printer will require recalibration.
+
+1. Introduce an online update feature.
+2. Implement support for the QIDI Link service.
+3. Enhance the logic for canceling printing tasks.
+4. Incorporate a feature for power failure recovery.
+
+## Detailed update process
+
+#### Packaged files
+
+Note that all updates can not be updated from higher versions
+
+1. Select the latest version in the version release bar next to it, download the compressed file package starting with Q1_Pro and extract it locally.Jump link
+
+2. Transfer the files to a USB drive. For example:
+
+
+
+3. Insert the USB drive into the machine's USB interface, click the `Chcek for updates` button and an update prompt will appear on the version information interface. Update according to the prompt.
+
+## Report Issues and Make Suggestions
+
+For any concerns or suggestions, feel free to reach out to our [After-Sales Service](https://qidi3d.com/pages/warranty-policy-after-sales-support).
+
+Should you encounter any issues related to machine mechanics, slicing software, firmware, or various other machine-related problems, our after-sales team is ready to assist. They aim to respond to all inquiries within twelve hours.
+
+## Others
+
+Unlike the typical method of directly accessing the Fluidd web interface via an IP address, the QIDI edition modifies the default port to 10088. Therefore, you must append :10088 to the machine's IP address to access the Fluidd page.
+
+QIDI's 3D printers operate based on the Klipper system. Building on the Klipper open-source project, we've tailored its source code to meet specific user requirements. Similarly, we've adapted Moonraker to ensure our designed screens align with web operations. We extend our gratitude to the developers and maintainers of these open-source projects and encourage users to explore or support these robust platforms.
+
+| Software | QIDI edition |
+| ------------- | -------------------------------------------------------------------------------- |
+| **Klipper** | **[https://github.com/QIDITECH/klipper](https://github.com/QIDITECH/klipper)** |
+| **Moonraker** | **[https://github.com/QIDITECH/moonrake](https://github.com/QIDITECH/moonrake)** |
diff --git a/UI/MATE_272_480.HMI b/UI/MATE_272_480.HMI
new file mode 100644
index 0000000..1aa207b
Binary files /dev/null and b/UI/MATE_272_480.HMI differ
diff --git a/UI/MATE_272_480.tft b/UI/MATE_272_480.tft
new file mode 100644
index 0000000..3551932
Binary files /dev/null and b/UI/MATE_272_480.tft differ
diff --git a/build/src/libsrc.a b/build/src/libsrc.a
new file mode 100644
index 0000000..2f9b86c
Binary files /dev/null and b/build/src/libsrc.a differ
diff --git a/build/start.sh b/build/start.sh
new file mode 100644
index 0000000..ae91a07
--- /dev/null
+++ b/build/start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+echo "Start makerbase-client"
+time=$(date "+%Y%m%d%H%M%S")
+# /root/makerbase-client/build/MakerbaseClient localhost > /root/mksclient/test-$time.log
+/root/udp_server &
+/root/xindi/build/xindi localhost
diff --git a/build/xindi b/build/xindi
new file mode 100644
index 0000000..cecd9df
Binary files /dev/null and b/build/xindi differ
diff --git a/include/HTTPRequest.hpp b/include/HTTPRequest.hpp
new file mode 100644
index 0000000..d0ef892
--- /dev/null
+++ b/include/HTTPRequest.hpp
@@ -0,0 +1,1207 @@
+//
+// HTTPRequest
+//
+
+#ifndef HTTPREQUEST_HPP
+#define HTTPREQUEST_HPP
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include