Conversation
Create LICENSE
the algorithm will only work for undirected graphs; oriented ones will be converted to undirected
Implement basic gui, remove ios and linux native support
- standart linter - coverage tests - gradle test
change: test coverage is start for every push
Now need a description and 2 approvals for the pull request
…ality-visualization Feat: add betweenness-centrality visualization
1. Add saving neo4j input data to settings 2. Moved sqlite functions to special class
Restructured io, integrated neo4j
Merge branch 'main' into ycyken/neo4j
Gui improve, add graph icons
1. Fix bugs in db's: fix queires (names with spaces, digits etc) 2. Fix styling, sizes of dialogs, sizes of localisation fonts 3. Implemented theme changing depending on saving type you chosen
Fix Neo4j and Sqlite saving
There was a problem hiding this comment.
В целом, конечно, все хорошо и вы молодцы, но
Работа с гитом
Названия коммитов более-менее системные, но не без косяков (зачем писать add: _add_ smthng и подобное ?), а вот с названиями PRов не нашел чего-то однообразоного. В ПРы залезали какие-то лишние вещи. Так же не понял, где искать процент покрытия.
P.s. названия коммитов хоть и более-менее системные, но не без заметных регулярных косяков

Ридми
Не совсем понимаю, это задумка в минимализм или нет времени, но ладно. Просто напоминаю типичную структуру ридми приложения:
- краткое описание проекта с фоткой/гифкой работы
- как запустить/скачать
- особенности использования (настройки, в вашем случае еще логи пароли от БД)
- авторы/лицензия и подобное
Мягко говоря, меня ввело в ступор, когда я тыкнул на neo4j, а от меня просят пароль, логин и путь куда-то. Я ввел admin;admin и предложенный дефолтный путь. Приложение сначала зависло минуты на 2 (в логах, кстати, не было ничего), потом вылетело, и еще минуты через 3 вылетела ошибка (после закрытия приложения) о проблеме с neo4j. После этого приложение категорически не запускалось

Код
Общих глобальных замечаний нет (самое большое - не понятно, где сохранение в плоский файл), но, возможно, повлияла ограниченность в возможности проревьювить (время + нет встречи очно и не потыкать вас в лайве)
GUI !
1 (меню). Local file — не переводится на русском + непонятные иконки которые не грузятся

2 (сохранение). Графы не сохраняются и сохраняются одновременно: если закрыть и открыть заново приложение, то вершин не будет, если добавить в этот же граф новые вершины, то их номера будут уже не с 0, как будто есть какие-то вершины. + в sql связи не хранятся, как я понял. Также, когда я выходил из графа, не сохраняя вершины, а потом заходил в этот граф (без перезапуска приложения), то вершины сохранялись.
Из интересного, что не успел проверить: что, если сохранить граф в sqlite (условно), в настройке поставить другую бд и открыть приложение заново с этим же графом.

3 (общее).
-
Хоткеи в строке поиска не работают (
ctl + aточно) -
Иконка
добавитьв добавлении тускнеет после введения названия (казалось, что должно быть наоборот) -
Enterне работает в строках поиска -
Хочется видеть сообщения об ошибках прямо в GUI (когда вводишь вершину, которой нет, и подобное)
-
Тряска при раскладке (не понял причину тряски, но уровень нормальный)
-
В меню хочется видеть не "алгоритм ...", а конкретное действие (т.к. без контекста не понятно, за что отвечают все алгосы)
-
Кнопки удаления вершин нет
-
Хочется более удобный способ создания рёбер
-
Тип графа не перевелся
Общие оценки:
Всем по 30 баллов (ведение ГХ, грубые косякие GUI и мелкие косяки везде)
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| os: [ ubuntu-latest, macos-latest ] |
| // Note, if you develop a library, you should use compose.desktop.common. | ||
| // compose.desktop.currentOs should be used in launcher-sourceSet | ||
| // (in a separate module for demo project and in testMain). | ||
| // With compose.desktop.common you will also lose @Preview functionality |
| val data = Json.decodeFromString<TranslationList>(File("src/main/resources/localisation/$language.json").readText()) | ||
| for (wordPair in data.transList) { | ||
| if (wordPair.code == text){ | ||
| return wordPair.localisation | ||
| } | ||
| } | ||
| return text | ||
| } | ||
| catch (ex: Exception){ | ||
| File("src/main/kotlin/localisation/logs/localisationError.log").appendText("LOCALISATION ERROR ${LocalDateTime.now()} -- Key $text is not found in $language\nEXCEPTION IS $ex\n") |
There was a problem hiding this comment.
Можно попробовать, для гибкости, пути вынести в отдельные переменные или конфиги (в лучшем случае)
There was a problem hiding this comment.
Предполагается, что, на высокий балл, текст должен быть воспроизводим вами наизусть без подсматривания
| } | ||
| session.executeWrite { tx -> | ||
| tx.run("CREATE CONSTRAINT IF NOT EXISTS FOR (n: `$graphName`) REQUIRE (n.value) IS UNIQUE;") | ||
| tx.run("CREATE INDEX IF NOT EXISTS FOR (n: `$graphName`) ON (n.value);") |
There was a problem hiding this comment.
что такое индекс и зачем они нужны ?
There was a problem hiding this comment.
вопрос про возможность инъекции так же актуален
| "code": "reset", | ||
| "localisation": "Сбросить цвета" |
There was a problem hiding this comment.
название кода не однозначно, reset_color
| "code": "find_mst", | ||
| "localisation": "Минимальное остовное дерево" |
There was a problem hiding this comment.
| "code": "find_mst", | |
| "localisation": "Минимальное остовное дерево" | |
| "code": "find_mst", | |
| "localisation": "Найти/построить минимальное остовное дерево" |
Co-authored-by: Gleb Nasretdinov <135718038+Ycyken@users.noreply.github.com>
Co-authored-by: Gleb Nasretdinov <135718038+Ycyken@users.noreply.github.com>
There was a problem hiding this comment.
может еще гиф/фото добавить ? 🥺
Пример: https://github.com/spbu-coding-2022/trees-7
There was a problem hiding this comment.
У меня гифка вышла на 66мб просто,в ближайшем будущем допилим
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>

👋! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.
In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.
Click the Files changed or Commits tab to see all of the changes pushed to
mainsince the assignment started. Your teacher can see this too.Notes for teachers
Use this PR to leave feedback. Here are some tips:
mainsince the assignment started. To leave comments on specific lines of code, put your cursor over a line of code and click the blue + (plus sign). To learn more about comments, read “Commenting on a pull request”.main. Click a commit to see specific changes.For more information about this pull request, read “Leaving assignment feedback in GitHub”.
Subscribed: @odiumuniverse @Ycyken @admitrievtsev