Skip to content
Saumya Kanoria edited this page Sep 19, 2016 · 41 revisions

Welcome to the Rails App Starter Kit!

Demo

http://rails-app-starter-kit.herokuapp.com

Please treat any data (posts, users etc.) as transient, since these may be cleaned up from time to time.

The app's admin console can be accessed at:

http://rails-app-starter-kit.herokuapp.com/admin

To access the admin console, sign in with the following credentials:

To see i18n and l10n (to Hindi) at work, append '/hi' to the above URLs.

For accessing via native apps, the app access token is z23498f58959thf85. See the Access From Native Apps page for details. To simulate sending requests from a native app, you can use something like Postman on your PC or browser.

Everything in the demo is standard functionality!

Quick Start

Introduction

This is a starter project for creating applications using the Postgres, Rails and Angular stack.

Or rather, its a starter project on steroids.

Whereas most such projects restrict themselves to wiring together the various pieces of the stack (including any supporting libraries) to play nicely so that you don't have to, we've gone a step or two further.

Feature Packed ...

After all, the wiring is just one of the bits of boilerplate code that developers need to replicate for each application. There could be several others - for instance

  • authentication (via email and third party providers)
  • authorization, user management
  • file uploading and attachment management
  • an admin console for app admins
  • secure API access via native apps
  • I18n

...and so on.

Additionally, there could be bits of useful functionality such as searchable and sortable AJAX based data tables, DSLs for DRYing up boiler plate code, to name a few.

We've built in all of the above and much more into the starter kit! Our mission is to give you as much boiler plate code as possible, so that you can focus on just your business logic.

... Yet Completely Customizable

Of course, its all very well for us to provide so much out of the box. But what if you don't want to use a particular feature we provide? Or if you want to implement your own solution for it?

Happily, almost every feature we've built in follows a "decorator" pattern of sorts, so you can take it or leave it, as you wish. Even within a feature itself, if it involves several moving parts, we've tried to separate the parts' interfaces and implementations, so that you can replace each part separately.

If all this sounds a bit abstract, it'll become evident as you read through the rest of the wiki.

Complete Wiring and Feature List

  • Stack
  • Client side "low level" features
    • Integration with the Bootstrap UI framework {Read more}
    • Angular based routing with ui-router, with helpers for authentication, role based authorization and navigation confirmation when there are unsaved form fields (works for Angular route changes, and when navigating to external URLs)
    • Angular based flash messages, similar to the Rails flash
    • Decorators providing useful additional functionality for Angular resources
    • A bunch of useful directives for UI elements and for extending Angular's own functionality
    • Angular and JS code testing using Teaspoon {Read more}
  • Server side "low level" features
    • Asset management using Bower {Read more}
    • Global key value store, for keeping track of random bits of persistent information without having to create ActiveRecord models {Read more}
    • Secure API-based access for native apps {Read more}
    • Background tasks using DelayedJob (but easily swappable with any other library) {Read more}
    • Miscellaneous useful dev tools {Read more}
    • Rails code testing using RSpec and other best practices {Read more}
  • Higher level features
    • Rails and Angular "mini libraries" for searchable and sortable AJAX based data tables using jQuery DataTables {Read more}
    • Rails and Angular code for user account management (including authentication via Facebook, Google and other providers) using Devise, and role based authorization using Pundit {Read more}
    • Angular "mini library" for DRYing up HTML forms, and integrating with CSRF protection and with server side form validation {Read more}
  • Very high level features
    • Complete file upload management (using FineUploader), attaching uploads to models, and viewing them, via a central attachment library {Read more}
    • Full featured admin console for administrators {Read more}
    • Angular code, and a Rails "mini library" for admin controlled application settings, with multi-layered fallback on Rails secrets and environment variables
    • Admin configurable outgoing email settings, built using the above application settings {Read more}
    • Complete i18n (across the Rails and Angular code, including all Angular directives), and sample Hindi l10n {Read More}
  • Other features
    • Multi-tenancy!! Check out the multi-tenant branch for building multi-tenant applications. Provides all the features the master branch provides!
    • Ready to deploy on Heroku

What Next?

Interested in using the starter kit to build your own application? Then head over to the Quick Start page, and get set up and running in minutes.

Clone this wiki locally