Skip to content

jlertle/backyardProject

 
 

Repository files navigation

backyardProject

A Sails application.

This boilerplate is under construction. It needs several critical stuffs for being a real hard boilerplate.

The main goal is building modern web app over Sails. This boilerplate is made for web developpers.

The main features will be : real time BO, User system, CMS, chat, charts and reports, modern front end, responsive and real time, SEO, analytics, .

The important purpose is to build something nice and reusable over the time.

Tests made with sails 0.10.5.

The Heroku deployment : http://backyard-project.herokuapp.com

How to start :

git clone https://github.com/julienfroidefond/backyardProject.git
cd backyardProject
npm install
sails lift

NB : you may have also to do :

npm install -g sails

Main techs Front End : bootstrap3, Ractivejs, HighCharts, sails.io

Main techs Back End : Sails, Bower, grunt, jade

Done

Front stuffs

  • Include bower in grunt task
    • bootstrap less and jquery min with bower. Done on 'sails lift' with grunt. Cf tasks > bower.js and bower.json
  • Jade templating
  • Include bootstrap 3.0.0 in the default importer.less
  • resolve asset problems : reordering in layout doesn't work. : Suppression of //scripts in layout.jade

Users : passport / admin / groups

  • include https://www.npmjs.org/package/sails-generate-auth to generate passport auth
  • Passport Inclusion
  • User system
  • Resolve bug : if a view is called not by a controller passport doesn't work because no user in session ; we don't pass by the policy.
  • Admin user automatically creates at sails lift (cf bootstrap.js and userUtilities)
  • Generate a file at the root to see the admin identifiers (adminIdentifiers.md)
  • user and groups

Organization : services, ...

  • menu in a partial template for page style normal (not homepage)
  • set toc in config, consumate both in mainmenu and homepage. Jade : - var tocEntries = sails.config.toc.getTocEntries(req, res);. It construct a menu differently if you're home page and/or logged in.
  • MainController for pages globals. If or not accessible logged is action : hasToBeAuth or global.
  • moving toc from config to service
  • Testing generators

Chat app

Backoffice

  • Building admin page with another UI
  • Admin page : users : simple listing
  • Inclusion of http://vitalets.github.io/x-editable/ for users editing compatible with REST Sails api. Wow.
  • Destroy User
  • Create user
  • Update user
  • backyard-bo-boCrudHandler.js -> js generic for cruding any object. Have to respect a certain markup format
  • CRUD groups
  • Super admin protection : group and user
  • Errors handling for humans

Config

  • The config object from bdd is available by res.backyardConfig. It's a policy claimed on all pages.
  • Analytics. Code generated only if config is on and on the front end pages.

Utils

Road map

  • Admin page : complete all TODOs
    • Users : avatar ?
    • Profile
    • Reports : Reactive ?
    • Overview : Reactive ?
    • Settings
  • Protect REST actions with policy isAdmin (otherwise anyone can add users and groups and see the model)
  • CMS system
    • Blog style with live refresh and live editing
    • Building pages
  • Quid about production environment : Mongo, --prod, etc.
  • Using i18n for translations
  • remember me in login page?
  • Study generator to do chatApp like a module (sails generate chatApp)
  • Bad front end to change by an MVVM system on Chat app. (review the architecture)
  • Test passport for the providers non local; but it requires key and I think it's working with no extra needs
  • Analytics and SEO ?

Notes about environment:

Heroku

http://backyard-project.herokuapp.com

Brackets / ST2

I use both brackets and sublime text2 for development on Mac Osx. Brackets with Theseus for debugging.

Debugging : node-inspector

npm install -g node-inspector
node-debug app.js

Notes about GIT

https://github.com/julienfroidefond/backyardProject

Rappels :

  • git add .
  • git commit -m 'MyComment'
  • git push

Notes about Cloud 9

#License

Backyard project is under MIT license :

Copyright (c) 2014 Julien Froidefond

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Releases

No releases published

Packages

No packages published