• Stars
    star
    320
  • Rank 131,126 (Top 3 %)
  • Language
    JavaScript
  • Created almost 11 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A suite of examples written for Sails.js, AngularJS, and Twitter Bootstrap

sailsjs-angularjs-bootstrap-example

A suite of examples written for Sails.js, AngularJS, and Twitter Bootstrap.

No Maintenance Intended

#Notice The master branch is currently using an older Sails 0.10 version. For a work-in-progress Sails 0.11 version, please see @nickdiego's sails-0.11 branch (PR #27).

Contents:

  • A REST API test page using Sails' transport agnostic routing (HTTP vs. Socket.io)
  • A "Todo List" app demo using Sails' Socket.io messaging and REST Blueprints
  • Passport middleware authentication integrated with Sails policies.
  • Twitter Bootstrap / Font Awesome custom LESS compiles (Grunt)
  • Cache busting JS/CSS for production (Grunt)

If there other examples you would like to see, feel free to create a GitHub issue.

Screenshots

APITestScreenshot

TodoAppScreenshot

LoginPageScreenshot

Notes

(as of May 5, 2014)

Updated to latest Sails.js version 0.9.16 and added some fixes for error handling.

The config/500.js file has changed to include a 4th parameter to notify express' middleware that it is an error handler. Several jade files have also been edited to remove the !!! deprecated doctype. This fixes the html views for 404 and 500 error pages, as well as the oddity I had seen in January with 500 errors on the API test page. The 403 forbidden errors are still inconsistent between HTTP and Socket modes (???).

(as of Jan 7, 2014)

Be wary, this repo has been quickly hacked together as a Sails.js/AngularJS learning project. Do not consider it as production-ready code.

REST API example page (see assets/linker/js/controllers/restCtrl.js)

This API test page was primarily made to exercise the error handling of REST calls between HTTP and Socket modes (404, 403, 500 errors). I am currently seeing some odd behavior when throwing 500 application errors, and when 403 forbidden errors are triggered from policy configurations. The results are not consistent between modes. More research is needed.

Todo List app demo (see assets/linker/js/controllers/todoCtrl.js)

This demo was written to explore how the socket.io connection, comet messages, and auto-subscriptions work in Sails. The AngularJS TodoMVC examples were used a bit for reference. The Sails socket.io code, which is provided during creation of a new Sails project, was refactored into an Angular service (see assets/linker/js/angular-sails.io.js). It contains custom retry logic that first sends a $http.get() request to the server for obtaining the security token cookie, otherwise you may encounter the 500 error: "handshake error" when restarting your local server (See bottom of: FAQ).

If you stop the server or cause a network disconnect when on the example pages, you should see some alert modals pop up. These are managed by SailsSocketCtrl (see assets/linker/js/controllers/sailsSocketCtrl.js) for reuse across examples.

Passport Integration

Credit goes to this gist and its many forks.

You can log in using the dummy user/pass: test/test123.

Here are the files that were touched:

api/controllers/PassportAuthController.js
api/models/User.js
api/policies/isPassportAuthenticated.js
config/bootstrap.js
config/express.js
config/policies.js
config/routes.js
views/passportauth/login.jade
views/passportauth/protected.jade

Grunt changes

The Sails.js asset grunt tasks have been reconfigured to allow Twitter Bootstrap and Font Awesome custom compiles (see /assets/linker/styles/*.less). The grunt copy task has also been reconfigured to include other Bower-managed client-side libraries.

You may also like...

sailsCasts : A great series of screencasts showing you how to use Sails.js.

The levid/angular-sails-socketio-mongo-demo repo may also be of interest for Sails v0.8 users.

Maarten de Boer is working on a Sails v0.10 and AngularJS tutorial: maartendb/angular-sails-scrum-tutorial

Utilizes...

Requirements

Node v0.10.x (brcypt is failing to compile in v0.12 at the moment)

Installation

Ensure that sails and bower are installed:

sudo npm -g install sails bower

Clone this repo:

git clone https://github.com/cgmartin/sailsjs-angularjs-bootstrap-example.git

Run npm and bower to install all dependencies:

cd sailsjs-angularjs-bootstrap-example
npm install ; bower install

Lift the server:

sails lift

And then visit (http://localhost:1337/) to run the examples.

License

MIT License Copyright Β© 2014 Christopher Martin

More Repositories

1

ZF2FileUploadExamples

Form file upload examples for Zend Framework 2
PHP
78
star
2

clj-wamp

WebSocket Application Messaging Protocol (WAMP) for Clojure and HTTP Kit
Clojure
54
star
3

CgmConfigAdmin

ZF2 module for easy administration of application settings
PHP
27
star
4

iTunes-Library-Network-Graph

Python
22
star
5

ReadingBuddies

SPA and REST API demo that aggregates the book reviews of multiple Goodreads users
JavaScript
22
star
6

envhandlebars

Substitutes environment variables in Handlebars templates, useful for configuration files in Docker
JavaScript
16
star
7

express-api-server

An opinionated Express Web API server library
JavaScript
15
star
8

clj-wamp-example

Example Clojure WebSockets project using clj-wamp and HTTP Kit
JavaScript
11
star
9

ZF2TipMe

ZF2 module for accepting tips/donations with Stripe
PHP
6
star
10

custom-vera-skill

UNOFFICIAL Alexa Smart Home v3 skill for Veraβ„’ Controllers.
JavaScript
6
star
11

angular-spa-browserify-example

Demo using Browserify in a client-side Angular single page application
JavaScript
5
star
12

angular-spa-typescript-example

Demo using TypeScript in a client-side Angular single page application
TypeScript
3
star
13

spa-express-static-server

Express static server library for AngularJS SPA clients
JavaScript
2
star
14

cgmartin.github.com

1
star
15

SimpleMemoryShared

ZF2 module v1.3 - Provide a manager to share simply memory, short or long message with Memcached, Segment memory, file system, etc. - This module can be used with my ForkManager
PHP
1
star
16

angular-spa-browserify-example-docker

Orchestration of angular-spa-browserify-example services via docker-compose, haproxy, consul, and registrator
Shell
1
star
17

angular-spa-browserify-example-webapi

Demo REST API service for use with the angular-spa-browserify-example client
JavaScript
1
star