init commit

This commit is contained in:
2025-10-19 18:27:00 +09:00
commit 150891b29d
219 changed files with 70016 additions and 0 deletions

280
README.md Normal file
View File

@@ -0,0 +1,280 @@
# 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 <repository-url>
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** - Умные решения для вашего бизнеса 🚀