“STROBE” my new OSS Project in GitHub, an Enterprise Class Web Application Starter Project for Sails.JS (Node.JS)

I started a new rapid web application development project called “STOBE” in GitHub using Sails.JS. The project is active and we are making regular commits.

What is Sails.js?

Sails is a Rails like web application development framework in Node.JS. What the Sails.JS team says about “Sails.JS”.

imageimage

Sails.js philosophy, performance and community

image

 

Why STROBE?

The wonderful guys from Balderdash who built the Sails.JS made the framework super duper simple to quickly create Enterprise Class Web Applications in Node.JS but I could not find any good starter application other than some “TODO” or discrete samples hence I wanted to build a production ready (mainly the UI layer) enterprise class web application with the following objectives:

    • Minimalistic User Interface Design using Twitter Bootstrap
    • Ability to change the Color theme of the Website using LESS
    • Loosely coupled and highly reusable rich client side widgets / components developed as partials – All components exposes apis, emits events which other components or partials & pages can subscribe for using Pub/Sub  pattern, dynamic javascript function names to avoid name collision if we use the same partial more than once in the same page
    • Client side data caching for components/widgets like dropdowns, multi-select dropdowns,  radio button groups using local storage with ability to invalidate the cache
    • Ready made server side pagination control for the bootstrap data tables (the component calls two REST apis to get the result collection & count of records as jquery promise ajax call)
    • Easy to use with no-coding client side validation attachment for form controls
    • Standard and consistent user experience for form controls, data tables, validation, error notifications, progress indicator for long running operations etc.
    • Server calls from the UI layer through Jquery Promise (Ajax) which consumes the controller actions (Blueprint & custom) as REST API calls
    • MongoDB backend (for schema less approach)
    • MongoDB GridFS for as document store
    • Automatic CRUD forms code generation for master data management. Some example master data are:
          • Department
          • Location
          • Role
          • Category
          • Bla bla bla…

All masters require, CRUD forms, their data needs to be shown in dropdowns, multi selects, radio button groups, look-ups, list view, datagard with search in another forms etc. It requires lot of repetitive code which is automated through scaffolding

  • Ready to use common use cases for any projects
    • Base controller & Models (Inheritance through lodash)
    • Login form
    • Dynamic navigation & menus
    • Users Creation with multiple roles (one-to-many)
    • User details & list view with server side pagination
    • Master data forms i.e. Role, Department
    • Forgot password
    • Email notification through “mailgun” cloud email engine
    • Result with total records (combining Find() & Count() in promise) for server side pagination
    • Encrypted passwords
    • Utilities library to host common functions

 

  • User interface to search and filter log files
  • JSON driven user manual page
  • File uploader widget with cloud integration.
      • Adapter to store document in the MongoDB GridFS, Azure Blob storage etc.
      • File uploader has following loosely coupled partials
          • File uploader form with progres indicator
          • File downloader
          • File listing
        • No attributes in the model. All are dynamic like in C# dynamics
        • Custom configuration files for Application settings & Web Settings
        • Queuing architecture for long running processes – RabbitMQ server & client (Pub & Sub)

 

All of the above said are up and running in my ASP.NET MVC implementation (ALT.NET way coding) which I am porting to Sails.JS with the help of my company VmokshaTechnologies Pvt. Ltd. colleagues Poulomi, Asharani, Sivaprasad & karthiga who generously agreed to contribute.

What we will develop finally in STROBE?

It is a generic implementation but I am planning to build an IT Asset Management System

Want to see the sneak peek of the strobe Application? watch the screencast

https://www.dropbox.com/s/e5xesm98inttruj/Strobe%20Video.wmv

 

Dive into STROBE!

I will be writing series of Blog posts for Strobe. Please stay tuned to follow along the development of STROBE. Even you can download the code in the as-is state and see it working but you may have to go through tough time in understanding yourself.

One thought on ““STROBE” my new OSS Project in GitHub, an Enterprise Class Web Application Starter Project for Sails.JS (Node.JS)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s