Code Monkey home page Code Monkey logo

pg-dev2app's Introduction

pg-dev2-web

Web application for PostgreSQL DEV2 course

  1. Clone the repo
git clone https://github.com/i-bash/pg-dev2app.git
  1. Install NodeJS 9 and server packages
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt install -y nodejs

cd pg-dev2app/server
npm install
  1. Start server in terminal
./wspg-server <port>
  1. Open http://localhost:port in web browser. Make sure you don't run an ancient version of the browser. Firefox 75+ will work.

pg-dev2app's People

Contributors

i-bash avatar

Watchers

 avatar

pg-dev2app's Issues

tech query

Может запрос этот не показывать, а то он занимает больше половины места?
Согласен, не показывай.

Date & time format for background tasks

В окошке фоновых заданий дата и время начала и окончания выводятся в странном формате. Хотелось бы нечто стандартное, например всегда DD.MM.YYYY HH24:MI:SS

Screenshot_2020-08-03_21-53-57

Locale of the calendar

В админке в "окошке" установки цены дата отображается в виде 07 / 10 / 2020, и названия месяцев и дней недели на английском.
В виртуалке LC_TIME=ru_RU.UTF-8.
Не критично, но если можно поменять локаль календаря, то было бы хорошо.

rating

Можно ж и не округлять. Я б сделал картинку с 5-ю прозрачными звездами на белом фоне, а под ними растягивал на нужную ширину картинку из одного желтого пикселя (хотя может желтую полоску и css-ом можно нарисовать).

Books list in administration tab

  1. В админке сейчас количество и цена выводятся просто числами.
46 [Заказать]       1440 [Установить]

Надо бы подписать как-то так:

46 шт. [Заказать]       1440 ₽ [Установить]

Или, как вариант, вернуть заголовки для столбцов таблицы ("название и автор"; "количество, шт"; "цена, ₽").

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

Layout of background tasks

Есть соображения насчет внешнего вида окошка фоновых заданий. Сейчас оно выглядит несколько "непричесаным".
Предложение такое.

[ --- выбор программы --- ]   [ Выполнить ]

(.) Локально                             [ --- окошко         ]
( ) Удаленно [ --- выбор сервера --- ]   [     параметров --- ]

То есть:

  • Вместо чекбокса предлагаю сделать радиокнопку - кажется так понятнее.
  • Выбор удаленного сервера должен выглядеть точно так же, как в информационной панели. И скрывать его в таком варианте не надо.
  • Окошко параметров не подписывать, а сделать <textarea placeholder="параметры (json)">. По умолчанию пусть NULL в табличку записывается.

Еще: кнопку обновления хотелось бы сделать побольше-позаметнее. Может, просто написать на ней "Обновить"?

Statement origin

В правой панельке выводится такое:
[email protected]:5432 (8959)
web понятно,
127.0.0.1 тоже, но наверное лучше localhost,
5432 - порт, но почему при подключении к баунсеру тоже выводится 5432?
(8959) - для понятности лучше выводить как (pid 8959)

Price & to cart

На детальной странице в углу выводятся цена книги и кнопка "в корзину". Но они стоят довольно далеко друг от друга и близко к остальному тексту. Из-за этого непонятно, что они образуют группу.
Озон, например, объединяет их в рамочку. Может и нам также сделать?

Order by layout broken

Что-то у меня после обновления стрелки "по убыванию/по возрастанию" съехали вниз. От ширины экрана не зависит.

Screenshot_2020-07-08_12-23-59

Set retail price

В админке при установке розничной цены:

  • Для значения по умолчанию надо отпускную цену умножить на два.
  • Заменить "С" на "Действует с".
  • Формат даты и времени сейчас нечеловеческий (2020-06-10T15:51) и похоже значение по умолчанию берется в GMT+00. Календарик приделывать не надо, но хорошо бы вывести как "10.06.2020 18:51". И шрифт чуть крупнее, а то сейчас он меньше, чем подписи.

Images - why so slow?

Решил попробовать, сколько времени занимает прочитать все обложки. EXPLAIN ANALYZE какую-то ерунду показывает, пока не понял почему. Но вот так сделал, чтобы уж точно честно:
COPY ( SELECT webapi.get_image(b.book_id) FROM books b ) TO ...
Получается секунды полторы-две на все обложки.
Внимание, вопрос: почему в приложении обложки появляются так медленно? Что тормозит?

Application logo

Слон в изоляции - это прекрасно (:
Но надо б все-таки поменять лого на "книжечку" как в презентациях. Вот png-шка подходящего размера:
book

Может слона как пасхалку куда-нибудь воткнуть?..

cover images

Одним запросом не надо, пусть по одной едут.

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

Task results window way too narrow

Окошко результатов очень узкое. Чуть что, сразу скроллер.
Лучше пусть занимает почти весь экран.

Вот пример:
Screenshot_2020-08-03_21-32-30

Trace

Надо чуть поменять трассировку. Вместо public.trace() вызывать:

  • В магазине - webapi.trace(auth_token). Если токена нет, передавать NULL.
  • В админке - empapi.trace().

Receipt

В админке в окошке заказа:

  • Заменить "В наличии" на "В наличии на складе".
  • Заменить "Со склада" на "Заказать у поставщика".
  • Убрать строчку "Отпускная цена", вместо нее выводить прямо в кнопке "Заказать по XXX ₽".

Book name&authors formatting

  • Много авторов надо сокращать (оставлять двух-трех и дописывать "и др."). См. "Лекции лауреатов премии Тьюринга".

  • Длинные названия, возможно, тоже надо сокращать, хотя и не уверен. См. "Джоэл о программировании и ..."

  • Может быть название выводить на одной строке, а авторов - на другой?

Rating visualization

А можешь сделать, как, например, в Озоне: https://www.ozon.ru/context/detail/id/149717044/
Т. е. чтобы полоска была видна только сквозь звезды.
То, как сейчас - лучше чем просто полоска, но все еще не очень похоже.

Books duplication after set_retail_price

В админке нахожу все книги, и у первой по списку устанавливаю новую цену.
После того, как приложение перечитывает каталог, первая книга задваивается в списке (один экземпляр со старой ценой, другой - с новой).
Что-то такое уже было, но в магазине.

Votes

Когда пользователь не залогинен, ему не видны кнопки (+) (-), но видно количество голосов, которые висят в воздухе. Нет никакой возможности догадаться, что это такое.
Давай уберем не только кнопки, но и количество голосов тоже.
И сами кнопки я бы сделал как 👍 👎 - это нагляднее плюсов-минусов.

Don't allow decrement when only one book left in the cart

Если в корзине только один экземпляр книги и мы нажимаем "минус", получаем:
new row for relation "cart_items" violates check constraint "cart_items_qty_check"

Это так и задумавалось, но внешне получается некрасиво. Можешь сделать, чтобы "минус" вообще не нажимался в этом случае?

Book ordering and price on admin page

Кнопка "Заказать" должна спрашивать количество, а сейчас заказывает столько же, сколько есть на складе. И отпускную цену издательства хочется где-то видеть. Можно для этого спец. окошко показывать, а можно и вывести на ту же страницу отдельными столбцами.

add_to_cart

Кстати, можешь еще сделать, чтобы при вызове add_to_cart со страницы магазина всегда явно передавался третий параметр (qty = 1)?

Right pane & books list positioning

Если в поиске выбрать много книг и проскроллить этот списк вниз, то правая панелька уезжает вверх и ее становится не видно. Это как-то странно смотрится.
Хотелось бы прибить правую панель, чтобы она всегда была на одном месте.

Pages

Если не трудно, вытащи в поисковую выдачу книжного магазина количество страниц. Между рейтингом и форматом, в виде "NNN с.".
Функция webapi.get_catalog возвращает pages. Это единственное поле из не-additional, которое не выводится.

Right pane autoscroll

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

Servers list

В списке серверов для подключения у нас пестрит localhost. Давай в config.js добавим словесное описание и будем выводить его + порт:

  • основной сервер (5432)
  • пул соединений (6432)
  • реплика (5433)

Лишняя книга

Наблюдаю забавное поведение:

  1. Пустой поисковый запрос, жмем "Найти", кликаем в первую книгу из списка.
  2. Жмем "К списку книг"
  3. Еще раз жмем "Найти".

При этом первая книга задваивается.

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.