Perfume Haven — это неофициальная учебная версия интернет-магазина духов, созданная для практики fullstack-разработки. Проект не связан с реальными брендами или коммерческими платформами и предназначен исключительно для образовательных целей. Здесь вы найдете каталог изысканных ароматов, удобную корзину и возможность сохранять любимые духи в избранное. Погрузитесь в мир парфюмерии с современным интерфейсом и функциональностью!
| Функция | Описание |
|---|---|
| 🌟 Каталог ароматов | Просмотр духов по категориям (например, цветочные, древесные) |
| 🛒 Корзина | Добавление, изменение количества и удаление духов |
| ⭐ Избранное | Сохранение любимых ароматов с быстрым доступом |
| ➕🗑️ Управление товарами | Добавление и удаление духов (для администраторов) |
| 🔢 Подсчет просмотров | Отслеживание популярности ароматов |
| 🔒 Вход с подтверждением | Регистрация и вход по почте с кодом |
| 🔔 Email-уведомления | Уведомления о статусе заказа или новинках |
| 🎞 Слайдеры изображений | Адаптивные слайдеры для отображения флаконов |
| 🏷️ Мета-теги | Оптимизация SEO для поиска ароматов |
🅰️ Angular 19 — фреймворк для создания интерактивного интерфейса.- 🌐 Angular Router — навигация по категориям и товарам.
- 🎭 Ngx Emoji Mart + emoji-picker-element — поддержка эмодзи (например, для отзывов).
- 📡 Axios — запросы к API.
- 🔔 Ngx Sonner — стильные уведомления.
- 🔊 Socket.IO Client — реальное время (например, для обновлений корзины).
- 🧠 RxJS — реактивное управление данными.
- 🧪 Jasmine + Karma — тестирование.
- 🚂 Express.js — серверная логика.
- 💾 MongoDB + Mongoose — база данных для хранения товаров и пользователей.
- 🔐 JWT (jsonwebtoken) — безопасная аутентификация.
- 🛡 Express Rate Limit — защита от ботов.
- 📩 Nodemailer — отправка email (например, подтверждение заказа).
- 🧱 Multer — загрузка изображений флаконов.
- 🔄 Nodemon — автоматическая перезагрузка.
- 🧂 bcrypt — хеширование паролей.
- 🔌 Socket.IO — реальное время.
- 🆔 UUID — уникальные идентификаторы.
- 🌍 CORS + dotenv — настройка окружения.
- Установите Node.js (версия 18.x или выше).
- Установите Angular CLI (
npm install -g @angular/cli). - Настройте MongoDB (локально или через MongoDB Atlas).
-
Склонируйте репозиторий
git clone https://github.com/Spector323/WaySunna.git cd front -
Настройте переменные окружения В корне папки
apiсоздайте файл.envи добавьте следующие переменные (замените на свои значения):JWT_SECRET=ваш_секретный_ключ_для_JWT EMAIL_USER=ваш_электронный_адрес_для_отправки_писем EMAIL_PASS=пароль_приложения_от_гугл (см. ниже для генерации) MONGO_URI=ваша_строка_подключения_к_MongoDB PORT=8080 CLIENT_URL=http://localhost:4200
-
Установите зависимости
- Для бэкенда:
cd server npm install - Для фронтенда:
cd ../front npm install
- Для бэкенда:
-
Запустите проект
- Запустите бэкенд (в одном терминале):
cd server npm run dev - Запустите фронтенд (в другом терминале):
cd ../front npm start
- Запустите бэкенд (в одном терминале):
-
Откройте в браузере Перейдите по адресу: http://localhost:4200
POST /api/auth/register— Регистрация с подтверждением.POST /api/auth/login— Вход в систему.GET /api/auth/profile— Информация о пользователе.
GET /api/products— Список духов.POST /api/products— Добавление аромата (Admin).PUT /api/products/:id— Обновление аромата.DELETE /api/products/:id— Удаление аромата.
GET /api/basket— Просмотр корзины.POST /api/basket/add— Добавление духов.POST /api/basket/update— Изменение количества.POST /api/basket/remove/:id— Удаление из корзины.
| Каталог духов | Корзина ароматов | Избранное |
|---|---|---|
(Добавь свои скриншоты в папку screenshots/ и обнови пути)
Проект распространяется под MIT License. Используйте только в учебных целях.
Приветствуем ваш вклад! Следуйте этим шагам:
- Сделайте форк репозитория.
- Создайте ветку:
git checkout -b feature/название-фичи. - Сделайте коммиты:
git commit -m "Добавил новую фичу". - Отправьте изменения:
git push origin feature/название-фичи. - Откройте Pull Request.
- Автор: Spector323
- Email: amiraldiev752@gmail.com
- Создавайте issues для вопросов.