Skip to content

Instantly share code, notes, and snippets.

@facultymatt
Last active December 20, 2015 10:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save facultymatt/6113763 to your computer and use it in GitHub Desktop.
Save facultymatt/6113763 to your computer and use it in GitHub Desktop.
MEAN stack research

Current Strategy

We are attempting to find an existing Node / Mongoose / Express seed as an API starting point for our MEAN projects. We love and have come accustomed to the Genesis Skeleton framework workflow, but it lacks a flexiable API server. Ideally we could incorporate the two and cteate a master starter seed!

Findings:

https://github.com/linnovate/mean/

In a nutshell MEAN stack starting seed for projects. Modular so it should be easy to add functionality.

Pros

  • Modular development pattern
  • Email system looks promosing, (but there is no concrete example.)
  • Active development
  • Auth is super clear, since its done in-line with each route. ie: app.post('/apples', isLoggedIn(), isAdmin(), apples.create())

Cons

  • No generic routing (although one could easily write this?)
  • No email example
  • No permissions / groups module

https://github.com/balderdashy/sails/

In a nutshell Flexiable and dynamic API. You only need to start sails and it will serve data. Can be configured more in depth with routes, schema, etc.

Pros

  • Flexiable routing and controllers
  • Supports middlewear for extended functionality
  • Active development, RC1 is out now
  • Designed to work with Socket.io

Cons

  • Sinces its a "framework" we can only customize within limited ways. ie: we must use their validation, scheme decleation, etc.
  • No support for relationhips (it is planned though)
  • harder to integrate with products since it starts its own server on port 3000

https://github.com/scotch/sapling/tree/master/server

In a nutshell Simple User management with inconsistantly working demo

Pros

  • Simple, easy to understand code
  • has mailer, forgot password, et el built in
  • No complex workflow tasks

Cons

  • Doesn't use Passport for auth. Users unsupported mongoose-session
  • Has a strange routing setup where routes are not in a central location.

https://github.com/mattpardee/restapis/

In a nutshell Flexiable routing and simple, concreate example. We saw this demo at the NodePhilly conference

Pros

  • Supports generic /:resource/:id route pattern

Cons

  • Lacks /:resource/:id/:child pattern
  • Not fully developed
  • Lacks find, limit, etc. on queries

https://github.com/jspears/mers

In a nutshell Flexiable routing with great find, limit, child resource capibilities!

Pros

  • Similar to SailsJS, but with relationships built in

Cons

  • Still in development
  • Complex code which is hard to follow and might not be modular?

https://github.com/jedireza/drywall

In a nutshell Out of the box user management system. All the hard stuff out of the way!

Pros

  • Well rounded user management system
  • Has support for email with Mandrill, etc.
  • Well organized routing system

Cons

  • Many of the end points are setup to serve html view. They need to be modified to work as API endpoints
  • Hard to follow workflow queue (although this makes performance better, the code is harder to read)
  • No generic resource
  • Permissions are scatterd thoughout the code, rather than being centralized in the routes
@adityamukho
Copy link

I'm in the process of re-structuring drywall as a Locomotive app. My main driver was to have a better MVC structure, with namespaced controllers and resourceful routing.

The port is still W.I.P. (The app is functional, but the build script is yet to be ported. Minified resources not yet available, but for now they can be copied over from drywall's public folder as is).

I am converting the build script into a Gruntfile, after which the app will become completely self-contained.

https://github.com/adityamukho/locomotive-drywall-seed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment