personal-website
Nick Bartlett's personal website. It's currently a WIP.
Installation
After forking and cloning the codebase, run the following command to install all of the dependencies:
npm install
Running
Running the site for development is a single command:
npm run gulp
This will run Gulp, starting the Node server. The task wraps the Node server in a proxy server that will be accessible on multiple devices, live reload assets, and watch Node files for changes to stop and start the Node server on changes. It will also lint all of the JavaScript and Sass, compile the Sass, uglify the JavaScript, and optimize the images.
Testing and Deploying
Testing and deploying is all done through Travis. Whenever a commit comes in to any branch of the repository, Travis will start up and run npm test
(found in the scripts
property in package.json
). If it finds any errors, it'll be angry ๐ก and they'll need to be fixed. Once all of the tests pass, Travis will be happy again ๐.
If a commit comes in to the master
branch and all of the tests pass, Travis will use heroku to create a deployable app from the source code and deploy it on heroku.
Current Project make-up
Pretty bare-bones at the moment.
src
- Browser source filessrc/js
- Browser JS files. Will build topublic/js
and be available in the/js
folder from the browsersrc/images
- Images available to the browser. Will build topublic/images
and be available in the/images
folder from the browsersrc/sass
- Sass files to be compiled to CSS. Will build topublic/css
and be available in the/css
folder from the browser
lib
- Node source filesviews
- Templates to be rendered by the Node serverindex.js
- Main application file
The following folders contain generated content and will not be included in the source control:
public
- The folder browser assets will be served from.node_modules
- The folder containing Node dependencies
The following files are configuration files to configure different parts of the toolchain: