in your browser.
This project comes packaged with several convenience commands
npm run dev: Creates a local development server, and serves your files over it. When a local file is changed your project will be rebuilt incrementally and the new code injected into your web browser.
npm run unit: Runs all unit tests for the project. They are located under ./test/unit/spec/
npm run e2e: Runs all integration tests for the project. They are located under ./test/e2e/spec/. The current webdriver used is PhantomJS (runs headlessly). It is installed locally as part of npm install.
npm run test: Runs all unit tests and e2e tests. It is the same as running both npm run unit and npm run e2e.
Helpful Development Tools
The Chrome Console666https://developers.google.com/web/tools/chrome-devtools/console/ allows you to inspect your application at runtime. All errors will also be reported to this console which allows for easy issue identification. The console also has a debugger, which is very useful for inspecting code to make sure it behaves correctly. The Vue Devtools777https://github.com/vuejs/vue-devtools allows inspection of Vue components.
6.2.4 Production Configuration
Typically, a RiPPLE client in production mode will connect to a Production RiPPLE Server, which needs to be manually configured. You will need to initialize your .env.prod environment file to production values. An example environment file is provided in the repository, but the defaults are not suitable for a production application. Once your environment file has been created and your dependencies installed you will be able to build your application. The key commands for building is npm run test and then npm run build, which builds your application and places it into the dist directory. This directory is on the .gitignore, so any changes to it will not be committed to the project.
Once you have built your application, you will need to serve it via an actual webserver. This is most commonly done by placing it into /var/www/htdocs/ of a machine configured to run nginx888https://nginx.org/en/.
This GitHub project is configured to serve the docs directory of the master branch on demo page999https://hkhosrav.github.io/RiPPLE-Core/#/. You should therefore remember to copy the result of ./dist into ./docs before a merge into master to ensure that the latest version is being served via GitHub.
7 Implementation Details of the RiPPLE Server
This section provides information on the implementation of the RiPPLE Sever. Further details can be found on the Wiki101010https://github.com/hkhosrav/RiPPLE-Core/wiki page of the project on GitHub.
The RiPPLE server is a Django111111https://www.djangoproject.com/ application running on Python. Its primary purpose is to provide a data gateway to user information, authentication through LTI, and personalised recommendations for the student competency
7.1 Source Code Conventions and Overview of the RiPPLE Server
The RiPPLE server follows several conventions to ensure the scalability and managability of the software. Notably, it follows the Service and Repository, as well as Django-community favoured patterns to ensure development consistency and reduce code duplication. It includes the following folders:
The project root only contains project-specific files which are used for getting started in the project. This includes things like dependencies, licensing, and a production deployment scripts
The src directory contains source files for the application. You will spend lots of time in this directory. It follows the Django Project Structure, and should contain environment files and Django bootstrap files (such as manage.py).
The ripple directory contains the core application configuration. This directory contains files important configuration files such as settings.py, urls.py which are necessary to tie different apps together.
The src directory contains many subfolders, each of which is refereed to as a Django App121212https://docs.djangoproject.com/en/1.11/intro/tutorial01/#creating-the-polls-app. To quote from Django: ”What’s the difference be