diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..016b59e --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..2edeafb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..22a1505 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d642209 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..42f87cd --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,188 @@ +# Правила взаимодействия с Агентом + +## Основные принципы + +1. **Изменения в коде возможны только с явного разрешения пользователя** + - Перед внесением любых изменений в файлы ассистент должен получить подтверждение от пользователя + - Все изменения должны быть предварительно объяснены пользователю + - Перед решением конкретной задачи всегда составлять план + - После внесения изменений в код - проводить проверку - только после этого приступать к дальнейшему решению задачи + - **НЕ производить сборку проекта (`bun run build`) без явного разрешения пользователя** + +2. **Прозрачность действий** + - Ассистент должен объяснить, какие изменения планируется внести + - Необходимо указать, в какие файлы будут внесены изменения + - Следует объяснить последствия предполагаемых изменений + - Внимательно читай промпт и не выходи за рамки описанных в нем измнений + +3. **Безопасность кода** + - Все изменения должны проходить проверку на безопасность + - Не должны вноситься изменения, которые могут повредить функциональность приложения + - Рекомендуется создание резервных копий при значительных изменениях + +4. **Согласование архитектурных решений** + - При внесении изменений, затрагивающих архитектуру приложения, необходима дискуссия с пользователем + - Предложения по улучшению архитектуры должны обсуждаться до реализации + +5. **Работа с разными типами проектов** + - Уважать существующую архитектуру и стиль кода проекта + - Следовать установленным в проекте принципам и паттернам + +6. **Использование Bun** + - Все команды должны выполняться с использованием Bun (bun install, bun dev, bun build и т.д.) + - При создании скриптов в package.json, они должны быть совместимы с Bun + +7. **Язык общения** + - Всё общение с пользователем происходит на русском языке + +8 **Проверка типов данных** + - Проверять проект на ошибки типизации через команду `bun run tsc --noEmit -p frontend/tsconfig.json` + - НЕ производить сборку проекта (`bun run build`) без явного разрешения пользователя + - В проекте не должно быть типов any + - Все интерфейсы компонентов прописывать в файле globalInterfaces.ts + - При работе с PocketBase использовать актуальные сигнатуры методов из файла `D:\Verstka\production\astro_minivan\frontend\node_modules\pocketbase\dist\pocketbase.es.d.ts` + +9 **Плагин @astrojs/sitemap** + - Обязательно к установке в проект пакета @astrojs/sitemap + - Обязательно к созданию в проекте файл .nvmrc + + +## Технические правила (Astro) + +1. **Structure проекта** + - Использовать рекомендуемую структуру Astro: src/components/, src/layouts/, src/pages/, src/styles/ + - Файлы конфигурации: astro.config.mjs + +2. **Разработка компонентов** + - Создавать .astro файлы для компонентов + - Использовать framework-specific компоненты (React, Vue, Svelte) при необходимости + - Использовать props для передачи данных + - Использовать встроенные компоненты Astro ( и т.д.) + +3. **Роутинг и страницы** + - Использовать file-based routing в src/pages/ + - Реализовывать динамические маршруты через [...slug].astro синтаксис + - Использовать getStaticPaths() для генерации статических страниц + - Создать страницу 404.astro для обработки ошибок + +4. **Контент** + - Использовать Markdown (.md) или MDX (.mdx) для контентных страниц + - Использовать frontmatter в Markdown файлах + - Использовать content collections для организации контента + +5. **Стилизация** + - Использовать scoped styling с + diff --git a/public/images/porch_car.avif b/public/images/porch_car.avif new file mode 100644 index 0000000..80be7fb Binary files /dev/null and b/public/images/porch_car.avif differ diff --git a/public/images/services_room.avif b/public/images/services_room.avif new file mode 100644 index 0000000..a0398bd Binary files /dev/null and b/public/images/services_room.avif differ diff --git a/src/assets/astro.svg b/src/assets/astro.svg new file mode 100644 index 0000000..8cf8fb0 --- /dev/null +++ b/src/assets/astro.svg @@ -0,0 +1 @@ + diff --git a/src/assets/background.svg b/src/assets/background.svg new file mode 100644 index 0000000..4b2be0a --- /dev/null +++ b/src/assets/background.svg @@ -0,0 +1 @@ + diff --git a/src/components/AboutUs.astro b/src/components/AboutUs.astro new file mode 100644 index 0000000..d956dc6 --- /dev/null +++ b/src/components/AboutUs.astro @@ -0,0 +1,53 @@ +--- +--- + +
+
+
+
+ +
+
+
+ Мастерская +
+
+
+
15+
+
Лет опыта
+
+
+ +
+

Мастерство, проверенное временем

+

+ Наш сервисный центр специализируется на автомобилях Toyota и Lexus уже более 15 лет. Мы знаем каждую особенность этих марок, что позволяет нам проводить диагностику и ремонт с заводской точностью. +

+

+ Мы используем только сертифицированное оборудование и оригинальное программное обеспечение для диагностики. Каждый клиент получает прозрачный отчет о состоянии автомобиля и честную оценку стоимости работ. +

+
    + {[ + "Сертифицированные технические специалисты", + "Собственный склад запчастей", + "Прозрачное ценообразование", + "Индивидуальный подход к каждому владельцу" + ].map((item, i) => ( +
  • +
    + + + + +
    + {item} +
  • + ))} +
+
+
+
\ No newline at end of file diff --git a/src/components/ContactForm.astro b/src/components/ContactForm.astro new file mode 100644 index 0000000..a47cfe7 --- /dev/null +++ b/src/components/ContactForm.astro @@ -0,0 +1,79 @@ +--- +--- + +
+
+
+

Ждем вас в нашем сервисе

+
+
+
+ + + + +
+
+

Адрес

+

г. Сургут, ул. Профсоюзов, 45 (Пример)

+
+
+
+
+ + + +
+
+

Телефон

+

+7 (3462) 00-00-00

+

+7 (900) 000-00-00

+
+
+
+
+ + + + +
+
+

Режим работы

+

Ежедневно: 09:00 – 20:00

+

Без перерывов и выходных

+
+
+
+
+ +
+
+

Остались вопросы?

+

Оставьте ваши контакты, и мы перезвоним вам в течение 15 минут для консультации.

+ +
+ + + +
+ +
+ + + + + Мы онлайн и готовы помочь +
+
+
+
\ No newline at end of file diff --git a/src/components/Features.astro b/src/components/Features.astro new file mode 100644 index 0000000..2371d8f --- /dev/null +++ b/src/components/Features.astro @@ -0,0 +1,33 @@ +--- +const features = [ + { + title: "Опытные мастера", + description: "Все наши специалисты прошли сертификацию и имеют огромный опыт работы именно с марками Toyota и Lexus.", + icon: `` + }, + { + title: "Быстрый ремонт", + description: "У нас в наличии большинство расходных материалов и запчастей, что позволяет выполнять работы в кратчайшие сроки.", + icon: `` + }, + { + title: "Гарантия качества", + description: "Предоставляем официальную гарантию на все выполненные работы и установленные запасные части.", + icon: `` + } +]; +--- + +
+
+
+ {features.map((f, i) => ( +
+
+

{f.title}

+

{f.description}

+
+ ))} +
+
+
\ No newline at end of file diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..4ac5595 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,48 @@ +--- +const currentYear = new Date().getFullYear(); +--- + + \ No newline at end of file diff --git a/src/components/Hero.astro b/src/components/Hero.astro new file mode 100644 index 0000000..d760597 --- /dev/null +++ b/src/components/Hero.astro @@ -0,0 +1,42 @@ +--- +--- + +
+
+ Автомобиль +
+
+ +
+
+
+ + Специализированный центр в Сургуте +
+

+ Обслуживание & Ремонт
+ Toyota & Lexus +

+

+ Опытные специалисты, современное оборудование и только качественные запчасти. Ваш автомобиль в надежных руках профессионалов. +

+
+ + + Посмотреть услуги + +
+
+
+ +
+ Листайте ниже +
+
+
\ No newline at end of file diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro new file mode 100644 index 0000000..2fddb07 --- /dev/null +++ b/src/components/Navbar.astro @@ -0,0 +1,126 @@ +--- +const navItems = ['Услуги', 'О нас', 'Преимущества', 'Контакты']; +--- + + + +
+
+ МЕНЮ + +
+
+ {navItems.map((item) => ( + + {item} + + ))} +
+ +
+ + \ No newline at end of file diff --git a/src/components/Services.astro b/src/components/Services.astro new file mode 100644 index 0000000..bdf5e9f --- /dev/null +++ b/src/components/Services.astro @@ -0,0 +1,59 @@ +--- +const services = [ + { + title: "Техническое обслуживание", + icon: ``, + desc: "Замена масла, фильтров, проверка жидкостей" + }, + { + title: "Диагностика систем", + icon: ``, + desc: "Компьютерная диагностика, поиск неисправностей" + }, + { + title: "Ремонт двигателя", + icon: ``, + desc: "Капитальный ремонт, обслуживание ГРМ" + }, + { + title: "Ходовая часть", + icon: ``, + desc: "Ремонт подвески, тормозной системы, развал-схождение" + }, + { + title: "Электрооборудование", + icon: ``, + desc: "Ремонт проводки, установка доп. оборудования" + }, + { + title: "Кузовной ремонт", + icon: ``, + desc: "Покраска, выравнивание, полировка" + } +]; +--- + +
+
+
+

Наши Услуги

+

Полный спектр работ для поддержания вашего автомобиля в идеальном состоянии

+
+ +
+ {services.map((service, i) => ( +
+
+

{service.title}

+

{service.desc}

+ +
+ ))} +
+
+
\ No newline at end of file diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro new file mode 100644 index 0000000..949d3ff --- /dev/null +++ b/src/layouts/Layout.astro @@ -0,0 +1,20 @@ +--- +--- + + + + + + + + + Toyota & Lexus Service Сургут + + + + + + + + + \ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..4fd07a3 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,20 @@ +--- +import Layout from '@layouts/Layout.astro'; +import Navbar from '@components/Navbar.astro'; +import Hero from '@components/Hero.astro'; +import Features from '@components/Features.astro'; +import Services from '@components/Services.astro'; +import AboutUs from '@components/AboutUs.astro'; +import ContactForm from '@components/ContactForm.astro'; +import Footer from '@components/Footer.astro'; +--- + + + + + + + + +