init commit
This commit is contained in:
280
.history/README_20251019162701.md
Normal file
280
.history/README_20251019162701.md
Normal 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** - Умные решения для вашего бизнеса 🚀
|
||||
Reference in New Issue
Block a user