# SmartSolTech Website Современный PWA сайт для SmartSolTech с админ-панелью, управлением портфолио, интеграцией с Telegram ботом и калькулятором стоимости услуг. ## 🚀 Особенности - **Современный дизайн**: Отзывчивый интерфейс с анимациями и современным UI/UX - **PWA**: Прогрессивное веб-приложение с поддержкой офлайн-режима - **Админ-панель**: Управление портфолио, услугами, медиа-контентом и настройками сайта - **Интеграция с Telegram**: Подключение к Telegram боту для уведомлений - **Калькулятор стоимости**: Интерактивный калькулятор расчета стоимости услуг - **Система аутентификации**: Безопасная авторизация с JWT токенами - **Загрузка файлов**: Оптимизация изображений и управление медиа-контентом - **SEO оптимизация**: Настроенные мета-теги и структурированные данные ## 🛠️ Технологии ### Backend - **Node.js** - Серверная платформа - **Express.js** - Веб-фреймворк - **MongoDB** - База данных - **Mongoose** - ODM для MongoDB - **JWT** - Токены аутентификации - **bcrypt** - Хеширование паролей - **Multer** - Загрузка файлов - **Sharp** - Обработка изображений ### Frontend - **EJS** - Шаблонизатор - **Tailwind CSS** - CSS фреймворк - **AOS** - Библиотека анимаций - **Font Awesome** - Иконки - **Service Worker** - PWA функциональность ### Дополнительно - **node-telegram-bot-api** - Интеграция с Telegram - **Nodemailer** - Отправка email - **Helmet** - Безопасность - **express-rate-limit** - Ограничение запросов ## 📦 Установка 1. **Клонирование репозитория** ```bash git clone cd sst_site ``` 2. **Установка зависимостей** ```bash npm install ``` 3. **Настройка переменных окружения** ```bash cp .env.example .env ``` Отредактируйте файл `.env` с вашими настройками: ```env NODE_ENV=development PORT=3000 # Database MONGODB_URI=mongodb://localhost:27017/smartsoltech # Security SESSION_SECRET=your-super-secret-session-key JWT_SECRET=your-super-secret-jwt-key # File Upload UPLOAD_PATH=./uploads MAX_FILE_SIZE=10485760 # Email Configuration SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your-email@gmail.com SMTP_PASS=your-app-password # Telegram Bot (Optional) TELEGRAM_BOT_TOKEN=your-telegram-bot-token # Admin Account ADMIN_EMAIL=admin@smartsoltech.kr ADMIN_PASSWORD=change-this-password ``` 4. **Инициализация базы данных** ```bash npm run init-db ``` 5. **Запуск в режиме разработки** ```bash npm run dev ``` Сайт будет доступен по адресу: `http://localhost:3000` ## 🗂️ Структура проекта ``` sst_site/ ├── models/ # Модели данных (MongoDB) │ ├── User.js │ ├── Portfolio.js │ ├── Service.js │ ├── Contact.js │ └── SiteSettings.js ├── routes/ # Маршруты API │ ├── index.js │ ├── auth.js │ ├── contact.js │ ├── calculator.js │ ├── portfolio.js │ ├── services.js │ ├── media.js │ └── admin.js ├── views/ # Шаблоны EJS │ ├── layout.ejs │ ├── index.ejs │ ├── calculator.ejs │ └── partials/ ├── public/ # Статические файлы │ ├── css/ │ ├── js/ │ ├── images/ │ ├── manifest.json │ └── sw.js ├── middleware/ # Промежуточное ПО ├── scripts/ # Служебные скрипты │ ├── init-db.js │ ├── dev.js │ └── build.js ├── uploads/ # Загруженные файлы ├── server.js # Главный файл сервера ├── package.json └── README.md ``` ## 📋 Доступные команды ```bash # Разработка npm run dev # Запуск в режиме разработки с hot reload # Продакшн npm start # Запуск в продакшн режиме npm run build # Сборка для продакшна # База данных npm run init-db # Инициализация БД с тестовыми данными # Тестирование npm test # Запуск тестов (пока не реализовано) ``` ## 🔐 Админ-панель После инициализации базы данных вы можете войти в админ-панель: - **URL**: `http://localhost:3000/admin` - **Email**: `admin@smartsoltech.kr` (или из .env) - **Пароль**: Указанный в .env файле ### Возможности админ-панели: - Управление портфолио проектами - Редактирование услуг и их стоимости - Загрузка и управление медиа-файлами - Просмотр и управление контактными формами - Настройки сайта и SEO - Управление пользователями ## 🤖 Интеграция с Telegram Для настройки Telegram бота: 1. Создайте бота через [@BotFather](https://t.me/BotFather) 2. Получите токен бота 3. Добавьте токен в `.env` файл: `TELEGRAM_BOT_TOKEN=your-token` 4. Перезапустите сервер Бот будет отправлять уведомления о: - Новых контактных формах - Заказах через калькулятор - Новых комментариях ## 💰 Калькулятор стоимости Интерактивный калькулятор позволяет клиентам: - Выбрать тип услуги - Указать дополнительные параметры - Получить примерную стоимость - Отправить заявку на расчет Настройки калькулятора можно изменить в админ-панели. ## 🔒 Безопасность Проект включает следующие меры безопасности: - Хеширование паролей с bcrypt - JWT токены для аутентификации - Защита от CSRF атак - Ограничение количества запросов - Валидация входных данных - Безопасные HTTP заголовки ## 📱 PWA функции - Установка на устройство - Офлайн работа - Push уведомления - Фоновая синхронизация - Адаптивные иконки - Splash screen ## 🚀 Деплой ### Для продакшна: 1. **Сборка приложения** ```bash npm run build ``` 2. **Настройка сервера** - Установите Node.js и MongoDB - Настройте переменные окружения - Настройте прокси-сервер (nginx) 3. **Запуск** ```bash cd dist npm install --production npm start ``` ### Docker деплой: ```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["npm", "start"] ``` ## 🤝 Участие в разработке 1. Форкните репозиторий 2. Создайте ветку для фичи (`git checkout -b feature/AmazingFeature`) 3. Сделайте коммит (`git commit -m 'Add some AmazingFeature'`) 4. Отправьте в ветку (`git push origin feature/AmazingFeature`) 5. Откройте Pull Request ## 📝 Лицензия Этот проект лицензирован под MIT License - подробности в файле [LICENSE](LICENSE). ## 📞 Поддержка Если у вас есть вопросы или проблемы: - Email: info@smartsoltech.kr - GitHub Issues: [Create Issue](../../issues) - Telegram: @smartsoltech ## 🙏 Благодарности - [Express.js](https://expressjs.com/) - За отличный веб-фреймворк - [MongoDB](https://www.mongodb.com/) - За гибкую базу данных - [Tailwind CSS](https://tailwindcss.com/) - За удобный CSS фреймворк - [AOS](https://michalsnik.github.io/aos/) - За красивые анимации --- **SmartSolTech** - Умные решения для вашего бизнеса 🚀