Web-приложение обеспечивающее возможность онлайн записи клиентов на услуги автомоечного комплекса и администрирования работы компании.
Рабочую версию сайта вы можете посмотреть по ссылке aqua-marine.pro
Сайт состоит из четырёх независимых интерфейсов.
- Публичная часть
- Интерфейс менеджера
- Интерфейс администратора
- API
Главная страница сайта, где можно узнать о работе компании и её преимуществах перед конкурентами, заказать звонок от компании.
Также можно ознакомиться с прайсом услуг компании.
Цены на услуги в прайс-листе, обновляются с изменениями цен администратором в админ-панели.
В нижней части находится интерактивная Яндекс карта с месторасположением автомоечного комплекса и футер с контактными данными.
После авторизации пользователя, в зависимости от прав доступа, будет формироваться выпадающее меню
В "Профиле" пользователь может изменять свои данные, пароль, кроме логина и индивидуального прайса на автомобиль.
В "Мои записи" пользователь может посмотреть информацию о своих записях на автомойку и отменить их в случае необходимости.
Предусмотрена возможность восстановления пароля пользователя через электронную почту.
Вкладка "Доступное время" показывает свободные дни и время с учётом выбранных услуг, а также общее время работ и их стоимость.
Цены на услуги отображаются в зависимости от категории автомобиля клиента (седан/хетчбек, кроссовер или внедорожник).
Время, которое уже прошло, автоматически становится недоступным для записи.
В случае успешной записи будет соответствующее уведомление.
Но если время, которое выбрал пользователь уже занято, пока он регистрировал запись, то появится уведомление с предложением выбрать другое время.
У пользователей с правами менеджера или администратора, при записи на услуги, появляются поля для изменения марки и модели автомобиля, телефона и имени. Так как многие клиенты записываются по телефону указывая свои контактные данные. Также появляется вкладка "Менеджер" для быстрого перехода к интерфейсу менеджера для администрирования записей клиентов.
Предназначен для менеджера или администратора. Здесь менеджер получает полную информация на выбранный день (какой автомобиль, какие выбраны услуги и контакты клиента).
Записи выводятся на текущий день, а также на ближайшие 2 дня.
Страница автоматически обновляет данные при появлении новой записи или заявки на звонок.
Обновление происходит с использованием протокола Websocket и signals.
Также на странице отображена кнопка "Запросы звонка" которая начинает сигнализировать миганием, при поступлении запроса звонка от клиента. Кнопка перестаёт мигать, когда все телефонные звонки будут обработаны менеджером.
Вкладка "Админ - панель" в выпадающем меню пользователя. Сюда имеет доступ только администратор. Для обновления услуг и их цен, регистрации новых пользователей, для просмотра истории всех записей клиентов, в течении года.
В связи с пожеланием заказчика сайта, регистрация новых пользователей возможна только непосредственно администратором.
Предварительно создайте директорию для приложения (some directory)
Клонируйте код репозитория в созданную директорию (в some directory):
git clone https://github.com/SwedL/aquamarine.git
Также в каталоге проекта (some directory) создайте виртуальное окружение, выполнив команду:
- Windows:
python -m venv venv
- Linux:
python3 -m venv venv
Активируйте его командой:
- Windows:
.\venv\Scripts\activate
- Linux:
source venv/bin/activate
Перейдите в каталог aquamarine и установите зависимости в виртуальное окружение:
cd aquamarine
pip install -r requirements.txt
Создайте файл .env
в каталоге
aquamarine/
и положите туда такой код:
!Важно: SECRET_KEY замените на свой
DEBUG=True
SECRET_KEY='vu1c-=svhigsn81!1doknfa2zxchlq&^37vdyqgc165a8wswjr'
CACHE_FILE=aquamarine_cache
Для обеспечения оптимальной производительности и межпроцессорного обмена сообщениями канальных слоёв необходимо установить Redis
https://redis.io/docs/install/install-redis/
Создайте файл базы данных SQLite и проведите миграции моделей командой:
python manage.py migrate
Для наполнения базы данных начальным списком услуг, загрузите фикстуру командой:
- Windows:
python manage.py loaddata carwash\fixtures\services.json
- Linux:
python manage.py loaddata carwash/fixtures/services.json
Создайте модель суперпользователя (login: эл.почта) командой:
python manage.py createsuperuser
Запустите сервер:
python manage.py runserver
Реализован с использованием Django Rest Framework.
С документацией API, можно подробно ознакомится по адресу URL:
http://localhost:8000/swaggerui/
Проект покрыт различными тестами, которые проверяют его работоспособность.
Тесты запускаются командой:
python manage.py test
- Осминин Алексей - SwedL