Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexBezuska committed Jan 11, 2017
1 parent 21f9f63 commit aceab12
Show file tree
Hide file tree
Showing 22 changed files with 354 additions and 0 deletions.
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Logs
logs
*.log

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directory
# https://docs.npmjs.com/cli/shrinkwrap#caveats
node_modules

# Debug log from npm
npm-debug.log

# script to copy site to server
upload.sh
48 changes: 48 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var bodyParser = require('body-parser');
var autoprefixer = require('express-autoprefixer');

var routes = {
home: require('./routes/home'),
about: require('./routes/about')
};

var app = express();

app.set('views', path.join(__dirname, 'views'));
var exphbs = require('express-handlebars');
var hbs = exphbs.create({
extname: '.hbs',
helpers: {
ifEqual: require("./helpers/ifEqual.js"),
count: require("./helpers/count.js")
}
});
app.engine('.hbs', hbs.engine);
app.set('view engine', '.hbs');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(require('node-sass-middleware')({
src: path.join(__dirname, 'scss/'),
dest: path.join(__dirname, 'public/'),
debug: true,
sourceMap: true
}));
app.use(autoprefixer({ browsers: 'last 2 versions' }))
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes.home);
app.use('/about', routes.about);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

module.exports = app;
92 changes: 92 additions & 0 deletions bin/www
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/usr/bin/env node

/**
* Module dependencies.
*/

var app = require('../app');
var debug = require('debug')('Daydream.farm:server');
var http = require('http');
var open = require("open");

/**
* Get port from environment and store in Express.
*/

var port = normalizePort(3000);
app.set('port', port);

/**
* Create HTTP server.
*/

var server = http.createServer(app);

/**
* Listen on provided port, on all network interfaces.
*/

server.listen(port);
open("http://localhost:" + port);
server.on('error', onError);
server.on('listening', onListening);

/**
* Normalize a port into a number, string, or false.
*/

function normalizePort(val) {
var port = parseInt(val, 10);

if (isNaN(port)) {
// named pipe
return val;
}

if (port >= 0) {
// port number
return port;
}

return false;
}

/**
* Event listener for HTTP server "error" event.
*/

function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}

var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;

// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}

/**
* Event listener for HTTP server "listening" event.
*/

function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
3 changes: 3 additions & 0 deletions helpers/count.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = function(context, options) {
return context.length;
}
6 changes: 6 additions & 0 deletions helpers/ifEqual.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = function(a, b, opts) {
if(a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
}
16 changes: 16 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "express-handlebars-sass-starter-project",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.15.1",
"express": "~4.13.4",
"express-autoprefixer": "^5.1.1",
"express-handlebars": "^3.0.0",
"node-sass-middleware": "0.8.0",
"serve-favicon": "~2.3.0"
}
}
10 changes: 10 additions & 0 deletions public/css/main.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions public/css/main.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file added public/fonts/.gitinclude
Empty file.
Empty file added public/images/.gitinclude
Empty file.
Empty file added public/js/.gitinclude
Empty file.
9 changes: 9 additions & 0 deletions routes/about.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
res.render('about', {
layout: 'main'});
});

module.exports = router;
9 changes: 9 additions & 0 deletions routes/home.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
res.render('home', {
layout: 'main'});
});

module.exports = router;
Empty file added scss/css/_colors.scss
Empty file.
10 changes: 10 additions & 0 deletions scss/css/_structure.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}

.offset-header{
margin-top: 3.5rem;
}
Empty file added scss/css/_typography.scss
Empty file.
3 changes: 3 additions & 0 deletions scss/css/main.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@import"colors";
@import"typography";
@import"structure";
22 changes: 22 additions & 0 deletions views/about.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<div class="container offset-header">
<!-- Example row of columns -->
<div class="row">
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
</div>

<hr>
</div> <!-- /container -->
31 changes: 31 additions & 0 deletions views/home.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron offset-header">
<div class="container">
<h1 class="display-3">Hello, world!</h1>
<p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more &raquo;</a></p>
</div>
</div>

<div class="container">
<!-- Example row of columns -->
<div class="row">
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
</div>

<hr>
</div> <!-- /container -->
28 changes: 28 additions & 0 deletions views/layouts/main.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">

<title>Starter Project</title>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<link href="/css/main.css" rel="stylesheet">
</head>

<body>

{{> header}}

{{{body}}}

{{> footer}}


<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>

</html>
5 changes: 5 additions & 0 deletions views/partials/footer.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<div class="container top">
<footer>
<p>&copy; Company 2017</p>
</footer>
</div> <!-- /container -->
17 changes: 17 additions & 0 deletions views/partials/header.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<nav class="navbar navbar-toggleable-md navbar-inverse fixed-top bg-inverse">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/">Starter Project</a>

<div class="collapse navbar-collapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">About</a>
</li>
</ul>
</div>
</nav>

0 comments on commit aceab12

Please sign in to comment.