{"id":18438429,"url":"https://github.com/roboconf/roboconf-web-administration","last_synced_at":"2025-10-18T16:23:35.967Z","repository":{"id":15103366,"uuid":"17830147","full_name":"roboconf/roboconf-web-administration","owner":"roboconf","description":"A web application to manage Roboconf applications","archived":false,"fork":false,"pushed_at":"2022-05-05T13:39:10.000Z","size":1390,"stargazers_count":3,"open_issues_count":4,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2023-08-13T03:10:31.575Z","etag":null,"topics":["angular-js","angular-translate","angularjs","gulp","javascript","js","roboconf"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"holman/dotfiles","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roboconf.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-17T14:09:12.000Z","updated_at":"2022-05-05T13:39:14.000Z","dependencies_parsed_at":"2022-08-29T01:11:39.220Z","dependency_job_id":null,"html_url":"https://github.com/roboconf/roboconf-web-administration","commit_stats":null,"previous_names":[],"tags_count":11,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roboconf%2Froboconf-web-administration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roboconf%2Froboconf-web-administration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roboconf%2Froboconf-web-administration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roboconf%2Froboconf-web-administration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roboconf","download_url":"https://codeload.github.com/roboconf/roboconf-web-administration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247726380,"owners_count":20985883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular-js","angular-translate","angularjs","gulp","javascript","js","roboconf"],"created_at":"2024-11-06T06:19:49.034Z","updated_at":"2025-10-18T16:23:35.895Z","avatar_url":"https://github.com/roboconf.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Roboconf Web Administration\n[![Build Status](http://travis-ci.org/roboconf/roboconf-web-administration.png?branch=master)](http://travis-ci.org/roboconf/roboconf-web-administration)\n[![License](https://img.shields.io/hexpm/l/plug.svg)](http://www.apache.org/licenses/LICENSE-2.0)\n[![Join us on Gitter.im](https://img.shields.io/badge/gitter-join%20chat-brightgreen.svg)](https://gitter.im/roboconf/roboconf)\n[![Web site](https://img.shields.io/badge/website-roboconf.github.io-b23e4b.svg)](https://roboconf.github.io)\n\nA web application to interact with Roboconf's Deployment Manager.  \nUser documentation can be found on Roboconf's web site.\n\n\u003cimg src=\"https://roboconf.github.io/resources/img/web-admin-0.4-app-listing.png\" alt=\"Roboconf Web Administration Overview\" width=\"600\" /\u003e\n\n\u003chr /\u003e\n\n\u003cimg src=\"https://roboconf.github.io/resources/img/nn-0.4-web-admin-instance-state.png\" alt=\"Instances\" width=\"600\" /\u003e\n\n\u003chr /\u003e\n\n\u003cimg src=\"https://roboconf.github.io/resources/img/nn-0.5-deployment-target-associations.png\" alt=\"Deployment Targets\" width=\"600\" /\u003e\n\n\u003chr /\u003e\n\n\u003cimg src=\"https://roboconf.github.io/resources/img/nn-0.7-scheduling-for-commands.jpg\" alt=\"Scheduling jobs...\" width=\"600\" /\u003e\n\n\n## Developer Guide\n\nGeneral guidelines about Roboconf's development are described on the web site.  \nThis read-me only lists specific items for the web console and Javascript development.\n\nYou need [NPM](https://www.npmjs.com/) installed on your machine.  \nThe primary thing to do is to execute...\n\n```\nsudo npm install\nnpm install\n```\n\nLike Maven, this will download the required Javascript libraries.  \nWe then use another tool called [Gulp](http://gulpjs.com/) to manage build actions. You should not have to install it,\nit was downloaded by **npm**.\n\n\n## Quick Start\n\nOnce NPM and the project's dependencies have been installed, open a command line interface\nin the project, type in **gulp watch-dev** and open [http://localhost:8000](http://localhost:8000)\nin your web browser.\n\n\n## Custom Server URL\n\nThe web administration invokes the DM's REST API.  \nWith released versions of Roboconf, the location of the REST API is deduced from the\nserver. However, in development mode, it often happens that we have the DM running on one side\n(available at [http://localhost:8181/roboconf-dm](http://localhost:8181/roboconf-dm)) and the\nweb administration running from another location ([http://localhost:8000](http://localhost:8000)).\n\nTo be able to use a real DM in development mode, follow this procedure.\n\n1. In the project, create the **target/dev.config** directory.\n2. Create a JS file in it, e.g. **roboconf.dev.configuration.js**.\n3. Copy the following content in this file.\n\n```javascript\n'use strict';\n\nangular.module('roboconf.preferences')\n.constant('ROBOCONF_SERVER_URL', 'http://localhost:8181/roboconf-dm');\n```\n\n4. Update, if necessary, the server URL.\n\n\u003e Notice that this file will be used for the Gulp **dev** and **dist** tasks.  \n\u003e However, an error will be thrown with the **embed** task if this directory exists.  \n\u003e This file is only here for development, not for building.\n\n5. Since Roboconf 0.8, you will also have to enable CORS on the DM's side.  \nJust edit the **etc/net.roboconf.dm.rest.services.configuration.cfg** file.\n\n\n## Gulp Tasks\n\nThis section lists the Gulp tasks you can use.  \nTo use them, simply type them in your shell. Use...\n\n**Checks**\n\n* **gulp lint** to verify quality rules in the JS scripts.\n* **gulp test** to run unit tests with Mocha (coverage report under **target/coverage**).\n* **gulp check_i18n** verifies the internationalization.\n\n**Development**\n\n* **gulp watch-dev** to develop and test the application locally (http://localhost:8000).\n* **gulp watch-dist** to test the distribution locally (http://localhost:8000).\n* **gulp clean-dev** to delete the generated content in the **dev** directory (it preserves Bower dependencies).\n* **gulp clean-dist** to delete the **dist** directory.\n* **gulp clean** combines **gulp clean-dist** and **gulp clean-dev**.\n\n**Distributions**\n\n* **gulp dist** to create the final distribution (minimal dependencies, minification, etc).\n* **gulp embed** to create a minimal distribution, without running tests or quality checks.\n\nOther tasks do not aim at being invoked manually.\n\nAbout the way these tasks were implemented, they were done this way because most of\nthe Roboconf team is familiar with Maven and Java development but not with Javascript.\nSo, to work similarly to Maven, we created a **target** directory (ignored by Git).\nHere is how it is organized.\n\n* **target/dependencies**: the Bower dependencies (or dependencies for the front-end).\n* **target/dev**: the development directory, with non-minified files but with a clear structure.\n* **target/dist**: the distribution directory, with minified files and another structure.\n* **target/coverage**: the directory with coverage reports after the unit tests were run.\n* **target/dev.config**: optional directory to create by hand and to store custom settings for development.\n\n\u003e **target/dist** is the thing to embed in Roboconf distributions.\n\n\n## Files Description\n\nThe following files are used at some moment during development or build phases.\n\n* **gulpfile.js**: the file that controls the build tasks.\n* **package.json**: the NPM configuration (package identification and DEV dependencies management).\n* **bower.json**: the Bower configuration (package identification and **Front-End** dependencies management).\n* **.bowerrc**: additional configuration for Bower.\n* **.jshintrc**: configuration for JS Hint (code quality).\n* **karma.conf.js**: the configuration for Karma, the tool that runs tests.\n* **.gitignore**: the usual file to list the files Git should not manage.\n* **node_modules**: the Javascript modules used for the build, tests and server tasks (no front-end).\n* **src**: the sources directory of our application.\n* **tests**: the tests directory for our application.\n* **.travis.yml**: the file that configures the build on Travis CI.\n\nThe following files are mainly for documentation.\n\n* **readme.md**: the main documentation for this project.\n* **NOTICE**: copyright mentions. \n* **LICENSE-2.0.txt**: the terms of the Apache license v2.\n\n\n## Testing Policy\n\nThis web applications comes with tests.  \nUnit tests run with [Mocha](http://mochajs.org/) and [Chai](http://chaijs.com/). Mainly services are tested unitly.  \n\nTo run unit tests, either use...\n\n\tgulp unit-tests\n\n... or use...\n\n\tkarma start --single-run\n\nGulp is the build tool.  \nIt runs Karma to run tests during the build chain. So, you can use both of them.\n\n\n## Code organization\n\nUnder **src**, the code is organized in functional modules.  \nSuch a module contains all the JS scripts and HTML templates for a given feature (applications templates,\npreferences, etc).\n\nUnder **target/dev**, we group things according to their type.  \nAll the JS files go under **js**. All the HTML templates go under **templates**. Notice that Gulp injects\nall the JS and CSS scripts automatically in the index.html file.\n\nUnder **target/dist**, we group things differently.  \nBower dependencies are filtered and copied under **lib**. All the application's JS scripts\nare merged into **roboconf.min.js**. And the CSS as well as the index files are minified too.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froboconf%2Froboconf-web-administration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froboconf%2Froboconf-web-administration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froboconf%2Froboconf-web-administration/lists"}