Creating The Application
Installing the Xing Framework rubygem
We'll start by installing xing-framework. Make sure you're using a compatible version of Ruby (we prefer >= 2.2).
RVM USERS NOTE: If you use RVM's gemset feature, you can invoke xing new with the flag --with-gemset so xing will create .ruby-gemset files with the same name as your application. If you're doing that, you might also want to create the gemset before you even install the xing-framework gem, switch to it, and install xing-framework there so everything is in a single set. If you're not using gemsets, don't worry about it.
RBENV USERS NOTE: If you are using rbenv, you will need to run rbenv rehash AFTER installing xing-framework.
Generating the application
$ gem install xing-framework --pre
Fetching: xing-framework-1.0.0.pre.beta.gem (100%)
Welcome to the exciting new world of Xing web development!
Successfully installed xing-framework-1.0.0.pre.beta
1 gem installed
Let's create a new Xing project! CAUTION: the xing new will automatically generate directories and bundle a lot of gems. If you're worried about a tool automatically installing gems on your system, you should read ahead or practice on an isolated system.
$ xing new crowdfundr
# OR if using rvm with gemsets:
$ xing new --with-gemset crowdfundr
This command should take a few minutes to run. It will generate a blank application in a subdirectory called crowdfundr, change to it, and proceed to install the rubygems and npm modules necessary to support Xing development.
When you run xing new, you'll be asked whether you want to add a Code of Conduct to your project. If you don't want one, just say no. If you're curious why you might want to add a Code of Conduct to your project, you can read more about them here.
Your empty application
Let's take a quick look at the files that were created.
$ cd crowdfundr
$ ls -la
total 120
drwxr-xr-x 22 you staff 748 Jan 13 16:59 .
drwxr-xr-x 7 you staff 238 Jan 13 15:36 ..
-rw-r--r-- 1 you staff 11 Jan 13 15:41 .ruby-gemset
-rw-r--r-- 1 you staff 6 Jan 13 16:58 .ruby-version
-rw-r--r-- 1 you staff 4987 Jan 13 15:35 CHANGELOG.md
-rw-r--r-- 1 you staff 798 Jan 13 15:35 Capfile
-rw-r--r-- 1 you staff 136 Jan 13 15:35 Gemfile
-rw-r--r-- 1 you staff 3704 Jan 13 15:35 Gemfile.lock
-rw-r--r-- 1 you staff 1421 Jan 13 15:35 README.md
-rw-r--r-- 1 you staff 647 Jan 13 15:35 Rakefile
drwxr-xr-x 19 you staff 646 Jan 13 16:58 backend
-rw-r--r-- 1 you staff 181 Jan 13 15:35 codeclimate.yml
drwxr-xr-x 5 you staff 170 Jan 13 15:35 config
drwxr-xr-x 5 you staff 170 Jan 13 15:35 doc
-rw-r--r-- 1 you staff 232 Jan 13 15:35 dump.rdb
-rw-r--r-- 1 you staff 561 Jan 13 15:35 example-lrd-dev-tmux.conf
drwxr-xr-x 20 you staff 680 Jan 13 16:59 frontend
drwxr-xr-x 3 you staff 102 Jan 13 15:35 lib
-rw-r--r-- 1 you staff 121 Jan 13 15:35 static-app.ru
-rwxr-xr-x 1 you staff 2041 Jan 13 15:35 tmux-windows
-rw-r--r-- 1 you staff 2078 Jan 13 15:35 tmux-windows.txt
The most important subdirectories to notice for now are:
- frontend, which contains the AngularJS frontend code
- backend, which contains the Rails API backend code