chore: bootstrap Next.js 13 project with TypeScript

This commit is contained in:
MrFrostDev
2026-05-23 13:58:27 +02:00
commit cb662553d8
7 changed files with 3084 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
# Copy to .env.local and fill in real values.
# If left empty, the app falls back to a deterministic local mock.
# OpenAI-compatible endpoint (e.g. Requesty, LiteLLM, vLLM, OpenRouter, ...)
REQUESTY_BASE_URL=
# API key for the endpoint above
GEMINI_API_KEY=
# Optional: override the model name
# PATCHPILOT_MODEL=vertex/gemini-3-flash-preview
+8
View File
@@ -0,0 +1,8 @@
node_modules
.next
.env.local
.env*.local
app.log
dev.log
*.tsbuildinfo
.DS_Store
+5
View File
@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
+12
View File
@@ -0,0 +1,12 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
poweredByHeader: false,
modularizeImports: {
'@mui/icons-material': {
transform: '@mui/icons-material/{{member}}',
},
},
};
module.exports = nextConfig;
+2952
View File
File diff suppressed because it is too large Load Diff
+61
View File
@@ -0,0 +1,61 @@
{
"name": "patch-pilot",
"version": "0.1.0",
"private": true,
"description": "Repair café tool inventory and AI repair assistant. Next.js + MUI + multimodal LLM.",
"keywords": [
"repair-cafe",
"inventory",
"reservation",
"ai-assistant",
"next.js",
"material-ui",
"typescript"
],
"author": "MrFrostDev",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/MrFrostDev/patch-pilot.git"
},
"bugs": {
"url": "https://github.com/MrFrostDev/patch-pilot/issues"
},
"homepage": "https://github.com/MrFrostDev/patch-pilot#readme",
"engines": {
"node": ">=18.17.0"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@emotion/react": "^11.11.0",
"@emotion/styled": "^11.11.0",
"@fullcalendar/daygrid": "^6.1.20",
"@fullcalendar/interaction": "^6.1.20",
"@fullcalendar/react": "^6.1.20",
"@fullcalendar/timegrid": "^6.1.20",
"@mui/icons-material": "^5.14.0",
"@mui/material": "^5.14.0",
"clsx": "^2.0.0",
"date-fns": "^2.30.0",
"framer-motion": "^12.40.0",
"lucide-react": "^0.263.1",
"next": "13.4.12",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.7",
"remark-gfm": "^3.0.1",
"tailwind-merge": "^1.14.0",
"zustand": "^4.3.8"
},
"devDependencies": {
"@types/node": "^20.4.2",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"typescript": "^5.1.3"
}
}
+35
View File
@@ -0,0 +1,35 @@
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"incremental": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"plugins": [
{
"name": "next"
}
]
},
"include": [
"next-env.d.ts",
".next/types/**/*.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}