Skip to content

Commit c3c6ded

Browse files
committed
Update documentations
1 parent 6d4326b commit c3c6ded

File tree

2 files changed

+25
-37
lines changed

2 files changed

+25
-37
lines changed

PROJECT_DETAILS.md

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,32 @@
33
> #### Table of Contents
44
> - [Project Structure](#project-structure)
55
> - [Directory Structures](#directory-structures)
6-
> - [algorithms](#algorithms)
7-
> - [tracers](#tracers)
86
> - [algorithm-visualizer](#algorithm-visualizer)
7+
> - [algorithms](#algorithms)
98
109
## Project Structure
1110

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.
1314

1415
- [`algorithms`](https://github.com/algorithm-visualizer/algorithms) contains public algorithms shown on the sidebar.
1516

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.
1718

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.
1922

2023
## Directory Structures
2124

2225
### algorithms
2326

2427
- **Category A/** is the name of the category.
2528
- **Algorithm A/** is the name of the algorithm.
29+
- **code.js** is the implementation of the algorithm in JavaScript.
2630
- **code.cpp** is the implementation of the algorithm in C++.
2731
- **code.java** is the implementation of the algorithm in Java.
28-
- **code.js** is the implementation of the algorithm in ECMAScript.
2932
- **README.md** is the description of the algorithm.
3033
- **Algorithm B/**
3134
- **Algorithm C/**
@@ -34,26 +37,6 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
3437
- **Category C/**
3538
- ...
3639

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-
5740
### algorithm-visualizer
5841

5942
- **app/** wraps the backend and frontend servers.
@@ -67,10 +50,11 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
6750
- **apis/** defines outgoing API requests.
6851
- **common/** contains commonly used files.
6952
- **controllers/** routes and processes incoming requests.
53+
- **models/** manages the algorithm data.
7054
- **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
73-
- **tracers/** is cloned [`tracers`](https://github.com/algorithm-visualizer/tracers) repo.
55+
- **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.
7458
- **frontend/** contains the source code of the frontend server.
7559
- **apis/** defines outgoing API requests.
7660
- **common/** contains commonly used files.
@@ -81,3 +65,5 @@ The project [Algorithm Visualizer](https://github.com/algorithm-visualizer) cons
8165
- **reducers/** contains Redux reducers.
8266
- **skeletons/** contains skeleton files to be shown in the code editor.
8367
- **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.

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,20 @@ Learning algorithms from text and static images is quite boring. There have been
1212

1313
## Contributing
1414

15-
**I want to add or improve an algorithm.**
15+
If you want to ...
1616

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.**
1818

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.
2020

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.**
2222

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.
2424

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.
2628

27-
**I have a question in regards to contributing.**
29+
- **Fix issues in a visualization library for a specific langauge.**
2830

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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy