Giter VIP home page Giter VIP logo

abstractbooking's People

Contributors

bo858585 avatar

Watchers

 avatar  avatar

Forkers

seagate85

abstractbooking's Issues

Профилирование

Приоритет: высокий

  1. Профилирование sql-запросов:

http://www.varlena.com/GeneralBits/Tidbits/perf.html#intro
http://www.varlena.com/GeneralBits/Tidbits/annotated_conf_e.html
http://www.powerpostgresql.com/Downloads/annotated_conf_80.html
http://linuxfinances.info/info/quickstart.html

Настроить postgreSQL.conf - ввести рекомендуемые в man параметры. Параметры зависят от параметров аппаратуры в том числе.

Cоздается таблица заказов с большим числом записей N = 1000000:

  1. CreateBookingView - INSERT N rows
    (Вставить через dbshell 1000000 строк для 2,3,4)
  2. UpdateBookingView - UPDATE N rows
  3. BookingListView - SELECT N rows
  4. DeleteBookingView - DELETE N rows

Взять запросы из этих django views, получить их SQL, распечатав его в консоль в django-коде. Для view: str(get_queryset().query).
http://simeonfranklin.com/blog/2011/feb/14/hidden-django-queryset-features-i/

Сделать в psql EXPLAIN этих запросов.
Откорректировать параметры в postgresql.conf, отвечающие за эти операции (размер дискового кеша при выборке данных, частота сброса данных на диск при их вставке и обновлении, удаление мусора при их удалении и обновлении и т.д.).

Создать в Postgresql индексы в таблицах, использующихся в этом view.
Выяснить через EXPLAIN, как менятся время работы запросов при добавлении индекса.

Параметры postgreSQL.conf:

shared_buffers = 450MB # (1/4 memory) Общий кэш PostgreSQL
effective_cache_size = 1.5GB # 50-75% of full memory, вся ожидаемая память под кэш, используется планировщиком для определения вероятнсти того, будет ли запрос работать с диском или данные уже доступны в памяти
work_mem = 50MB # память для сортировки данных, используемая одним запросом.

checkpoint_segments - данные из буферов сбрасываются на диск при проходе контрольной точки при заполнении нескольких (параметр checkpoint_segments, по умолчанию 3) сегментов журнала транзакций.
checkpoint_timeout - либо через определённый интервал времени (параметр checkpoint_timeout, измеряется в секундах, по умолчанию 300).

listen_addresses = '*' # localhost

2 . Возможно стоит запустить через nginx написанные unit performance тесты и измерить время работы.

Добавить правильное перенаправление

Если вход на страницу редактирования заказа был с /own_booking_list/, то при редактировании возврат должен происходить на ту же страницу. Для /booking_list/ - то же самое.

При добавлении комментария пользователь должен остаться на соответствующей странице /booking_detail/id/

Удалить print

После написания тестов в мастер-ветке их быть не должно.

Обработка HTML после AJAX ответа сервера.

При включенном AJAX не происходит сокрытия заказов (нужно перезагружать
страницу) - AJAX ответ при взятии/завершении заказа не обрабатывается на стороне клиента.

Кнопка для подтверждения взятия заказа

Когда исполнитель берет заказ, у заказчика на заказе должны появиться две кнопки: "Подтвердить"/"Отклонить" - означающие, подтверждение или отклонение заказчиком попытки исполнителя взять заказ. У исполнителя после нажатия на кнопку взятия заказа эта кнопка скрывается. Статус заказа - должен измениться на "waiting_for_approving". После подтверждения должно работать как и сейчас - статус заказа running. После отклонения статус заказа становится pending.

Статус: высокий

Дизейбл кнопки выбора заказа

Приоритет: очень низкий
После того, как пользователь отправил запрос на сервер и взял заказ, на экран выводится сообщение о его взятии. Необходимо задизейблить через JQuery кнопку взятия заказа в той строке таблицы, в которой производился заказ. То же самое для кнопки завершения заказа.

Сделать быструю регистрацию

Приоритет: низкий
Регистрация должна содержать выбор типа пользователя customer/performer.
При регистрации должны создаваться расширенный профиль пользователя UserProfile со счетом и производиться добавление его к выбранной группе customers/performers.

Сделать быструю регистрацию

Приоритет: низкий
Регистрация должна содержать выбор типа пользователя customer/performer.
При регистрации должны создаваться расширенный профиль пользователя UserProfile со счетом и производиться добавление его к выбранной группе customers/performers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.