Skip to content
John Gracey edited this page Jan 27, 2015 · 3 revisions

Project outline.

We will be using this "Hackathon Starter" template code in effort to not reinvent the wheel. This project/template aims to keep things simple and follows standard conventions. You can read their README file for more information. This project depends on quite a few web technologies that I list below.

Linux Server

Platform

  • JS Guide - This is a quick and low level primer on JS. The JS language isn't too deep, so as programmers this might be all you need. If you need more, the Mozilla Developer Network is the absolute best resource on JS. Other websites like W3Schools makes it look easy, but they skip out on all the important details that a developer needs to know.

    • NodeJS - Nodejs uses the Javascript language to run on the server side. It handles streams like reading and writing files, and other important system functions.
      • NPM - Is the NodeJS Package Manager similar to PIP for python or Ruby's gems. NPM makes it easy for a project to list dependencies, then npm installs them. Ever have to import non standard Java libraries, like from google? Its pretty painful. NPM solves this for Node
      • Express - Express makes handling HTTP requests and responding with webpages easy.
        • MVC - Model-View-Controller Pattern. This is a good way to setup express. Basically, routes call a controller function which may use model (Database) data and does some logic/programming which gets sent to a view, which renders what we see on a website.
    • jQuery - jQuery is a js library making common tasks easier.

DataBase

  • MongoDB - MongoDB is a database that basically saves javascript objects. This format is called JSON.
    • Mongoose ORM - Mongoose makes interacting with Mongo easier. Instead of opening a connection and sending long string query, you can use object oriented programming to query the DB.

CSS - This is the styling of Websites that makes things pretty. (HTML is the content)

  • Bootstrap - Basially formatting the CSS to make little things like buttons is annoying. We use bootstrap to handle this for us, and provide us with responsive layouts, all by naming a class in your HTML code.
  • LESS / SASS - CSS is somewhat primitive scripting language. We use Less or SASS as a preprocessor so that we can use variables, inheritance, and helper functions among other cool features. For large projects, this is extremely important.

HTML

  • HTML5
    • Jade - Like the LESS/SASS preprocessors of CSS above, Jade is a preprocessor of HTML. Basically opening and closing brackets is a pain, and we can use inheritance and basic logic like variable and loops to be more dynamic with HTML for the purposes of rendering html.

Dashboarding

  • DC.js - DC.js brings together Crossfilter and D3 to provide interactive multi-dimensional charting.
    • CrossFilter
    • D3.js - Is a framework for data driven projects, typically graphs. This is the gold standard of low level dashboards.
Clone this wiki locally