Giter Club home page Giter Club logo

ares-project's Introduction

Ares 2 Overview

Ares 2 is a browser-based code editor and UI designer for developing Enyo 2 applications. Although Ares is still a work in progress, we have reached the point where we are opening the repo and will do further development in the open, so we encourage you to follow our progress and give us feedback as we push Ares forward.

Basic architecture

The Ares project architecture is divided into several main pieces:

  • Ares - The front-end designer/editor web application, with the following main components:
    • Harmonia - File system layer, communicating with the server-side Hermes components.
    • Phobos - Document management
    • Deimos - Visual designer
  • Hermes Components - Pluggable server-side components that provide interfaces to Ares clients for cloud-based services such as file storage and build services. We're leveraging node.js, but Hermes components can use any server-side tech.

Current status

Here are the main features you can start looking at today:

  • De-centralized file storage
    • Ares currently connects to a filesystem component, to edit local files (via the fsLocal Hermes service). Ares can also be configured to use a per-user Dropbox account (via the fsDropbox Hermes service) as file storage. See below for more details.
    • Key goals with this approach are to avoid forcing users to store files and/or credentials on Ares servers and allow freedom to choose the preferred storage location, whether cloud or local.
  • Code editor
    • Ares integrates the Ace (Cloud9) code editor for code editing
  • Code intelligence
    • Upon opening/editing a JavaScript file, Ares will parse the file and display a semantic outline of the code in the right-hand panel (for purposes of demonstrating parser)
    • Code completion using symbols from:
      • the current project
      • the Enyo version that comes with Ares
      • the libraries included in the project
    • In the future, this will be used for advanced features context-sensitive documentation, etc.
  • UI designer for drag and drop UI editing
    • Component definitions are round-tripped from the Editor to the Designer, meaning that changes made in one will immediately appear in the other.
  • Integration with PhoneGap online build

Future plans

The following features are in the works, and you should see them added as we move forward:

  • Code completion and context-sensitive documentation
  • Additional Hermes components to extend the local and cloud file storage options: We plan to add Hermes components for FTP, Box.net and more
  • Improvements to the Designer component for greater ease of use
  • ... and more!

Note: An up-to-date view of the ongoing activities is available from The ARES JIRA, itself available from the EnyoJS JIRA.

Setup

There is not yet a packaged (installable) version of Ares or a publicly hosted version. You need to get the source, using the procedure below.

####Install Node.js 0.8 or later#### Preferably from the Official Download Page.

####Install git (or a graphical git client)#### See the Github.com help for hints

####Clone the ares-project repository from GitHub#### Using git, clone the repository using either the HTTPS or SSH urls (depending on how you have setup Git):

$ git clone --recursive https://github.com/enyojs/ares-project.git

or

$ git clone --recursive [email protected]:enyojs/ares-project.git

If you are using a graphical Git client, there may or may not be a way to update the submodules from the GUI. If not, then use the commands above.

Run

Start the IDE server: (e.g. using the Command Prompt, navigate to the ares directory and type 'node ide.js')

C:\Users\johndoe\GIT\ares-project> node ide.js

Get more information about the options using -h or --help:

$ node ide.js --help

Ares IDE, a front-end designer/editor web applications.
Usage: "node ./ide.js" [OPTIONS]

Options:
  -h, --help     help message                                                              [boolean]
  -T, --runtest  Run the non-regression test suite                                         [boolean]
  -b, --browser  Open the default browser on the Ares URL                                  [boolean]
  -p, --port     port (o) local IP port of the express server (default: 9009, 0: dynamic)  [default: "9009"]
  -H, --host     host to bind the express server onto (default: 127.0.0.1)                 [default: "127.0.0.1"]

Optionally, configure the root of your local file-system access in ide.json. By default, the local filesystem service serves the files from your Home or My Documents directory, depending on your operating system. You might want to change this to point to the location of your project files, to make navigation faster & easier.

For instance, you can change @HOME@ to @HOME@/Documents or to D:\\Users\\User (if using backslashes [i.e. on Windows], use double slashes for JSON encoding)

% vi ide.json
[...]
"command":"@NODE@", "params":[
	"hermes/fsLocal.js", "-P", "/files", "-p", "0", "@HOME@"
],
[...]

PhoneGap Build

Ares includes the ability to package a mobile Enyo application using PhoneGap Build. You must have a properly setup account (with signing keys & distribution certificates) before being able to use Ares to build applications using Phone.

Here are a few references to create the necessary signing keys & distribution certificates:

  1. Android Application Signing

Dropbox

In order to use Dropbox as storage service for Ares, follow detailed setup instructions in hermes/README.md. The Dropbox connector is not usable without following those instructions.

Testing

For all contributions on Ares project and before commit, please execute the available Ares Test Suite. See this page for more details.

ares-project's People

Contributors

yves-del-medico avatar marian-debonis avatar mbessey avatar dod38fr avatar dfreedm avatar whatfield73 avatar micro-tech avatar kevinpschaaf avatar martinh-open avatar webos101 avatar

Watchers

cream avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.