|
1 |
| -# COMP900082 - PL-Boxjelly. Project: Planimation |
| 1 | +# Planimation Frontend |
2 | 2 |
|
3 |
| -planimation is a modular and extensible open source framework to visualize sequential solutions of planning problems specified in PDDL. planimation has a preliminary declarative PDDL-like animation profile specification, expressive enough to synthesise animations of arbitrary initial states and goals of a benchmark with just a single profile.(https://planimation.github.io/documentation/). |
| 3 | +## Demo |
4 | 4 |
|
| 5 | +https://morning-ridge-78538.herokuapp.com/ |
5 | 6 |
|
6 |
| -# Table of Contents |
7 |
| -[1.0 Project Overview](#1.0) |
8 |
| - |
9 |
| -[2.0 Deployment](#2.0) |
10 |
| - |
11 |
| -[3.0 Development Environment](#3.0) |
12 |
| - |
13 |
| -[4.0 Using the system](#4.0) |
14 |
| - |
15 |
| -[5.0 Architecture and Design](#5.0) |
16 |
| - |
17 |
| -[6.0 Change Log](#6.0) |
18 |
| - |
19 |
| -[7.0 Demo](#7.0) |
20 |
| - |
21 |
| -<h1 id="1.0"> 1.0 Project Overview </h1> |
22 |
| - |
23 |
| -## Background |
24 |
| - |
25 |
| -Planimation is an openSource framework to visualise sequential solutions of planning problems specified in PDDL. The framework was built by a team of University of Melbourne students in the context of the course SWEN90013 and under the lead of Professor Nir Lipovetzky and it has been continually supported by students and contributors. The project has important awards and recognitions. |
26 |
| - |
27 |
| -The planimation goals are: |
28 |
| - |
29 |
| -* help to debug PDDL code for Online PDDL Editor users |
30 |
| - |
31 |
| -* increases user understanding of planning problems |
32 |
| - |
33 |
| -* showing planning solutions to non-technical audiences |
34 |
| - |
35 |
| -The system uses a domain PDDL script, a problem PDDL script and a Animation profile script to produce visualisation. |
36 |
| - |
37 |
| -## Goal for This Project |
38 |
| - |
39 |
| -The main goal is: |
40 |
| -* Improve project efficiency, maintainability and extendability of Planimation software |
41 |
| - |
42 |
| -The specific goals are: |
43 |
| -* replace the current frontend programed in C# with the Unity engine, for a Javascript and PixiJS framework |
44 |
| - |
45 |
| -* decrease the loading times produced by the Unity engine |
46 |
| - |
47 |
| -* maintaining its current features |
48 |
| - |
49 |
| -* integrate with current development tools (Online pddl Editor plugin) |
50 |
| - |
51 |
| -* develop a new plugin for Visual Studio Code |
52 |
| - |
53 |
| -<h1 id="2.0"> 2.0 Deployment </h1> |
54 |
| - |
55 |
| -## Overview |
56 |
| - |
57 |
| -Before building your development environment, you’ll need: |
58 |
| -A code editor |
59 |
| -VS Code is suggested. Download link |
60 |
| - |
61 |
| -Recommended extensions: Jest; GitLens;tslint; |
62 |
| - |
63 |
| -WebStorm is an alternative JavaScript IDE for frontend development. |
64 |
| - |
65 |
| -Git |
66 |
| -Check if you installed Git: |
67 |
| - |
68 |
| -``` |
69 |
| -git --version |
70 |
| -``` |
71 |
| -Please refer to https://docs.github.com/en/get-started/quickstart/set-up-git to see the installment and basic usage of Git. |
72 |
| - |
73 |
| -### Node |
74 |
| -Please follow the instructions and download Node.js to your system. https://nodejs.org/en/ |
75 |
| - |
76 |
| -Recommended version: 14.17.5. Npm is the package manager for the Node JavaScript It is already installed along with Node. |
77 |
| - |
78 |
| -Now you can check the versions: |
79 |
| -``` |
80 |
| -node -v |
81 |
| -v14.17.5 |
82 |
| -npm -v |
83 |
| -6.14.14 |
84 |
| -``` |
85 |
| - |
86 |
| -### Install yarn: |
87 |
| - |
88 |
| -``` |
89 |
| -npm install -g yarn |
90 |
| -``` |
91 |
| - |
92 |
| -### Building development environment: |
93 |
| -Clone the repository from GitHub: |
94 |
| -``` |
95 |
| -git clone https://github.com/visual-heuristics/frontend-js |
96 |
| -``` |
97 |
| -### It’s good if you could setup your username and email address for the repository, so the other team members will have a clear idea the contributors of branches and codes on GitHub. |
98 |
| - |
99 |
| -``` |
100 |
| -git config user.name "Mona Lisa" |
101 |
| -
|
102 |
| -git config user.email "[email protected]" |
103 |
| -``` |
104 |
| -## Install frontend development environment: |
105 |
| -In the current working directory to the local repository: |
106 |
| - |
107 |
| -Open the working directory with VS code, in the terminal: |
108 |
| -``` |
109 |
| -yarn //or “npm install” |
110 |
| -``` |
111 |
| -This command will automatically install all the packages you need in this project. |
112 |
| - |
113 |
| -### Run the project: |
| 7 | +## Docker Build |
| 8 | +- Under the root folder |
114 | 9 | ```
|
115 |
| -npm run start |
| 10 | +docker build -t planimation_js . |
| 11 | +docker run --name planimation_js_frontend -dp 8080:8080 planimation_js |
116 | 12 | ```
|
117 |
| -This will open a page on your browser, and you should see a jumping rabbit like this: |
118 |
| - |
| 13 | +Please make sure the docker port is same as the port number in nginx.conf. |
119 | 14 |
|
120 |
| - |
121 |
| -Now, the development environment is all set up! Start coding😊 |
| 15 | +- Test the web server is running by visiting `localhost:8080` in the browser. |
122 | 16 |
|
123 | 17 | ### Test your code:
|
124 | 18 | ```
|
125 | 19 | yarn test //or “npm test” or testing in Jest
|
126 | 20 | ./node_modules/.bin/cypress open // for testing in Cypress
|
127 | 21 | ```
|
128 |
| -Open the link in your browser, and you should see a visualisation of block world . |
129 | 22 |
|
130 |
| -### Deployment with Docker |
131 |
| -``` |
132 |
| -docker build -t planimation_js . |
133 |
| -docker run --name planimation_js_frontend -dp 8080:8080 planimation_js |
134 |
| -``` |
135 |
| -Map TCP port 8080 in the container to port 8080 on the Docker host. Please make |
136 |
| -sure the docker port is same as the port number in nginx.conf. |
| 23 | +## Contribution |
137 | 24 |
|
138 |
| -<h1 id="3.0"> 3.0 Development Environment</h1> |
| 25 | +When contributing to this repository, please adhere to the below guidelines. |
139 | 26 |
|
140 |
| -### Technical Environment |
| 27 | +### Create an issue |
141 | 28 |
|
142 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Technical+Environment |
| 29 | +- Before pushing code to the repo, it is required to [create an issue](https://github.com/planimation/frontend/issues) along with a brief description so that peer developers can review, provide suggestions and feedback. |
| 30 | +- Create a new issue to obtain `ISSUE_NO`. |
143 | 31 |
|
144 |
| -### Non-technical Environment |
| 32 | +### Pre-push changes |
145 | 33 |
|
146 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Non-technical+Environment |
| 34 | +Before pushing the code to repo please make sure to: |
147 | 35 |
|
148 |
| -### Development Environment Setup |
| 36 | +1. Update the `README.md` with details of changes to the interface, this includes the new environment |
| 37 | + variables, exposed ports, useful file locations and container parameters, if any. |
| 38 | +2. Increase the version numbers in any examples files and the README.md to the new version if any. |
| 39 | +3. The version number scheme, we follow [SemVer](http://semver.org/). |
149 | 40 |
|
150 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Development+Environment+Setup |
| 41 | +### Commit message format |
151 | 42 |
|
| 43 | +- Set the commit template as follows: |
| 44 | + ``` |
| 45 | + git config user.name "Your Full Name" |
| 46 | + git config user.name "Your GitHut email" |
| 47 | + git config commit.template .gitmessage |
| 48 | + ``` |
| 49 | +- Commit message should be of the following format `[ISSUE_NO] COMMIT_MESSAGE`. Refer [`.gitmessage`](.gitmessage). Example: |
| 50 | + ``` |
| 51 | + [10] Fix security issue related with form |
| 52 | + |
| 53 | + * Updated lib dependency version |
| 54 | + * Fixed something |
| 55 | + * Fixed other thing |
| 56 | + |
| 57 | + Resolves #10 |
| 58 | + ``` |
152 | 59 |
|
153 |
| -<h1 id="4.0"> 4.0 Using the system </h1> |
| 60 | +### Pull Request and peer code review process |
154 | 61 |
|
155 |
| -## 4.1. Project Homepage: |
| 62 | +**Please note that you cannot push directly to `develop` nor `master` branches.** |
156 | 63 |
|
157 |
| -In coordinator homepage: Shows the four sections of the project. |
158 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Design+Notebook |
159 |
| - |
160 |
| -### 4.1.1 Go to PDDL file upload page |
161 |
| - |
162 |
| -Go to the first page to generate visualisation using PDDL files. |
163 |
| - |
164 |
| -### 4.1.2 Go to VFG file upload page |
165 |
| - |
166 |
| -Go to the second page to generate visualisation using VFG files. |
167 |
| - |
168 |
| -### 4.1.3 Check document for the project |
169 |
| - |
170 |
| -Check the documentation for Planimation |
171 |
| - |
172 |
| -### 4.1.4 Check demo video for the project |
173 |
| - |
174 |
| -Check the Demo Video for Planimation |
175 |
| - |
176 |
| - |
177 |
| -## 4.2. PDDL file upload page |
178 |
| - |
179 |
| -On this page, you need to upload 3 PDDL file to the PDDL editor server, and it will lead you to the visualization page with a generated vfg file. |
180 |
| - |
181 |
| -## 4.3. VFG file upload page |
182 |
| - |
183 |
| -On this page, you need to upload a single vfg file for animation generating. It will lead you to the visualization page once your .vfg file is accepted. |
184 |
| - |
185 |
| -## 4.4. Document Page |
186 |
| - |
187 |
| -On document page, you can access the resources for how to use planimation and how to deploy it on your computer. |
188 |
| - |
189 |
| -## 4.5. Demo Page |
190 |
| - |
191 |
| -In the demo page we have a youtube video which would teach you how does planimation works and how we deployed it. |
192 |
| - |
193 |
| -## 4.6. Visualization Page |
194 |
| - |
195 |
| -This is the main functionality page for the project. It will show the animation generated from the VFG file on pages 1 and page 2. On this page, your could de the following operation. |
196 |
| - |
197 |
| -### 4.6.1 Check the stage list on the left side of the page |
198 |
| -On the left, you will see a list of all the stages for this problem. And you can check the visualization for this stage by clicking on it. |
199 |
| - |
200 |
| -### 4.6.2 Check the subgoal list on the right side of the page |
201 |
| -On the right, you will see a list of all the subgoal conditions for this problem. And you can check the visualization for the condition where this sub goal is satisfied by clicking on that step. |
202 |
| - |
203 |
| -### 4.6.3 Operation on visualization |
204 |
| -In the middle of the page, you will see the visualization sections which will look different depends on your problem. By clicking on the control button in this section, you can easily pause, play, reset, speed up, slow down and move to the pre/next step. |
205 |
| - |
206 |
| - |
207 |
| -<h1 id="5.0"> 5.0 Architecture and Design </h1> |
208 |
| - |
209 |
| -### Architecture Model |
210 |
| - |
211 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Architecture |
212 |
| - |
213 |
| -### Prototype Design and Interactive Diagram |
214 |
| - |
215 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Prototype+Design+and+Interactive+Diagram |
216 |
| - |
217 |
| -### System Architecture Diagram |
218 |
| - |
219 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/System+Architecture+Diagram |
220 |
| - |
221 |
| -### Design Notebook |
222 |
| - |
223 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Design+Notebook |
224 |
| - |
225 |
| -### Operational Concept Documents |
226 |
| - |
227 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Operational+Concept+Documents |
228 |
| - |
229 |
| - |
230 |
| -### Directory structure and key files and components |
231 |
| - |
232 |
| -https://confluence.cis.unimelb.edu.au:8443/display/VH/Developer+Information+Frontend |
233 |
| - |
234 |
| - |
235 |
| -<h1 id="6.0"> 6.0 Change Log </h1> |
236 |
| - |
237 |
| - |
238 |
| -### 19/08/2021 |
239 |
| -* Fork from original repository, initial commits |
240 |
| - |
241 |
| -### 22/08/2021 |
242 |
| -* Init react framework |
243 |
| - |
244 |
| -### 23/08/2021 |
245 |
| -* Update Jest |
246 |
| - |
247 |
| -### 25/08/2021 |
248 |
| -* Update .travis.yml; Add template |
249 |
| - |
250 |
| -### 06/09/2021 |
251 |
| -* Updated global styles |
252 |
| - |
253 |
| -### 11/09/2021 |
254 |
| -* Add drag&drop function |
255 |
| -* Animation bugs fixed |
256 |
| - |
257 |
| -### 15/09/2021 |
258 |
| -* Add animation playing/pausing function |
259 |
| - |
260 |
| -### 18/09/2021 |
261 |
| -* Updated Confluence |
262 |
| - |
263 |
| -### 26/09/2021 |
264 |
| -* Added speed control for animation |
265 |
| - |
266 |
| -### 01/10/2021 |
267 |
| -* Added function of reading vfg file |
268 |
| - |
269 |
| -### 03/10/2021 |
270 |
| -* Interact with backend |
271 |
| - |
272 |
| -### 06/10/2021 |
273 |
| -* Added export file function |
274 |
| - |
275 |
| -### 13/10/2021 |
276 |
| -* Updated Animation display |
277 |
| - |
278 |
| -### 20/10/2021 |
279 |
| -* Modified styles for pages |
280 |
| - |
281 |
| -### 21/10/2021 |
282 |
| -* Updated tests |
283 |
| - |
284 |
| -<h1 id="7.0"> 7.0 Demo</h1> |
285 |
| - |
286 |
| -https://morning-ridge-78538.herokuapp.com/ |
| 64 | +- Create a new branch and push the changes to this branch. |
| 65 | +- Create a PR and add at least one peer reviewer. |
| 66 | +- You may merge your branch to `develop` once your PR is approved by your peer reviewer. |
| 67 | +- If you do not have permission to merge the PR, please contact the reviewer to merge it for you. |
0 commit comments