diff --git a/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js b/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js
new file mode 100644
index 0000000..4d8b676
--- /dev/null
+++ b/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js
@@ -0,0 +1,39 @@
+import {render, screen} from "@testing-library/react";
+import MockAppWithProviders from "../../../../../../mocks/AppWithProvider";
+import ExpertManagementDataTable from "@/components/dashboard/expert-management/DataTable";
+
+describe("Expert Management Component From Expert Management", () => {
+ describe("Rendering", () => {
+ it("Table Headers Rendered", () => {
+ render();
+ const idHeader = screen.queryByText(/کد یکتا/i);
+ const nameHeader = screen.queryByText(/نام/i);
+ const usernameHeader = screen.queryByText(/نام کاربری/i);
+ const emailHeader = screen.queryByText(/پست الکترونیک/i);
+ const phone_numberHeader = screen.queryByText(/شماره همراه/i);
+ const national_idHeader = screen.queryByText(/کد ملی/i);
+ const positionHeader = screen.queryByText(/سمت/i);
+ const province_nameHeader = screen.queryByText(/استان/i);
+ const city_nameHeader = screen.queryByText(/شهر/i);
+ const role_nameHeader = screen.queryByText(/نقش/i);
+ const updated_atHeader = screen.queryByText(/آخرین بروزرسانی/i);
+ expect(idHeader).toBeInTheDocument();
+ expect(nameHeader).toBeInTheDocument();
+ expect(usernameHeader).toBeInTheDocument();
+ expect(emailHeader).toBeInTheDocument();
+ expect(phone_numberHeader).toBeInTheDocument();
+ expect(national_idHeader).toBeInTheDocument();
+ expect(positionHeader).toBeInTheDocument();
+ expect(province_nameHeader).toBeInTheDocument();
+ expect(city_nameHeader).toBeInTheDocument();
+ expect(role_nameHeader).toBeInTheDocument();
+ expect(updated_atHeader).toBeInTheDocument();
+ });
+ });
+ describe("Behavioral", () => {
+
+ });
+ describe("Validation", () => {
+
+ });
+});
\ No newline at end of file
diff --git a/src/components/dashboard/expert-management/DataTable/index.jsx b/src/components/dashboard/expert-management/DataTable/index.jsx
new file mode 100644
index 0000000..9dee9b6
--- /dev/null
+++ b/src/components/dashboard/expert-management/DataTable/index.jsx
@@ -0,0 +1,7 @@
+function ExpertManagementDataTable() {
+ return (
+
asdads
+ );
+}
+
+export default ExpertManagementDataTable;
\ No newline at end of file
diff --git a/src/components/dashboard/expert-management/TableRowActions.jsx b/src/components/dashboard/expert-management/TableRowActions.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/dashboard/expert-management/TableToolbar.jsx b/src/components/dashboard/expert-management/TableToolbar.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/dashboard/expert-management/index.jsx b/src/components/dashboard/expert-management/index.jsx
new file mode 100644
index 0000000..0b3f5ef
--- /dev/null
+++ b/src/components/dashboard/expert-management/index.jsx
@@ -0,0 +1,12 @@
+import DashboardLayouts from "@/layouts/dashboardLayouts";
+import ExpertManagementDataTable from "@/components/dashboard/expert-management/DataTable";
+
+function DashboardExpertManagementComponent() {
+ return (
+
+
+
+ );
+}
+
+export default DashboardExpertManagementComponent;
diff --git a/src/pages/dashboard/expert-management/index.jsx b/src/pages/dashboard/expert-management/index.jsx
new file mode 100644
index 0000000..60dc6e2
--- /dev/null
+++ b/src/pages/dashboard/expert-management/index.jsx
@@ -0,0 +1,23 @@
+import WithAuthMiddleware from "@/middlewares/WithAuth";
+import {parse} from "next-useragent";
+import DashboardExpertManagementComponent from "@/components/dashboard/expert-management";
+
+export default function ExpertManagement() {
+ return (
+
+
+
+ );
+}
+
+export async function getServerSideProps({req, locale}) {
+ const {isBot} = parse(req.headers["user-agent"]);
+ return {
+ props: {
+ messages: (await import(`&/locales/${locale}/app.json`)).default,
+ title: "Dashboard.expert_management",
+ isBot,
+ locale
+ },
+ };
+}