Skip to content

Web application for online recording and administration of car wash operations

Notifications You must be signed in to change notification settings

SwedL/aquamarine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Main-logo

Python Version Django Version DRF

Web-приложение обеспечивающее возможность онлайн записи клиентов на услуги автомоечного комплекса и администрирования работы компании.

Рабочую версию сайта вы можете посмотреть по ссылке aqua-marine.pro

Описание работы приложения

Сайт состоит из четырёх независимых интерфейсов.

  • Публичная часть
  • Интерфейс менеджера
  • Интерфейс администратора
  • API

Публичная часть:

Главная страница сайта, где можно узнать о работе компании и её преимуществах перед конкурентами, заказать звонок от компании.

head

Также можно ознакомиться с прайсом услуг компании.
Цены на услуги в прайс-листе, обновляются с изменениями цен администратором в админ-панели.

price

В нижней части находится интерактивная Яндекс карта с месторасположением автомоечного комплекса и футер с контактными данными.

footer

После авторизации пользователя, в зависимости от прав доступа, будет формироваться выпадающее меню

header

menu1 menu2 menu3

В "Профиле" пользователь может изменять свои данные, пароль, кроме логина и индивидуального прайса на автомобиль.
В "Мои записи" пользователь может посмотреть информацию о своих записях на автомойку и отменить их в случае необходимости.

profile user registrations

Предусмотрена возможность восстановления пароля пользователя через электронную почту.

login reset password

Вкладка "Доступное время" показывает свободные дни и время с учётом выбранных услуг, а также общее время работ и их стоимость.
Цены на услуги отображаются в зависимости от категории автомобиля клиента (седан/хетчбек, кроссовер или внедорожник).
Время, которое уже прошло, автоматически становится недоступным для записи.

page registrations

В случае успешной записи будет соответствующее уведомление.
Но если время, которое выбрал пользователь уже занято, пока он регистрировал запись, то появится уведомление с предложением выбрать другое время.

registrations done registrations error

У пользователей с правами менеджера или администратора, при записи на услуги, появляются поля для изменения марки и модели автомобиля, телефона и имени. Так как многие клиенты записываются по телефону указывая свои контактные данные. Также появляется вкладка "Менеджер" для быстрого перехода к интерфейсу менеджера для администрирования записей клиентов.

manager registration

Интерфейс менеджера:

Предназначен для менеджера или администратора. Здесь менеджер получает полную информация на выбранный день (какой автомобиль, какие выбраны услуги и контакты клиента). Записи выводятся на текущий день, а также на ближайшие 2 дня.
Страница автоматически обновляет данные при появлении новой записи или заявки на звонок. Обновление происходит с использованием протокола Websocket и signals.

manager interface

Также на странице отображена кнопка "Запросы звонка" которая начинает сигнализировать миганием, при поступлении запроса звонка от клиента. Кнопка перестаёт мигать, когда все телефонные звонки будут обработаны менеджером.

request call widget

Интерфейс администратора:

Вкладка "Админ - панель" в выпадающем меню пользователя. Сюда имеет доступ только администратор. Для обновления услуг и их цен, регистрации новых пользователей, для просмотра истории всех записей клиентов, в течении года.

В связи с пожеланием заказчика сайта, регистрация новых пользователей возможна только непосредственно администратором.

Установка

Предварительно создайте директорию для приложения (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

REST API:

Реализован с использованием Django Rest Framework.
С документацией API, можно подробно ознакомится по адресу URL: http://localhost:8000/swaggerui/

Тестирование

Проект покрыт различными тестами, которые проверяют его работоспособность.
Тесты запускаются командой:

python manage.py test

Автор проекта

  • Осминин Алексей - SwedL

About

Web application for online recording and administration of car wash operations

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published