Skip to content

Feedback #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 167 commits into
base: feedback
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
82c4c14
Setting up GitHub Classroom Feedback
github-classroom[bot] Apr 23, 2024
cfc875d
init: project initialization
VyacheslavIurevich Apr 23, 2024
84b6840
fix: update .gitignore
VyacheslavIurevich May 2, 2024
e922b01
feat: CONTRIBUTING.md addition
VyacheslavIurevich May 2, 2024
3978cbb
Merge pull request #12 from spbu-coding-2023/contributing.md
VyacheslavIurevich May 2, 2024
30e6587
feat: LICENSE.md addition
VyacheslavIurevich May 2, 2024
4170c92
Merge pull request #13 from spbu-coding-2023/license.md
VyacheslavIurevich May 2, 2024
104ccc5
feat: README.md addition
VyacheslavIurevich May 2, 2024
ecc355d
Merge pull request #14 from spbu-coding-2023/readme.md
VyacheslavIurevich May 2, 2024
6f73a82
feat: checkEdgesEquivalent method addition to Graph.kt
VyacheslavIurevich May 2, 2024
c433c71
feat: graphs library addition
VyacheslavIurevich May 2, 2024
565454e
fix: blank line addition to all classes endline
VyacheslavIurevich May 2, 2024
4a455e5
feat: some comments addition
VyacheslavIurevich May 2, 2024
9dd73b3
fix: making vertices and edges maps internal
VyacheslavIurevich May 2, 2024
9db9b36
fix: edge class change, changes of methods of changing vertex value a…
VyacheslavIurevich May 3, 2024
7cdeb15
feat: unit-tests for graphs library addition
VyacheslavIurevich May 3, 2024
bf748fa
fix: small typo fix and comment addition
VyacheslavIurevich May 3, 2024
5d61da6
fix: removal unused library from README
f1i3g3 May 3, 2024
c298e5f
Merge pull request #17 from spbu-coding-2023/readme_fix
VyacheslavIurevich May 3, 2024
056dbaf
Merge pull request #15 from spbu-coding-2023/graphs
VyacheslavIurevich May 3, 2024
d19baee
feat: toMap method addition to StronglyConnectedComponentsSelectionSo…
VyacheslavIurevich May 5, 2024
91d9d5e
fix and feat: toMap to InitializeGraphs changing, visited field and i…
VyacheslavIurevich May 5, 2024
d40b8ef
feat: algorithm of strongly connected components selection completion
VyacheslavIurevich May 5, 2024
cf7eefb
fix: lastComponentNum start value changing to 1
VyacheslavIurevich May 5, 2024
9ff3c91
fix: increment of last component number change
VyacheslavIurevich May 5, 2024
dd30ec8
fix: border of the cycle fix
VyacheslavIurevich May 5, 2024
2463832
feat: unit tests for strongly connected components selection addition
VyacheslavIurevich May 5, 2024
7cc4ffd
Merge pull request #18 from spbu-coding-2023/strongly-connected-compo…
VyacheslavIurevich May 5, 2024
54f2132
feat: Ford-Bellman algorithm implementation addition (without negativ…
VyacheslavIurevich May 5, 2024
a2209f4
feat and fix: detection of negative cycle addition, variable renaming
VyacheslavIurevich May 6, 2024
3a44d68
feat: non-existent vertices case handling addition
VyacheslavIurevich May 8, 2024
8eee01d
feat: unit tests addition for path search with negative weights
VyacheslavIurevich May 8, 2024
c991eb8
ci: mergeable addition
ElBananium May 12, 2024
899d7ca
ci: editorconfig addition
ElBananium May 12, 2024
2777927
ci: ktlint, jacoco addition and configuration
ElBananium May 12, 2024
5f51959
ci: pre-commit linter hook addition
ElBananium May 12, 2024
2b87691
ci: Lint Task, Tests task, Coverage task addition
ElBananium May 12, 2024
55e90c1
Merge pull request #21 from spbu-coding-2023/ci
VyacheslavIurevich May 12, 2024
9896b8e
fix: new lines addition to ends of all class files
VyacheslavIurevich May 12, 2024
24a8697
fix: blank line removal from settings.gradle.kts
VyacheslavIurevich May 12, 2024
4666de9
fix: code formatting
VyacheslavIurevich May 12, 2024
b13df61
Merge pull request #22 from spbu-coding-2023/development-fixes
VyacheslavIurevich May 12, 2024
c510d69
ci: mergeable.yml fix
ElBananium May 12, 2024
4fc8cc2
Merge pull request #23 from spbu-coding-2023/development
VyacheslavIurevich May 12, 2024
c53ab2c
feat: acknowledgements addition to README.MD
VyacheslavIurevich May 12, 2024
8402dfd
Merge pull request #24 from spbu-coding-2023/readme-acknowledgements
VyacheslavIurevich May 12, 2024
7c41412
Merge pull request #25 from spbu-coding-2023/development
VyacheslavIurevich May 12, 2024
54d1e60
feat: graph init addition
VyacheslavIurevich May 13, 2024
0d2bf81
feat: stochastic matrix type change
VyacheslavIurevich May 13, 2024
1758f8e
fix: graph init change
VyacheslavIurevich May 13, 2024
f1fbdd1
feat: graph initialization optimization
VyacheslavIurevich May 13, 2024
a3a221f
Merge pull request #26 from spbu-coding-2023/strongly-connected-compo…
VyacheslavIurevich May 13, 2024
c39c27e
fix: graph map initialization optimization
VyacheslavIurevich May 13, 2024
815c344
feat: key vertices selection implementation addition
VyacheslavIurevich May 14, 2024
a78f4cd
feat: tests for key vertices selection addition
VyacheslavIurevich May 14, 2024
25b9a54
fix: formatting fix
VyacheslavIurevich May 14, 2024
4f76d24
Merge pull request #27 from spbu-coding-2023/key-vertices-select
VyacheslavIurevich May 14, 2024
dc03a59
feat: brushed implementation of cycle search algorithm
f1i3g3 May 15, 2024
d9bfdd5
feat: brushed implementation of cycle search algorithm
f1i3g3 May 15, 2024
fdc001b
feat: pre-commit hook switching mode to executable
VyacheslavIurevich May 16, 2024
d290d2c
feat: toMap method addition to all graphs
VyacheslavIurevich May 16, 2024
1e7ec32
fix: empty set for isolated vertices as a map value addition
VyacheslavIurevich May 16, 2024
be831ad
feat and fix: tests for toAdjacencyMap method addition, making more u…
VyacheslavIurevich May 16, 2024
92430a2
fix: toAdjacencyMap() test changing
VyacheslavIurevich May 16, 2024
7770340
Merge branch 'development' into graphs
VyacheslavIurevich May 16, 2024
f88e685
fix: needles blank line removal
VyacheslavIurevich May 16, 2024
d87485b
Merge pull request #28 from spbu-coding-2023/graphs
VyacheslavIurevich May 16, 2024
ef8cfe3
Merge pull request #29 from spbu-coding-2023/development
VyacheslavIurevich May 16, 2024
24489be
feat: usage of new graph method toAdjacencyMap() addition
VyacheslavIurevich May 16, 2024
ae3982a
Merge pull request #30 from spbu-coding-2023/key-vertices-select
VyacheslavIurevich May 16, 2024
1871cb8
Merge remote-tracking branch 'origin/development' into cycle-search
f1i3g3 May 18, 2024
170a9a3
feat: Bridge Finder algorithm tests implementation
ElBananium May 19, 2024
ae100d7
feat: Bridge Finder algorithm implementation
ElBananium May 19, 2024
e922cf7
feat: Bridge Finder algorithm tests extension
ElBananium May 19, 2024
89fca66
Merge pull request #31 from spbu-coding-2023/bridge-finder
VyacheslavIurevich May 21, 2024
6f73d20
Merge branch 'cycle-search', remote-tracking branch 'origin/developme…
f1i3g3 May 21, 2024
fb13cf2
fix: locating classes into their own directories
VyacheslavIurevich May 21, 2024
4ca5701
Merge branch 'development' into strongly-connected-components-select
VyacheslavIurevich May 21, 2024
8634a00
Merge pull request #32 from spbu-coding-2023/strongly-connected-compo…
VyacheslavIurevich May 21, 2024
729da38
feat: Djikstra Algorithm implementation
ElBananium May 21, 2024
3ae1ff0
feat: Djikstra test implementation
ElBananium May 22, 2024
7a4d42a
fix: Fixed a bug where was impossible to find the start position
ElBananium May 22, 2024
e6259d2
Merge remote-tracking branch 'origin/development' into minimal-spanni…
f1i3g3 May 22, 2024
1a14cf5
fix: locating of classes into package model, locating all algo tests …
VyacheslavIurevich May 22, 2024
9334a2b
fix: correction to toAdjacencyMap graph method
f1i3g3 May 22, 2024
640c773
feat: addition of cycle search (non-directed case) tests
f1i3g3 May 22, 2024
ed7465a
feat: addition of directed case tests
f1i3g3 May 23, 2024
c3995a6
Merge remote-tracking branch 'origin/cycle-search' into cycle-search
f1i3g3 May 23, 2024
fbfd7ed
fix: removal of old solver version
f1i3g3 May 23, 2024
72f266c
Merge pull request #33 from spbu-coding-2023/djikstra-algorithm
VyacheslavIurevich May 23, 2024
74c13ed
relocation of djikstra alg, djikstra tests small changes
VyacheslavIurevich May 23, 2024
2d34543
chores: relocate classes into model
VyacheslavIurevich May 23, 2024
f19a48f
chores: tests relocation
VyacheslavIurevich May 23, 2024
24d8e36
Merge branch 'development' into cycle-search
VyacheslavIurevich May 23, 2024
6d2e8dc
Merge pull request #34 from spbu-coding-2023/cycle-search
VyacheslavIurevich May 23, 2024
bf66f45
merge: merging of changes from development
VyacheslavIurevich May 23, 2024
883b7c2
feat: addition of similiar behaviour of Djikstra and Ford-Bellman alg…
VyacheslavIurevich May 23, 2024
28ecbf9
Merge pull request #19 from spbu-coding-2023/path-search-negative-wei…
VyacheslavIurevich May 23, 2024
ecf423c
chores: renaming of tests for Ford-Bellman algorithm
VyacheslavIurevich May 23, 2024
ca32888
Merge remote-tracking branch 'origin/development' into minimal-spanni…
f1i3g3 May 23, 2024
8315734
feat: draft implementation of Kruskal algorithm (finally added to rep…
f1i3g3 May 23, 2024
636f39c
init: addition of compose to gradle
VyacheslavIurevich May 24, 2024
dfdee22
feat: draft implementation of gui addition
VyacheslavIurevich May 24, 2024
6740ac7
Merge branch 'gui' of https://github.com/spbu-coding-2023/graphs-grap…
f1i3g3 May 24, 2024
b85a42a
feat: changing of returning null into exceptions throwing
VyacheslavIurevich May 25, 2024
4ca7637
feat: fixes to implementation of Kruskal algorithm + addition of tests
f1i3g3 May 26, 2024
7ea9b46
feat: addition of graph choose window
VyacheslavIurevich May 26, 2024
8c587e1
fix: removing gui parts from wrong branch
f1i3g3 May 26, 2024
ec33004
fix: making gradle files similiar to development branch
VyacheslavIurevich May 26, 2024
558f7d5
Merge pull request #35 from spbu-coding-2023/minimal-spanning-tree
VyacheslavIurevich May 26, 2024
c4edab1
feat: AbstractGraphSerializer implementation
ElBananium May 27, 2024
2ce3347
feat: AbstractGraphSerializer tests implementation
ElBananium May 27, 2024
47fc162
feat: JsonGraphSerializer implementation
ElBananium May 27, 2024
10776e8
feat: choosing of graph type addition
VyacheslavIurevich May 27, 2024
9bf9811
feat: better example of weighted graph addition
VyacheslavIurevich May 27, 2024
a12a391
feat: directed graph representation addition
VyacheslavIurevich May 27, 2024
33de1d7
feat: removal of redundant button and checkbox in unweighted graph case
VyacheslavIurevich May 27, 2024
a985760
feat: changing of checkbox and button texts
VyacheslavIurevich May 28, 2024
f63c122
feat: addition of key vertices selection visualization
VyacheslavIurevich May 28, 2024
6efd081
fix: weighted directed graph key vertices selection highlighting fix
VyacheslavIurevich May 28, 2024
bf510be
feat: addition of strongly connected components selection visualization
VyacheslavIurevich May 28, 2024
5230114
feat: shortest path finding visualization addition
VyacheslavIurevich May 28, 2024
be2053a
feat: add bridges finding visualization
VyacheslavIurevich May 28, 2024
e18fbbb
merge: merging of mst branch with gui
VyacheslavIurevich May 28, 2024
11493c4
feat: addition of MST building visualization
VyacheslavIurevich May 28, 2024
7b1281f
fix: quick algo fix + changes in tests (with one new)
f1i3g3 May 28, 2024
b0c82df
Merge remote-tracking branch 'origin/minimal-spanning-tree' into mini…
f1i3g3 May 28, 2024
3e41a50
fix: preparations for task correction
f1i3g3 May 28, 2024
f78fdd0
fix: now algorithm works for chosen vertex instead of all graph
f1i3g3 May 28, 2024
7963e79
fix: setup project structure after merge
f1i3g3 May 28, 2024
4024a0b
fix: addition of "model."
f1i3g3 May 28, 2024
31ae6a2
Merge pull request #40 from spbu-coding-2023/minimal-spanning-tree
VyacheslavIurevich May 29, 2024
0be6c10
Merge pull request #41 from spbu-coding-2023/cycle-search
VyacheslavIurevich May 29, 2024
a2b127b
Merge branch 'minimal-spanning-tree' into gui
VyacheslavIurevich May 29, 2024
762e77b
feat: mst building visualization addition
VyacheslavIurevich May 29, 2024
a05caa9
feat: addition of dialogue window for cycle search
VyacheslavIurevich May 29, 2024
62fea4a
Merge branch 'cycle-search' into gui
VyacheslavIurevich May 29, 2024
42cea82
feat: addition of cycles searching visualization
VyacheslavIurevich May 29, 2024
c79b1d8
fix: fix of cycles search visualization
VyacheslavIurevich May 29, 2024
4e6d7a5
feat: README.md update
VyacheslavIurevich May 29, 2024
2ee2836
Merge pull request #42 from spbu-coding-2023/gui
VyacheslavIurevich May 29, 2024
7541db8
fix: removal of redundant elvis operator
VyacheslavIurevich May 29, 2024
36826de
Merge pull request #43 from spbu-coding-2023/development
VyacheslavIurevich May 29, 2024
080885f
fix: removal of redundant views of directed graphs
VyacheslavIurevich May 29, 2024
876265f
fix: removal of redundant abstract classes
VyacheslavIurevich May 29, 2024
22b8a53
Merge pull request #44 from spbu-coding-2023/gui
VyacheslavIurevich May 29, 2024
4a2ff38
fix: removal of redundant class field
VyacheslavIurevich May 29, 2024
adf1612
feat: addition of window title
VyacheslavIurevich May 29, 2024
c400a2d
feat: DOCS.md addition
VyacheslavIurevich May 29, 2024
57b17c1
fix: README.md actualization
VyacheslavIurevich May 29, 2024
3fca347
Merge branch 'development' into data
VyacheslavIurevich May 29, 2024
1429f6a
fix: removal of incompleted algorithms
VyacheslavIurevich May 29, 2024
02f79e6
fix: change serialization plugin version to 1.9.23
VyacheslavIurevich May 29, 2024
5d08801
Merge pull request #39 from spbu-coding-2023/data
VyacheslavIurevich May 29, 2024
b8586cc
Merge pull request #45 from spbu-coding-2023/development
VyacheslavIurevich May 29, 2024
1c3d109
feat: add gephi toolkit library for layout
ElBananium Sep 24, 2024
00ad972
feat: YifanHu placement realization
ElBananium Sep 24, 2024
b642cf5
fix: Added graph argument into representation strategy.place
ElBananium Sep 24, 2024
b5dd383
feat: YifanHu UI representation strategy realization
ElBananium Sep 24, 2024
a5b7f7e
fix: format inconsistencies
ElBananium Sep 24, 2024
4b14316
Merge pull request #46 from spbu-coding-2023/elbanan-retake-work
ElBananium Sep 24, 2024
a4fd2db
Integration test realization
ElBananium Sep 24, 2024
90de7ed
fix: Formating error
ElBananium Sep 24, 2024
b8d717e
Merge pull request #47 from spbu-coding-2023/elbanan-retake-work
ElBananium Sep 24, 2024
97e56b2
Deleted weight library
ElBananium Sep 24, 2024
2b2cc8f
Merge branch 'main' of https://github.com/spbu-coding-2023/graphs-gra…
ElBananium Sep 24, 2024
3186df2
Library file returned
ElBananium Sep 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
root = true

[*]
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = true
ij_smart_tabs = false
ij_wrap_on_typing = false

[{*.kt,*.kts}]
ktlint_code_style = intellij_idea
ktlint_standard_multiline-if-else = disabled
ktlint_standard_final-newline = disabled
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = true
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = false
ij_kotlin_allow_trailing_comma_on_call_site = false
ij_kotlin_assignment_wrap = normal
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
ij_kotlin_block_comment_add_space = false
ij_kotlin_block_comment_at_first_column = true
ij_kotlin_call_parameters_new_line_after_left_paren = true
ij_kotlin_call_parameters_right_paren_on_new_line = true
ij_kotlin_call_parameters_wrap = on_every_item
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_continuation_indent_for_chained_calls = false
ij_kotlin_continuation_indent_for_expression_bodies = false
ij_kotlin_continuation_indent_in_argument_lists = false
ij_kotlin_continuation_indent_in_elvis = false
ij_kotlin_continuation_indent_in_if_conditions = false
ij_kotlin_continuation_indent_in_parameter_lists = false
ij_kotlin_continuation_indent_in_supertype_lists = false
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = off
ij_kotlin_extends_list_wrap = normal
ij_kotlin_field_annotation_wrap = split_into_lines
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = true
ij_kotlin_import_nested_classes = false
ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 2
ij_kotlin_keep_blank_lines_in_code = 2
ij_kotlin_keep_blank_lines_in_declarations = 2
ij_kotlin_keep_first_column_comment = true
ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_break_after_multiline_when_entry = true
ij_kotlin_line_comment_add_space = false
ij_kotlin_line_comment_add_space_on_reformat = false
ij_kotlin_line_comment_at_first_column = true
ij_kotlin_method_annotation_wrap = split_into_lines
ij_kotlin_method_call_chain_wrap = normal
ij_kotlin_method_parameters_new_line_after_left_paren = true
ij_kotlin_method_parameters_right_paren_on_new_line = true
ij_kotlin_method_parameters_wrap = on_every_item
ij_kotlin_name_count_to_use_star_import = 5
ij_kotlin_name_count_to_use_star_import_for_members = 3
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.**
ij_kotlin_parameter_annotation_wrap = off
ij_kotlin_space_after_comma = true
ij_kotlin_space_after_extend_colon = true
ij_kotlin_space_after_type_colon = true
ij_kotlin_space_before_catch_parentheses = true
ij_kotlin_space_before_comma = false
ij_kotlin_space_before_extend_colon = true
ij_kotlin_space_before_for_parentheses = true
ij_kotlin_space_before_if_parentheses = true
ij_kotlin_space_before_lambda_arrow = true
ij_kotlin_space_before_type_colon = false
ij_kotlin_space_before_when_parentheses = true
ij_kotlin_space_before_while_parentheses = true
ij_kotlin_spaces_around_additive_operators = true
ij_kotlin_spaces_around_assignment_operators = true
ij_kotlin_spaces_around_equality_operators = true
ij_kotlin_spaces_around_function_type_arrow = true
ij_kotlin_spaces_around_logical_operators = true
ij_kotlin_spaces_around_multiplicative_operators = true
ij_kotlin_spaces_around_range = false
ij_kotlin_spaces_around_relational_operators = true
ij_kotlin_spaces_around_unary_operator = false
ij_kotlin_spaces_around_when_arrow = true
ij_kotlin_variable_annotation_wrap = off
ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 1
ij_kotlin_wrap_first_method_in_call_chain = false
9 changes: 9 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
echo "Running git pre-commit hook"
./gradlew ktlintCheck
ktlintCheckStatus=$?
if [[ $ktlintCheckStatus -ne 0 ]]; then
exit 1
else
exit 0
fi
15 changes: 15 additions & 0 deletions .github/mergeable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 2
mergeable:
- when: pull_request.*
name: 'Check decoration'
validate:
- do: title
must_exclude:
regex: ^\[WIP\]
- do: label
must_exclude:
regex: 'wip'
- do: description
no_empty:
enabled: true
message: Description matter and should not be empty. Provide detail with **what** was changed, **why** it was changed, and **how** it was changed.
36 changes: 36 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Main
on:
pull_request:
branches: [ main,development ]

push:
branches: [ main,development ]
jobs:
Lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- name: Start lint
run: ./gradlew ktlintCheck

Tests:
name: Tests and Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- name: Run test
id : runtest
run: ./gradlew test
continue-on-error: true
- name : Display tests results
run: python3 ./scripts/test-result-printer.py --dir ./build/test-results/test --all-failures
- name: Run jacoco coverage report
run: ./gradlew jacocoTestReport
- name: Display info about coverage
run: python3 ./scripts/csv-reports-printer.py --input ./build/reports/jacoco/test/jacocoTestReport.csv
- name : Failure at least one test fails
if: steps.runtest.outcome != 'success'
run: exit 1
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Contributing
Rules of contributing to our project.
1. If you want to add your own feature or fix something in our code, please create your own branch to do it.
2. Please avoid verbs in commits' names ("project initialization" instead of "initialize project" or "initialized project")
3. Once your branch is complete, you can make a pull request and wait for it to be reviewed.
4. Description of pull request is required to be written.
5. Your commits and pull requests must be named and described in English.
6. Your naming of commits and pull requests must be logical and reasonable. Use conventional commits, please.
7. Please use "git commit -s" option.
8. Don't merge your pull request before your code has been reviewed.
9. If you are in doubt what to do, it's better to text developers.
82 changes: 82 additions & 0 deletions DOCS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Documentation

You need to clone our repository and run the app using

```
./gradlew run
```

## How to use

Firstly, you need to choose a graph

![graph-choose](src/main/resources/graph-choose.png)

## Undirected unweighted graph

Here is the example of our graph window

![graph](src/main/resources/graph.png)

If you click "Reset", graph will become as it was before you started manipulating it.

If you click "Algorithms", you will be suggested to use algorithms of this graph

![graph-algos](src/main/resources/graph-algos.png)

### Bridges

Bridge edges are highlighted with red color.

![bridge](src/main/resources/bridge.png)

### Cycles search for given vertex

You are suggested to put in a number of chosen vertex

![cycles-vertex-choose.png](src/main/resources/cycle-vertex-choose.png)

Then you receive highlighted cycle of this vertex, or vertex becomes highlighted with blue color if it doesn't belong to any cycle

![cycle](src/main/resources/cycle.png)

### Key vertices selection

You receive highlighted key vertices of this graph

![key-vertices](src/main/resources/key-vertices.png)

## Directed unweighted graph

Directed graph has some undirected graph algorithms, but also there is selection of strongly connected components.

### Strongly connected components selection

Each component is highlighted with its unique color.

![scc](src/main/resources/scc.png)

## Undirected weighted graph

In weighted graph, you can see weights of edges

![edges-weights](src/main/resources/edges-weights.png)

### Minimal spanning tree construction

Included edges are highlighted with red

![mst](src/main/resources/mst.png)

### Path finding

To find a path, you need to pick source and destination vertices

![path-vertices](src/main/resources/path-vertices.png)

Path is highlighted. Notice that we don't support negative weights for path finding in undirected graph.

![path](src/main/resources/path.png)

## Weighted directed graph
All its algorithms are already explained above
9 changes: 9 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# The MIT License (MIT)

Copyright © 2024 Vyacheslav Kochergin, Vadim Marchenko, Dmitri Kuznetsov.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading