|
1 | 1 | # Algorithms in Action
|
2 | 2 |
|
3 |
| -This is most recent version modified by the students from Semester 2 2021 COMP90082_2021 Software Project. |
| 3 | +   |
4 | 4 |
|
5 |
| -* This is a team sub-branch of the main branch. Please tracking most stable running model. |
| 5 | +Welcome to Algorithms In Action! |
6 | 6 |
|
7 |
| -## Organisation of folders |
| 7 | +Here is the [link](https://algorithms-in-action.github.io/) to run the algorithm visualiser on your browser. |
8 | 8 |
|
9 |
| -- src/\ |
10 |
| - Source code of the web app. |
11 |
| -- ui/\ |
12 |
| - Contains all the images and graphics used for the project. |
13 |
| - |
14 |
| - ## Links to Tools |
| 9 | +We recommend you read the [WIKI](https://github.com/algorithms-in-action/algorithms-in-action.github.io/wiki) for more project details. |
15 | 10 |
|
16 |
| - - Slack channel - https://algorithmsinactionhq.slack.com |
17 |
| - - Demo of the app (Current Team release) - https://aia.testingstar.top |
18 |
| - - Demo of the app (Current Stable release of all teams work) - https://aa.testingstar.top |
19 |
| - - Current working repository: https://github.com/Melb-Uni/AA |
| 11 | +- [Algorithms in Action](#algorithms-in-action) |
| 12 | + - [Project Description](#project-description) |
| 13 | + - [Development History](#development-history) |
| 14 | + - [Developer](#developer) |
| 15 | + - [Start Up](#start-up) |
| 16 | + - [Deployment](#deployment) |
| 17 | + - [Environment Setup](#environment-setup) |
| 18 | + - [Install Dependencies](#install-dependencies) |
| 19 | + - [Start a local server](#start-a-local-server) |
| 20 | + - [Branch Management](#branch-management) |
| 21 | + - [Folder Organisation](#folder-organisation) |
| 22 | + - [License](#license) |
20 | 23 |
|
21 |
| -## Deployment |
| 24 | +## Project Description |
22 | 25 |
|
23 |
| -Algorithms in Action is written in JavaScript, using the React framework. To work on it locally, you will need to install Node.js on your machine. Node.js is a JavaScript runtime that will allow us to view the website locally. NPM (Node package manager) is installed alongside when Node is installed. It is a multipurpose tool that will install 3rd party dependencies, start the app, and run test suites. |
| 26 | +Algorithms in Action (AIA) is an animation software tool, developed for the purposes of teaching computer science algorithms by Linda Stern, Lee Naish, and Harald Søndergaard at The University of Melbourne. AIA features animation, pseudocode, and textual explanations, run in coordinated fashion. A key feature of AIA, not found in other algorithm animations, is that students can view an algorithm at varying levels of detail. Starting with a high level pseudocode description of the algorithm, with accompanying high level animation and textual explanation, students can expand sections of the pseudocode to expose more detail. Animation and explanation are controlled in coordinate fashion, becoming correspondingly more detailed as the pseudocode is expanded. The rationale for various features of AIA and results from students using the program were reported in the paper <sup>[1]</sup>. |
24 | 27 |
|
25 |
| -**First-time Setup** |
| 28 | +> [1] Stern, L., Søndergaard, and Naish, L., A Strategy for Managing Content Complexity in Algorithm Animation, *Proceedings of the Fourth Annual SIGCSE/SIGCUE Conference on Innovation and* *Technology in Computer Science Education (ITiCSE99),* Cracow, Poland, ACM Press, 127-130, 1999. |
26 | 29 |
|
27 |
| -Ensure you have node version 14.x and npm version 6.x or higher |
| 30 | +## Development History |
28 | 31 |
|
29 |
| -To verify, type the following commands in your terminal/ command prompt - |
| 32 | +The original AIA eventually had modules for some 24 different algorithms, and was used by students at The University of Melbourne and elsewhere. It won two algorithm animation awards. With advances in web technology and changing versions of languages, libraries, and web browsers, the program became progressively slower and slower, and eventually was no longer usable. |
30 | 33 |
|
31 |
| -`node --version` |
| 34 | +Starting in 2020, the program has been redeveloped by successive groups of Software Engineering, Computer Science and IT students plus interns at The University of Melbourne, using the latest software tools. In the second half (second semester) of 2023 there was a significant change to some of the core modules to keep up with the latest version of Javascript, Python and the packages AIA relies on, plus a revamp of the github repository, including the [WIKI](https://github.com/algorithms-in-action/algorithms-in-action.github.io/wiki). The plan is to ensure the master branch and executable system hosted on github has only stable, high quality algorithm animations visible. The repository will also contain other algorithm animations at various stages of development. The three academics involved in the initial development are now retired but still supervise development; we would welcome contact with others who are interested in using and/or contributing to AIA. |
32 | 35 |
|
33 |
| -`npm --version` |
| 36 | +The detail version history can be accessed in wiki: [Version History](https://github.com/algorithms-in-action/algorithms-in-action.github.io/wiki/Version-History). |
34 | 37 |
|
35 |
| -Navigate to the root directory of the project and run `npm install` to install all the dependencies in package.json |
| 38 | +## Developer |
36 | 39 |
|
37 |
| -**Running a local development server** |
| 40 | +### Start Up |
38 | 41 |
|
39 |
| -Navigate to the root directory of the project and run `npm start` this will start the development server on your local machine on port 3000. The application will be launched automatically in your default browser at http://localhost:3000 |
| 42 | +1. Clone the code |
| 43 | +2. Run the project locally |
| 44 | +3. Checkout to your personal branch |
| 45 | +4. Make some modifications |
| 46 | +5. Merge your code into target branch |
40 | 47 |
|
41 |
| -## Demo |
| 48 | +### Deployment |
42 | 49 |
|
43 |
| -We currently have an accessible link to the application, link has shows as above. |
| 50 | +Algorithms in Action is written in JavaScript, using the React framework. To work on it locally, you will need to install Node.js on your machine. Node.js is an open-source, cross-platform JavaScript runtime environment. NPM (Node package manager) is installed alongside when Node is installed. It is a multipurpose tool that will install 3rd party dependencies, start the app, and run test suites. |
44 | 51 |
|
45 |
| -This [link](https://aa.testingstar.top) above includes changes made by teams at the end of each sprint and is accessible to anyone who has the link. The version of the algorithm in action web application in the above link tracks the changes made to the `dev` branch in the Github repository. When a pull request is submitted, approved, and merged into the `dev` branch from respective team branches, the application will be redeployed with the updated changes. |
| 52 | +#### Environment Setup |
46 | 53 |
|
47 |
| -This [link](https://aia.testingstar.top) is showing current team's work. It's a fast-tracking branch of alpha release which may be unstable. It has tracked with `boxjelly` branch in the GitHub repository. |
| 54 | +Ensure you have node version 18.x and npm version 9.x or higher. |
| 55 | + |
| 56 | +You may also need to install python 3.x for the project. |
| 57 | + |
| 58 | +To verify, you can input the following command in your terminal or command line. |
| 59 | + |
| 60 | +```bash |
| 61 | +node --version && npm --version && python --version |
| 62 | +``` |
| 63 | + |
| 64 | +#### Install Dependencies |
| 65 | + |
| 66 | +Navigate to the **root directory of the project** and run npm to install all the dependencies in package.json |
| 67 | + |
| 68 | +```bash |
| 69 | +npm install |
| 70 | +``` |
| 71 | + |
| 72 | +#### Start a local server |
| 73 | + |
| 74 | +Navigate to the **root directory of the project** and run the following command `npm start` this will start the server on your local machine on port 3000. The application will be launched automatically in your default browser at http://localhost:3000 |
| 75 | + |
| 76 | +```bash |
| 77 | +npm start |
| 78 | +``` |
| 79 | + |
| 80 | +### Branch Management |
| 81 | + |
| 82 | +Currently, this project use `dev` as main branch. The branch named like `dev-20YYSX` (20YY = year, X = semester number) will be development branch for new version. Only the development branch should be merged into main branch. |
| 83 | + |
| 84 | +Therefore, if you are going to develop some new features or fix some bugs for the project, you should create a personal branch to write your code, and then merge your code into target branch. |
| 85 | + |
| 86 | +You may need to check the WIKI for the [development manual](https://github.com/algorithms-in-action/algorithms-in-action.github.io/wiki/Development-Manual). |
| 87 | + |
| 88 | +### Folder Organisation |
| 89 | + |
| 90 | +| Name | Description | |
| 91 | +| ----- | ---------------------------------------------------------- | |
| 92 | +| ./src | Source code of the web app. | |
| 93 | +| ./ui | Contains all the images and graphics used for the project. | |
| 94 | + |
| 95 | +## License |
| 96 | + |
| 97 | +Algorithms-in-action/algorithms-in-action.github.io is licensed under the MIT License, a short and simple permissive license with conditions only requiring preservation of copyright and license notices. |
0 commit comments