Final task for course "Software Systems Engineering" during my Master's degree at University of Bologna, carried out together with my colleague Marco Boschi using the agile development framework SCRUM.
(A.Y. 2017-2018)
Install the two QActor plug-ins for Eclipse provided by the professor, Gradle and Node.js, then install MongoDB and Mosquitto via HomeBrew by using:
brew install mosquitto
brew install mongodbCreate an Eclipse workspace inside the root of this repository and import the projects it.unibo.finaltask and it.unibo.frontend. Open a terminal inside the it.unibo.finaltask folder and execute:
gradle -b build_ctxFinalSysAnalysis.gradle eclipseMore than one execution of this command may be necessary, in that case open the Build Path configuration and make sure no folders are duplicated. Open the Build Path configuration of it.unibo.frontend and delete all folders from the Source tab. At this point Eclipse should not display any error (some warnings only).
To easily start the many servers, create aliases by appending these lines to the ~/.bash_profile file:
alias mosquitto='/usr/local/opt/mosquitto/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf'
alias mongodb='mongod --dbpath "/my/custom/path/to/mongodb"'For the second one, make sure to create a folder at the given path.
Install all packages required by Node.js inside folders it.unibo.frontend/nodeCode/frontend, VirtualRobotJS/WebGLScene and VirtualRobotJS/server by using, in each of these, the following command:
npm installFrameworks required to work with MQTT are available via CocoaPods, after install CocoaPods itself, download them by executing inside iss2018 folder the following command:
pod installTesting is limited to a single part of the project. See it.unibo.finaltask.testing for setup details.
- Start (in any order)
- Mosquitto with the alias
mosquitto - The virtual robot with
startRobot.sh - MongoDB with the alias
mongodb - The frontend server with
startFrontEnd.sh
- Mosquitto with the alias
- Start hardware mocks with
ISS 2018 – Mock.app - Start the QActor application by launching the class
it.unibo.ctxfinalSysAnalysisinsrc-geninsideit.unibo.finaltaskproject
It is now possible to view the virtual robot at http://localhost:8081 and the frontend at http://localhost:3000. By reloading the virtual robot page, the initial scene will be reset (file VirtualRobotJS/WebGLScene/sceneConfig.js). If the application was not in the auto-cleaning phase when the scene has been reloaded, the QActors have automatically reconfigured themselves the restart at the sending of a new Start command.
Make sure Eclipse doesn't change the .gitignore files by deleting the line .classpath: the .classpath files must NOT be committed since they contain the Build Path configuration, so they have to be configured as specified above. If Eclipse suggests this change in .gitignore, restore the file to the previous version.