Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 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
1a6e3c6
V2
batuhanxbayram Jan 7, 2026
21e202e
makara
ddilaralkan Jan 7, 2026
1c44c75
Merge pull request #23 from batuhanxbayram/responsive-fix
batuhanxbayram Jan 7, 2026
0197bcf
warning-table
batuhanxbayram Jan 7, 2026
c62c4e5
Merge remote-tracking branch 'origin/main'
batuhanxbayram Jan 7, 2026
fd2d1b0
bug-fix
batuhanxbayram Jan 8, 2026
153db57
tv-ekrani
ddilaralkan Jan 14, 2026
0bc7fd3
Merge pull request #24 from batuhanxbayram/üç_kalp
batuhanxbayram Jan 14, 2026
9f7e378
add-SignaR
batuhanxbayram Jan 14, 2026
6eaca49
Merge remote-tracking branch 'origin/main'
batuhanxbayram Jan 14, 2026
3f9af30
bug-fix
batuhanxbayram Jan 17, 2026
2bdaa8b
monitor
ddilaralkan Jan 17, 2026
239b103
Merge pull request #25 from batuhanxbayram/bugun-sevdim
batuhanxbayram Jan 17, 2026
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
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/img/favicon.png" />
<link rel="icon" type="image/svg+xml" href="/img/klogo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Material Tailwind Dashboard React | By Creative Tim</title>
<title>S.S. 75 No'lu Yarımca Motorlu Taşıyıcılar Kooperatifi</title>
<link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap"
rel="stylesheet"
Expand Down
14 changes: 10 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,25 @@
"version": "2.1.0",
"type": "module",
"scripts": {
"dev": "vite",
"dev": "vite --host",
"build": "vite build",
"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",
"@microsoft/signalr": "^10.0.0",
"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 +33,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.
21 changes: 19 additions & 2 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
import { Routes, Route, Navigate } from "react-router-dom";
import { Dashboard, Auth } from "@/layouts";
import PrivateRoute from "../src/component/PrivateRoute";
import TVQueuePage from "./pages/dashboard/TVQueuePage";

function App() {
return (




<Routes>
<Route path="/dashboard/*" element={<Dashboard />} />
<Route
path="/anasayfa/*"
element={
<PrivateRoute>
<Dashboard />
</PrivateRoute>
}
/>

<Route path="/tv/monitor" element={<TVQueuePage />} />
{/* 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/giris" 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 });
31 changes: 13 additions & 18 deletions src/layouts/dashboard.jsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import { Routes, Route } from "react-router-dom";
import { Cog6ToothIcon } from "@heroicons/react/24/solid";
import { IconButton } from "@material-tailwind/react";
import { Routes, Route, Navigate } from "react-router-dom"; // 👈 Navigate eklendi
import {
Sidenav,
DashboardNavbar,
Configurator,
Footer,
} from "@/widgets/layout";
import routes from "@/routes";
import { useMaterialTailwindController, setOpenConfigurator } from "@/context";
import { useMaterialTailwindController } from "@/context";

export function Dashboard() {
const [controller, dispatch] = useMaterialTailwindController();
Expand All @@ -24,25 +21,23 @@ export function Dashboard() {
/>
<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" &&
layout === "anasayfa" &&
pages.map(({ path, element }) => (
<Route exact path={path} element={element} />
<Route key={path} path={path} element={element} />
))
)}

{/* 🚀 BURASI SİHİRLİ DOKUNUŞ:
Kullanıcı panel ana dizinine geldiğinde veya
bulunmayan bir sayfaya gittiğinde 'arac-siralar' açılsın. */}
<Route path="/" element={<Navigate to="/anasayfa/arac-siralari" replace />} />
<Route path="*" element={<Navigate to="/anasayfa/arac-siralari" replace />} />
</Routes>

<div className="text-blue-gray-600">
<Footer />
</div>
Expand All @@ -53,4 +48,4 @@ export function Dashboard() {

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