MStore - это учебный проект онлайн магазина мерчевой продукции.
Данный проект разрабатывается при помощи mysql 8.0.42 в python 3.12 через mysql-connector-python 9.3.0 и при помощи фреймворка Flask 3.1.0 и библиотеки Flask-WTF 1.2.2.
Для запуска необходимо выполнить следующие действия:
- Склонировать репозитрий
git clone https://github.com/ClassZak/WebProjectMerchStorePub.git
cd WebProjectMerchStorePub
- Установить разрешение на запуск скриптов
chmod +x *.sh
- Сгенерировать файл конфигурации сервера
./setup.sh
- Установить зависимости
./setup_environment.sh
- Активировать виртульное окружение
. .venv/bin/activate
- Настроить файл конфигурации по пути src/backend/.password.json
{
"host" : "localhost",
"user" : "<пользователь для БД>",
"password" : "<пароль пользователя для БД>",
"database" : "MerchStoreWebPract",
"secret_key": "<ключ для CSRT токенов>",
"log_file" : "<путь до файла>"
}
log_file можно не настраивать. По умолчанию создаётся файл visits.log.
- Выполнить sql код из файла DBCrearionScript.sql для создания БД:
- Зайти в mysql
sudo mysql -u root
- Проверить метод аутентификации
SELECT user, plugin FROM mysql.user WHERE user = '<пользователь для БД>';
- Установить пароль
ALTER USER '<пользователь для БД>'@'localhost' IDENTIFIED WITH mysql_native_password BY '<пароль>';
FLUSH PRIVILEGES;
EXIT;
- Выполнить скрипт создания БД:
SOURCE /root/repositories/WebProjectMerchStorePub/DBCrearionScript.sql
- Запустить проект
python3 src/backend/app.py
- Главная страница (index.html):
- основная информация о магазине;
- новинки;
- Страница "О нас" (about.html);
- Страница "Контакты" с информацией для связи с магазином (contacts.html);
- Страница товаров, отображающая все товары в магазине (весь ассортимент) (goods.html);
- Страница отдельного товара с подробной информацией (good.html);
- Страница поиска (search.html):
- поиск по всем полям;
- сообщение об отсутствии результатов поиска;
- Панель администратора с CRUD операциями над таблицами (Create, Read, Update, Delete) (admin_panel.html) /admin/:
- CRUD операции для таблицы "Производители";
- CRUD операции для таблицы "Товары";
Логи представляют собой историю посещения сайта в следующем формате:
ГГГГ-ММ-ДД чч:мм:сс - IP: <ip> - Path: <Путь до маршрута>;