|
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 | +Welcome to Algorithms In Action! |
4 | 4 |
|
5 |
| -* This is a team sub-branch of the main branch. Please tracking most stable running model. |
| 5 | +Here is the [entry](https://algorithms-in-action.github.io/) for the algorithm visualiser. |
6 | 6 |
|
7 |
| -## Organisation of folders |
| 7 | +You may want to read the [WIKI](https://github.com/algorithms-in-action/algorithms-in-action.github.io/wiki) for more project details. |
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 | +[toc] |
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 | +## Project Description |
20 | 12 |
|
21 |
| -## Deployment |
| 13 | +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 [1]. |
22 | 14 |
|
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. |
| 15 | +> [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. |
24 | 16 |
|
25 |
| -**First-time Setup** |
| 17 | +## Development History |
26 | 18 |
|
27 |
| -Ensure you have node version 14.x and npm version 6.x or higher |
| 19 | +The original AIA eventually had modules for some 24 different algorithms, and was used by students at The University of Melbourne and elsewhere. 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. |
28 | 20 |
|
29 |
| -To verify, type the following commands in your terminal/ command prompt - |
| 21 | +Starting in 2020, the program has been redeveloped by successive groups of Software Engineering and Computer Science students at The University of Melbourne, using the latest software tools. |
30 | 22 |
|
31 |
| -`node --version` |
| 23 | +XXXLee ? as at <date> AIA has XX number of modules, covering: NAMES OF MODULES |
32 | 24 |
|
33 |
| -`npm --version` |
| 25 | +XXXLee Something about AIA on github. |
34 | 26 |
|
35 |
| -Navigate to the root directory of the project and run `npm install` to install all the dependencies in package.json |
| 27 | +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). |
36 | 28 |
|
37 |
| -**Running a local development server** |
| 29 | +## Developer |
38 | 30 |
|
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 |
| 31 | +### Start Up |
40 | 32 |
|
41 |
| -## Demo |
| 33 | +1. Clone the code |
| 34 | +2. Run the project locally |
| 35 | +3. Checkout to your personal branch |
| 36 | +4. Make some modifications |
| 37 | +5. Merge your code into target branch |
42 | 38 |
|
43 |
| -We currently have an accessible link to the application, link has shows as above. |
| 39 | +### Deployment |
44 | 40 |
|
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. |
| 41 | +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. |
46 | 42 |
|
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. |
| 43 | +#### Environment Setup |
| 44 | + |
| 45 | +Ensure you have node version 18.x and npm version 9.x or higher. |
| 46 | + |
| 47 | +You may also need to install python 3.x for the project. |
| 48 | + |
| 49 | +To verify, you can input the following command in your terminal or command line. |
| 50 | + |
| 51 | +```bash |
| 52 | +node --version && npm --version && python --version |
| 53 | +``` |
| 54 | + |
| 55 | +#### Install Dependencies |
| 56 | + |
| 57 | +Navigate to the **root directory of the project** and run c to install all the dependencies in package.json |
| 58 | + |
| 59 | +```bash |
| 60 | +npm install |
| 61 | +``` |
| 62 | + |
| 63 | +#### Start a local server |
| 64 | + |
| 65 | +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 |
| 66 | + |
| 67 | +```bash |
| 68 | +npm start |
| 69 | +``` |
| 70 | + |
| 71 | +### Branch Management |
| 72 | + |
| 73 | +Currently, this project use `dev` as main branch. The branch named like `dev-20XXSX` will be development branch for new version. Only the development branch should be merged into main branch. |
| 74 | + |
| 75 | +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. |
| 76 | + |
| 77 | +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). |
| 78 | + |
| 79 | +### Folder Organisation |
| 80 | + |
| 81 | +- src/\: Source code of the web app. |
| 82 | +- ui/\: Contains all the images and graphics used for the project. |
| 83 | + |
| 84 | +## License |
| 85 | + |
| 86 | +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