You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: PROJECT_DETAILS.md
+15-29Lines changed: 15 additions & 29 deletions
Original file line number
Diff line number
Diff line change
@@ -3,29 +3,32 @@
3
3
> #### Table of Contents
4
4
> -[Project Structure](#project-structure)
5
5
> -[Directory Structures](#directory-structures)
6
-
> -[algorithms](#algorithms)
7
-
> -[tracers](#tracers)
8
6
> -[algorithm-visualizer](#algorithm-visualizer)
7
+
> -[algorithms](#algorithms)
9
8
10
9
## Project Structure
11
10
12
-
The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) consists of the following three repositories.
11
+
The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) consists of the following repositories.
12
+
13
+
-[`algorithm-visualizer`](https://github.com/algorithm-visualizer/algorithm-visualizer) contains the frontend server written in React and the backend server written in Node.
13
14
14
15
-[`algorithms`](https://github.com/algorithm-visualizer/algorithms) contains public algorithms shown on the sidebar.
15
16
16
-
-[`tracers`](https://github.com/algorithm-visualizer/tracers) builds visualization libraries for each supported language based on the specifications, and executes users' codes to extract visualization data.
17
+
-[`tracers.js`](https://github.com/algorithm-visualizer/tracers.js) is a visualization library for JavaScript.
17
18
18
-
-[`algorithm-visualizer`](https://github.com/algorithm-visualizer/algorithm-visualizer) contains the frontend server written in React and the backend server written in Node.
19
+
-[`tracers.cpp`](https://github.com/algorithm-visualizer/tracers.cpp) is a visualization library for C++.
20
+
21
+
-[`tracers.java`](https://github.com/algorithm-visualizer/tracers.java) is a visualization library for Java.
19
22
20
23
## Directory Structures
21
24
22
25
### algorithms
23
26
24
27
-**Category A/** is the name of the category.
25
28
-**Algorithm A/** is the name of the algorithm.
29
+
- **code.js** is the implementation of the algorithm in JavaScript.
26
30
- **code.cpp** is the implementation of the algorithm in C++.
27
31
- **code.java** is the implementation of the algorithm in Java.
28
-
- **code.js** is the implementation of the algorithm in ECMAScript.
29
32
- **README.md** is the description of the algorithm.
30
33
-**Algorithm B/**
31
34
-**Algorithm C/**
@@ -34,26 +37,6 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
34
37
-**Category C/**
35
38
- ...
36
39
37
-
### tracers
38
-
39
-
-**bin/** is where executables are written to.
40
-
-**docs/** is where library documentations are written to.
41
-
-**src/** contains source codes.
42
-
-**common/** contains commonly used files.
43
-
-**executables/** contains the source codes of executables.
44
-
-**languages/** builds visualization libraries and defines how to execute users' codes for ...
45
-
-**cpp/** ... C++.
46
-
- **builder/** builds a visualization library based on the specifications.
47
-
- **skeleton/** provides the skeleton of the visualization library.
48
-
- **executor/** defines how to execute users' codes.
49
-
-**java/** ... Java.
50
-
-**js/** ... ECMAScript.
51
-
-**specs/** defines the specifications.
52
-
-**randomizers/** contains the specifications of randomizers.
53
-
-**tracers/** contains the specifications of tracers.
54
-
55
-
**NOTE** that for ECMAScript, it builds a web worker rather than a visualization library. Once browsers fetch the web worker, they will submit users' codes to the web worker locally, instead of submitting to the remote backend server, to extract visualization data. It not only enables browsers to visualize ECMAScript codes quickly, but also significantly reduces the load on the backend server.
56
-
57
40
### algorithm-visualizer
58
41
59
42
-**app/** wraps the backend and frontend servers.
@@ -67,10 +50,11 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
67
50
- **apis/** defines outgoing API requests.
68
51
- **common/** contains commonly used files.
69
52
- **controllers/** routes and processes incoming requests.
53
+
- **models/** manages the algorithm data.
70
54
- **public/** is where the backend server writes to.
71
-
- **algorithms/** is cloned [`algorithms`](https://github.com/algorithm-visualizer/algorithms) repo.
72
-
- **codes/** is where users' codes are uploaded to
- **algorithms/** is a cloned [`algorithms`](https://github.com/algorithm-visualizer/algorithms) repo.
56
+
- **codes/** is where users' codes are uploaded to.
57
+
- **tracers/**builds a web worker and docker images that compile and run users' codes.
74
58
-**frontend/** contains the source code of the frontend server.
75
59
-**apis/** defines outgoing API requests.
76
60
-**common/** contains commonly used files.
@@ -81,3 +65,5 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
81
65
-**reducers/** contains Redux reducers.
82
66
-**skeletons/** contains skeleton files to be shown in the code editor.
83
67
-**static/** contains static files to be served.
68
+
69
+
**NOTE** that for JavaScript, it builds a web worker rather than a docker image. Once browsers fetch the web worker, they will submit users' codes to the web worker locally, instead of submitting to the remote backend server, to extract visualization data. It not only enables browsers to visualize JavaScript codes quickly, but also reduces the load on the backend server.
Copy file name to clipboardExpand all lines: README.md
+10-8Lines changed: 10 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -12,18 +12,20 @@ Learning algorithms from text and static images is quite boring. There have been
12
12
13
13
## Contributing
14
14
15
-
**I want to add or improve an algorithm.**
15
+
If you want to ...
16
16
17
-
-We have a separate repository for public algorithms. Check out the [contributing guidelines](https://github.com/algorithm-visualizer/algorithms/blob/master/CONTRIBUTING.md) in [`algorithms`](https://github.com/algorithm-visualizer/algorithms) repo.
17
+
-**Add or improve an algorithm.**
18
18
19
-
**I want to improve the UI.**
19
+
We have a separate repository for public algorithms. Check out the [contributing guidelines](https://github.com/algorithm-visualizer/algorithms/blob/master/CONTRIBUTING.md) in [`algorithms`](https://github.com/algorithm-visualizer/algorithms) repo.
20
20
21
-
-Check out the [contributing guidelines](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/CONTRIBUTING.md) in this repo. The [directory structure](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/PROJECT_DETAILS.md#algorithm-visualizer) might be helpful as well.
21
+
-**Improve the UI.**
22
22
23
-
**I want to enhance visualization libraries.**
23
+
Check out the [contributing guidelines](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/CONTRIBUTING.md) in this repo. The [directory structure](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/PROJECT_DETAILS.md#algorithm-visualizer) might be helpful as well.
24
24
25
-
- It is highly recommended to read the entire [project details](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/PROJECT_DETAILS.md) before working on it. Making changes to visualization libraries often requires a lot of work since you may need to work on all of the following repositories: [`algorithms`](https://github.com/algorithm-visualizer/algorithms), [`tracers`](https://github.com/algorithm-visualizer/tracers), and [`algorithm-visualizer`](https://github.com/algorithm-visualizer/algorithm-visualizer). We encourage you to raise an issue about your idea of enhancement before working on it.
25
+
-**Revise the specifications of visualization libraries.**
26
+
27
+
Making changes to the specifications is often followed by updating visualization libraries for every supported language and the affected public algorithms accordingly. It is highly recommended to read the entire [project details](https://github.com/algorithm-visualizer/algorithm-visualizer/blob/master/PROJECT_DETAILS.md) and to raise an issue about your proposal before working on it.
26
28
27
-
**I have a question in regards to contributing.**
29
+
-**Fix issues in a visualization library for a specific langauge.**
28
30
29
-
- Raising an issue is another way of contributing!
31
+
Check out the contributing guidelines ([JavaScript](https://github.com/algorithm-visualizer/tracers.js/blob/master/CONTRIBUTING.md), [C++](https://github.com/algorithm-visualizer/tracers.cpp/blob/master/CONTRIBUTING.md), and [Java](https://github.com/algorithm-visualizer/tracers.java/blob/master/CONTRIBUTING.md)) in the repo of the visualization library.
0 commit comments