[go: up one dir, main page]

Skip to content
This repository has been archived by the owner on Jun 1, 2022. It is now read-only.

holyjs/holyjs

Repository files navigation

HolyJS

Backers on Open Collective Sponsors on Open Collective

This project based on Hackathon Starter

Project starter for Node.js web applications.

Features

  • .env environment variables
  • Local Authentication using Email and Password
  • Authentication via Twitter, Facebook, Google, Github, instagram
  • Flash Notifications like success, error and info
  • MVC project structure
  • Ready, Account Management
    • Gravatar
    • Profile Details
    • Change Password
    • Forgot Password (Reset)
    • Linking multiple social accounts to one account
    • Delete Account
  • CSRF Protection
  • Yeoman Generator generator-holyjs

Prerequisites

  • MongoDB
  • NodeJS

Project structure

Name Description
config/passport.js Passport Strategies and Serialize/Deserialize User
controllers/home.js Controller for home page
controllers/user.js Controller for user account management
models/User.js User model
middlewares/ Middlewares folder
strategies/ Passport's Strategies Folder
strategies/local.js Passport's Local Strategy
public/ Static files (fonts, css, js, images)
views/ Template files
views/layout.jade Main layout template
views/partials/flash.jade Flash notifications success info error
test/app.js Application test cases
test/models.js Model test cases
.travis.yml Travis CI integration
.env.example Example file for API keys, tokens, passwords and database info
.env Must be created manually from example
app.js The main application file
package.json NPM dependencies and project info

Packages

Package Description
async Library for asynchronous control flow.
bcrypt-nodejs Hashing and salting passwords.
connect-mongo MongoDB session store for Express.
dotenv .env file environment variables.
express Node.js Web Framework.
body-parser Express 4 middleware for parse request bodies.
express-session Express 4 middleware for session store.
morgan HTTP request logger.
compression deflate and gzip compressions.
errorhandler Express 4 middleware for error handling.
serve-favicon Express 4 middleware for serving favicon. (also caching)
express-flash Express 4 flash messages.
express-validator Express 4 middleware for string validation and sanitization.
jade Template engine.
lusca CSRF middleware.
mongoose MongoDB ORM.
nodemailer Node.js library for sending emails.
passport Authentication library.
passport-facebook Sign-in with Facebook.
passport-github Sign-in with GitHub.
passport-google-oauth Sign-in with Google.
passport-twitter Sign-in with Twitter.
passport-instagram Sign-in with Instagram.
passport-local Sign-in with username and password.
passport-oauth OAuth 1.0a and OAuth 2.0 strategies.
request HTTP request library.
lodash Javascript utilities library.
socket.io Real-Time Communication Engine.

Development Packages

Package Description
mocha Test framework.
supertest HTTP assertion library.
chai BDD/TDD assertion library.

Install with Yeoman Generator

First install yeoman and generator-holyjs

npm install -g yo
npm install -g generator-holyjs

Then generate your new project:

yo holyjs

Ideas - Todo

  • Adding socket.io
  • Custom middleware support with middlewares/ folder.
  • Adding test scripts for user login and register.
  • Add bower support
  • Add sass and public js assets support with minify.
  • Environment dotenv config files. (.env.production .env.testing, .env)
  • An example crud routes and controller.
  • Separated passport strategies with strategies/ folder.
  • CLI helper for secret key generate, listing routes, listing controllers etc.
  • Yeoman generator for HolyJS project
  • Eslint for tests
  • Reformat code as standart of ES (for Eslint errors, such as const)

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]