README.md

Ghost Prototype Project

An attempt at piecing together components for building dynamic, customisable features into the platform. This project should result in enough work to get us to the video. At which point it is envisaged that we would move to the proper Ghost repo, with some restructure/refactoring such as - better file and folder naming, moving Casper into a separate, but linked repo, fixing architectural errors etc.

To Install:

  1. Clone the git repo
  2. cd into the project folder and run "npm install".
    • If the install fails with errors to do with "node-gyp rebuild", follow the Sqlite3 install instructions
  3. That is all.

Frontend can be located at localhost:3333, Admin is at localhost:3333/ghost

Sqlite3 Install Instructions

Ghost depends upon sqlite3, which has to be built for each OS. NPM is as smart as it can be about this, and as long as your machine has all the pre-requisites for compiling/building a C++ program, the npm install still works.

However, if you don't have the required pre-requisites, you will need to either get them, or as a shortcut, obtain a precompiled sqlite3 package for your OS.

I have created some of these, and they can be obtained from github.

The pre-compiled package should be downloaded, extracted and placed in the node_modules folder, such that it lives in node_modules/sqlite3, if you have a partial install of the sqlite3 package, replace it with the files you downloaded from github. Be sure that all the sqlite3 files and folders live directly in node_modules/sqlite3 - there should note be a node_modules/sqlite3/sqlite3 folder.

Dependencies:

  • express.js framework
  • handlebars for templating
  • standard css for frontend
  • sass for admin (pre-compiled)
  • moment.js for time / date manipulation
  • underscore for object & array utils
  • showdown for converting markdown to HTML
  • nodeunit for unit testing
  • sqlite3 for a database
  • jugglingdb ORM for interacting with the database

Frontend libraries:

  • jQuery 1.9.1
  • showdown for converting markdown to HTML
  • codemirror editor

Working features:

  • Dashboard
    • new post link
  • Admin menu
    • G, dashboard, content, new post & settings menu items go to correct pages
  • Content screen
    • Lists all posts with correct titles (incorrect time etc)
    • Select post in list highlights that post and opens it in the preview pane
  • Write screen
    • Live preview works for all standard markdown
    • Save draft button saves entered title & content. Everything is published by default.
    • Editing/opening existing post puts correct info in title and content panels & save updates content.
  • Database
    • The database is created and populated with basic data on first run of the server
    • New posts and edits save and last forever
    • The data can be reset by opening data/datastore.db and emptying the file. The next restart of the server will cause the database to be recreated and repopulated.

Front End Work

A SASS compiler is required to work with the CSS in this project. We suggest CodeKit (Paid/Mac) and Scout (Free/Mac/PC).