diff --git a/src/controller/mod.rs b/src/controller/mod.rs
index b511e7728fb221d6569cef381e67591ab196459b..002cadc094118eae02e0b37121e84465764908ef 100644
--- a/src/controller/mod.rs
+++ b/src/controller/mod.rs
@@ -1,3 +1,4 @@
+pub mod notification;
 use rocket::fairing::AdHoc;
 
 pub fn route_stage() -> AdHoc {
diff --git a/src/controller/notification.rs b/src/controller/notification.rs
new file mode 100644
index 0000000000000000000000000000000000000000..063a3209acba95c83d4afba919876c03d9214663
--- /dev/null
+++ b/src/controller/notification.rs
@@ -0,0 +1,6 @@
+use rocket::serde::json::Json;
+
+use bambangshop_receiver::Result;
+use crate::model::notification::Notification;
+use crate::model::subscriber::SubscriberRequest;
+use crate::service::notification::NotificationService;
\ No newline at end of file
diff --git a/src/model/subscriber.rs b/src/model/subscriber.rs
index 9e675a0c3e1dde0cbca7fcb181aa75682b1520ab..b5ced9eac64cb9245c121a46feee99a22d128294 100644
--- a/src/model/subscriber.rs
+++ b/src/model/subscriber.rs
@@ -2,7 +2,7 @@ use rocket::serde::{Deserialize, Serialize};
 
 #[derive(Debug, Clone, Deserialize, Serialize)]
 #[serde(crate = "rocket::serde")]
-pub struct Subscriber {
+pub struct SubscriberRequest {
     pub url: String,
     pub name: String,
 }
\ No newline at end of file
diff --git a/src/service/mod.rs b/src/service/mod.rs
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..392d39da5720a2e7d6953647b3c370e9ff728cd1 100644
--- a/src/service/mod.rs
+++ b/src/service/mod.rs
@@ -0,0 +1 @@
+pub mod notification;
\ No newline at end of file
diff --git a/src/service/notification.rs b/src/service/notification.rs
new file mode 100644
index 0000000000000000000000000000000000000000..5a35cdbb996fddd318083459d4399802f0529e49
--- /dev/null
+++ b/src/service/notification.rs
@@ -0,0 +1,17 @@
+use std::thread;
+
+use rocket::http::Status;
+use rocket::log;
+use rocket::serde::json::to_string;
+use rocket::tokio;
+
+use bambangshop_receiver::{APP_CONFIG, REQWEST_CLIENT, Result, compose_error_response};
+
+use crate::model::notification::Notification;
+use crate::model::subscriber::SubscriberRequest;
+use crate::repository::notification::NotificationRepository;
+
+pub struct NotificationService;
+
+impl NotificationService {
+}
\ No newline at end of file