Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4b5be06
ilk commit
ddilaralkan Sep 21, 2025
4dee3e7
backend-sign-in-page
batuhanxbayram Sep 21, 2025
b668536
Login ekranı
ddilaralkan Sep 21, 2025
c40c527
Merge pull request #1 from batuhanxbayram/dilos
batuhanxbayram Sep 21, 2025
4f493a9
testt
ddilaralkan Sep 22, 2025
de70efb
Merge pull request #2 from batuhanxbayram/dilos
ddilaralkan Sep 22, 2025
09b68e5
kullanıcılar manifestesin777
ddilaralkan Sep 22, 2025
6c5fbd4
Merge pull request #3 from batuhanxbayram/dilos
batuhanxbayram Sep 22, 2025
d0f6a60
backend-sign-in-page
batuhanxbayram Sep 22, 2025
ba2d58f
Merge pull request #4 from batuhanxbayram/feature-backend-connection
batuhanxbayram Sep 22, 2025
0c6f0da
manifestzoktay
ddilaralkan Sep 22, 2025
e19505f
Merge pull request #5 from batuhanxbayram/dilara
ddilaralkan Sep 22, 2025
a0703e8
backend-sign-in-page
batuhanxbayram Sep 22, 2025
d360ab3
Merge pull request #6 from batuhanxbayram/feature-filter
batuhanxbayram Sep 22, 2025
8f6e1c1
askk
ddilaralkan Sep 23, 2025
dbd12a6
Merge pull request #7 from batuhanxbayram/batudilosask
batuhanxbayram Sep 23, 2025
e4747f1
feature-tables
batuhanxbayram Sep 23, 2025
04f7dd8
Merge remote-tracking branch 'origin/main'
batuhanxbayram Sep 23, 2025
b0402d3
feature-tables
batuhanxbayram Sep 25, 2025
2f372ff
Merge pull request #8 from batuhanxbayram/feature-forms
batuhanxbayram Sep 25, 2025
87ea366
feature-table_edit
batuhanxbayram Sep 25, 2025
4f02e80
Merge pull request #9 from batuhanxbayram/feature-queue_pages
batuhanxbayram Sep 25, 2025
85f6bd2
araç sırası ekleme
ddilaralkan Sep 25, 2025
09c2072
Merge pull request #10 from batuhanxbayram/batudilosask
batuhanxbayram Sep 25, 2025
1b8b8f7
Yanlışlardan Arınmak
ddilaralkan Sep 25, 2025
2bfaa33
feature-add-queue
batuhanxbayram Sep 25, 2025
db4f7e3
Merge pull request #12 from batuhanxbayram/batudilosask
batuhanxbayram Sep 25, 2025
32f33c9
feature-add-queue-routefix
batuhanxbayram Sep 25, 2025
a020d2b
feature-add-queue-routefix2
batuhanxbayram Sep 25, 2025
00e96d2
feature-add-queue-routefix3
batuhanxbayram Sep 25, 2025
b97496e
Merge branch 'main' into feature-queue_pages
batuhanxbayram Sep 25, 2025
2da4498
Merge pull request #14 from batuhanxbayram/feature-queue_pages
batuhanxbayram Sep 25, 2025
ef52a4d
feature-queuePage
batuhanxbayram Sep 27, 2025
34c7cf4
Merge pull request #15 from batuhanxbayram/feature-queueManagementPage
batuhanxbayram Sep 27, 2025
f0ae8c3
toast notification bitti
ddilaralkan Sep 27, 2025
67bdcc3
Breadcrumbs Değişiklikleri
ddilaralkan Sep 27, 2025
3bfdcd7
Güzel seyler
ddilaralkan Sep 28, 2025
5716d7d
plaka formatı
ddilaralkan Sep 28, 2025
9d9e15e
buf-fix
batuhanxbayram Sep 28, 2025
411c38b
Merge pull request #16 from batuhanxbayram/kahve
batuhanxbayram Sep 28, 2025
5cf95dc
Merge pull request #17 from batuhanxbayram/feature-queueManagementPage
batuhanxbayram Sep 28, 2025
0c60421
bug-username-deleted
batuhanxbayram Sep 28, 2025
7d1cfd7
Merge pull request #18 from batuhanxbayram/toastr-message
batuhanxbayram Sep 28, 2025
b4736e9
Logo eklenmesirüya
ddilaralkan Oct 3, 2025
5c4c31c
Merge pull request #19 from batuhanxbayram/kahve
batuhanxbayram Oct 3, 2025
538ccbe
feature-dispatchPage
batuhanxbayram Oct 3, 2025
583ee41
Merge remote-tracking branch 'origin/main'
batuhanxbayram Oct 3, 2025
ebd92bd
fix
batuhanxbayram Nov 5, 2025
0cc6e6b
Merge pull request #20 from batuhanxbayram/last
batuhanxbayram Nov 5, 2025
4559918
ilk başta
ddilaralkan Nov 5, 2025
f749bb8
Merge pull request #21 from batuhanxbayram/zamansızdık
batuhanxbayram Nov 5, 2025
9867ad6
özel görev
ddilaralkan Nov 5, 2025
5f52024
Merge pull request #22 from batuhanxbayram/bademsütlülatte
batuhanxbayram Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,19 @@
"preview": "vite preview"
},
"dependencies": {
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@heroicons/react": "2.0.18",
"@material-tailwind/react": "2.1.4",
"apexcharts": "3.44.0",
"axios": "^1.12.2",
"jwt-decode": "^4.0.0",
"prop-types": "15.8.1",
"react": "18.2.0",
"react-apexcharts": "1.4.1",
"react-dom": "18.2.0",
"react-router-dom": "6.17.0"
"react-router-dom": "6.17.0",
"react-toastify": "^11.0.5"
},
"devDependencies": {
"@types/react": "18.2.31",
Expand All @@ -27,6 +32,6 @@
"prettier": "3.0.3",
"prettier-plugin-tailwindcss": "0.5.6",
"tailwindcss": "3.3.4",
"vite": "4.5.0"
"vite": "^4.5.14"
}
}
}
Binary file added public/img/background.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions public/img/devto copy.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/klogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/img/pattern.png
Binary file not shown.
20 changes: 18 additions & 2 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,28 @@
import { Routes, Route, Navigate } from "react-router-dom";
import { Dashboard, Auth } from "@/layouts";
import PrivateRoute from "../src/component/PrivateRoute";


function App() {
return (
<Routes>
<Route path="/dashboard/*" element={<Dashboard />} />
{/* Dashboard'u sadece giriş yapmış kullanıcı görecek */}
<Route
path="/dashboard/*"
element={
<PrivateRoute>
<Dashboard />
</PrivateRoute>
}
/>

{/* Auth sayfaları (giriş, kayıt) herkes görebilir */}
<Route path="/auth/*" element={<Auth />} />
<Route path="*" element={<Navigate to="/dashboard/home" replace />} />



{/* Varsayılan yönlendirme */}
<Route path="*" element={<Navigate to="/auth/sign-in" replace />} />
</Routes>
);
}
Expand Down
29 changes: 29 additions & 0 deletions src/api/axiosConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import axios from "axios";



const apiClient = axios.create({
baseURL: "https://localhost:7093/api",
});


apiClient.interceptors.request.use(
(config) => {

const token = localStorage.getItem("authToken");


if (token) {

config.headers.Authorization = `Bearer ${token}`;
}

return config;
},
(error) => {

return Promise.reject(error);
}
);

export default apiClient;
15 changes: 15 additions & 0 deletions src/component/PrivateRoute.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from "react";
import { Navigate } from "react-router-dom";

const PrivateRoute = ({ children }) => {
const token = localStorage.getItem("authToken");

if (!token) {
// Token yoksa login sayfasına yönlendir
return <Navigate to="/auth/sign-in" replace />;
}

return children;
};

export default PrivateRoute;
34 changes: 22 additions & 12 deletions src/context/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ export function reducer(state, action) {
}
case "OPEN_CONFIGURATOR": {
return { ...state, openConfigurator: action.value };
}
// YENİ: Kullanıcı rolünü ayarlamak için yeni case eklendi.
case "SET_USER_ROLE": {
return { ...state, userRole: action.value };
}
default: {
throw new Error(`Unhandled action type: ${action.type}`);
Expand All @@ -38,18 +42,20 @@ export function MaterialTailwindControllerProvider({ children }) {
transparentNavbar: true,
fixedNavbar: false,
openConfigurator: false,
// YENİ: userRole state'i eklendi. Sayfa yenilendiğinde rolün kaybolmaması için localStorage'dan okunuyor.
userRole: localStorage.getItem("userRole") || null,
};

const [controller, dispatch] = React.useReducer(reducer, initialState);
const value = React.useMemo(
() => [controller, dispatch],
[controller, dispatch]
() => [controller, dispatch],
[controller, dispatch]
);

return (
<MaterialTailwind.Provider value={value}>
{children}
</MaterialTailwind.Provider>
<MaterialTailwind.Provider value={value}>
{children}
</MaterialTailwind.Provider>
);
}

Expand All @@ -58,7 +64,7 @@ export function useMaterialTailwindController() {

if (!context) {
throw new Error(
"useMaterialTailwindController should be used inside the MaterialTailwindControllerProvider."
"useMaterialTailwindController should be used inside the MaterialTailwindControllerProvider."
);
}

Expand All @@ -72,14 +78,18 @@ MaterialTailwindControllerProvider.propTypes = {
};

export const setOpenSidenav = (dispatch, value) =>
dispatch({ type: "OPEN_SIDENAV", value });
dispatch({ type: "OPEN_SIDENAV", value });
export const setSidenavType = (dispatch, value) =>
dispatch({ type: "SIDENAV_TYPE", value });
dispatch({ type: "SIDENAV_TYPE", value });
export const setSidenavColor = (dispatch, value) =>
dispatch({ type: "SIDENAV_COLOR", value });
dispatch({ type: "SIDENAV_COLOR", value });
export const setTransparentNavbar = (dispatch, value) =>
dispatch({ type: "TRANSPARENT_NAVBAR", value });
dispatch({ type: "TRANSPARENT_NAVBAR", value });
export const setFixedNavbar = (dispatch, value) =>
dispatch({ type: "FIXED_NAVBAR", value });
dispatch({ type: "FIXED_NAVBAR", value });
export const setOpenConfigurator = (dispatch, value) =>
dispatch({ type: "OPEN_CONFIGURATOR", value });
dispatch({ type: "OPEN_CONFIGURATOR", value });


export const setUserRole = (dispatch, value) =>
dispatch({ type: "SET_USER_ROLE", value });
85 changes: 40 additions & 45 deletions src/layouts/dashboard.jsx
Original file line number Diff line number Diff line change
@@ -1,56 +1,51 @@
import { Routes, Route } from "react-router-dom";
import { Cog6ToothIcon } from "@heroicons/react/24/solid";
import { IconButton } from "@material-tailwind/react";
// Cog6ToothIcon ve IconButton artık kullanılmadığı için kaldırıldı
// import { Cog6ToothIcon } from "@heroicons/react/24/solid";
// import { IconButton } from "@material-tailwind/react";
import {
Sidenav,
DashboardNavbar,
Configurator,
Footer,
  Sidenav,
  DashboardNavbar,
  // Configurator kaldırıldı
  Footer,
} from "@/widgets/layout";
import routes from "@/routes";
import { useMaterialTailwindController, setOpenConfigurator } from "@/context";
// setOpenConfigurator kaldırıldı
import { useMaterialTailwindController /* , setOpenConfigurator */ } from "@/context";

export function Dashboard() {
const [controller, dispatch] = useMaterialTailwindController();
const { sidenavType } = controller;
  const [controller, dispatch] = useMaterialTailwindController();
  const { sidenavType } = controller;

return (
<div className="min-h-screen bg-blue-gray-50/50">
<Sidenav
routes={routes}
brandImg={
sidenavType === "dark" ? "/img/logo-ct.png" : "/img/logo-ct-dark.png"
}
/>
<div className="p-4 xl:ml-80">
<DashboardNavbar />
<Configurator />
<IconButton
size="lg"
color="white"
className="fixed bottom-8 right-8 z-40 rounded-full shadow-blue-gray-900/10"
ripple={false}
onClick={() => setOpenConfigurator(dispatch, true)}
>
<Cog6ToothIcon className="h-5 w-5" />
</IconButton>
<Routes>
{routes.map(
({ layout, pages }) =>
layout === "dashboard" &&
pages.map(({ path, element }) => (
<Route exact path={path} element={element} />
))
)}
</Routes>
<div className="text-blue-gray-600">
<Footer />
</div>
</div>
</div>
);
  return (
    <div className="min-h-screen bg-blue-gray-50/50">
      <Sidenav
        routes={routes}
        brandImg={
          sidenavType === "dark" ? "/img/logo-ct.png" : "/img/logo-ct-dark.png"
        }
      />
      <div className="p-4 xl:ml-80">
        <DashboardNavbar />

        {/* Configurator bileşeni ve onu açan IconButton tamamen kaldırıldı */}

        <Routes>
          {routes.map(
            ({ layout, pages }) =>
              layout === "dashboard" &&
              pages.map(({ path, element }) => (
                <Route exact path={path} element={element} />
              ))
          )}
        </Routes>
        <div className="text-blue-gray-600">
          <Footer />
          </div>
      </div>
    </div>
  );
}

Dashboard.displayName = "/src/layout/dashboard.jsx";

export default Dashboard;
export default Dashboard;
2 changes: 1 addition & 1 deletion src/pages/auth/index.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from "@/pages/auth/sign-in";
export * from "@/pages/auth/sign-up";

Loading