Skip to content

Latest commit

 

History

History
100 lines (74 loc) · 3.1 KB

README.md

File metadata and controls

100 lines (74 loc) · 3.1 KB

Framing

The original project uses mongodb as the persistant data store. I'm a little uncomfortable working with a non-transactional database for key data. This fork is my learning project to break the mongodb persistence layer and replace it with mysql with the sequelize ORM.

A website and user system for Node.js. What you create with Drywall is more important than Drywall.

See a bird's eye view.

Technology

On The Server On The Client Development
Express Bootstrap Grunt
Jade Backbone.js
Sequelize jQuery
Passport Underscore.js
Async Font-Awesome
EmailJS Moment.js

Requirements

You need Node.js and MongoDB installed and running.

We use Grunt as our task runner. Get the CLI (command line interface).

$ [sudo] npm install -g grunt-cli

Installation

$ git clone [email protected]:jedireza/drywall.git && cd ./drywall
$ npm install
$ mv ./config.example.js ./config.js #set mongodb and email credentials
$ grunt

Setup

You need a few records in the database to start using the user system.

Run these commands on mongo. Obviously you should use your email address.

use drywall;
db.admingroups.insert({ _id: 'root', name: 'Root' });
db.admins.insert({ name: {first: 'Root', last: 'Admin', full: 'Root Admin'}, groups: ['root'] });
var rootAdmin = db.admins.findOne();
db.users.save({ username: 'root', isActive: 'yes', email: '[email protected]', roles: {admin: rootAdmin._id} });
var rootUser = db.users.findOne();
rootAdmin.user = { id: rootUser._id, name: rootUser.username };
db.admins.save(rootAdmin);

Now just use the reset password feature to set a password.

  • http://localhost:3000/login/forgot/
  • Submit your email address and wait a second.
  • Go check your email and get the reset link.
  • http://localhost:3000/login/reset/:token/
  • Set a new password.

Login. Customize. Enjoy.

Philosophy

  • Create a website and user system.
  • Write code in a simple and consistent way.
  • Only create minor utilities or plugins to avoid repetitiveness.
  • Find and use good tools.
  • Use tools in their native/default behavior.

Features

  • Basic front end web pages.
  • Contact page has form to email.
  • Login system with forgot password and reset password.
  • Signup and Login with Facebook, Twitter and GitHub.
  • Optional email verification during signup flow.
  • User system with separate account and admin roles.
  • Admin groups with shared permission settings.
  • Administrator level permissions that override group permissions.
  • Global admin quick search component.

License

MIT

githalytics.com alpha