All Projects → docpad-archive → docpad-skeleton-nodechat

docpad-archive / docpad-skeleton-nodechat

Licence: MIT license
Node Chat, built using Socket.io, DocPad, Backbone.js and Twitter Bootstrap

Programming Languages

coffeescript
4710 projects
CSS
56736 projects

Projects that are alternatives of or similar to docpad-skeleton-nodechat

docpad-skeleton-yui
A YUI Purecss 0.6.0 skeleton for DocPad.
Stars: ✭ 13 (-62.86%)
Mutual labels:  docpad-project, unsupported
ubiquitous-memory
new version? pull request.
Stars: ✭ 58 (+65.71%)
Mutual labels:  unsupported
website
The source code of Benjamin Lupton's website
Stars: ✭ 22 (-37.14%)
Mutual labels:  docpad-project
logger
In-memory log buffer used by Deis Workflow.
Stars: ✭ 17 (-51.43%)
Mutual labels:  unsupported
docpad-skeleton-bootstrap
Twitter Bootstrap skeleton for DocPad. Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.
Stars: ✭ 46 (+31.43%)
Mutual labels:  docpad-project
website
The DocPad Website. Replaced by GitBook: https://docpad.bevry.me
Stars: ✭ 22 (-37.14%)
Mutual labels:  docpad-project
Unsupported
Unsupported Zenphoto scripts [abandoned]
Stars: ✭ 18 (-48.57%)
Mutual labels:  unsupported
cisco ios
Cisco IOS Catalyst module
Stars: ✭ 14 (-60%)
Mutual labels:  unsupported
docpad-skeleton-h5bp
HTML5 Boilerplate skeleton for DocPad. Bare essentials for building a modern website with best practices.
Stars: ✭ 21 (-40%)
Mutual labels:  docpad-project
builder
Git server and application builder for Deis Workflow
Stars: ✭ 40 (+14.29%)
Mutual labels:  unsupported
startuphostel
Startup Hostel, the home in paradise for the doers of the world.
Stars: ✭ 26 (-25.71%)
Mutual labels:  docpad-project
CSScaffold
The original CSScaffold by Anthony Short... He deleted the original repository when he released the newer version.
Stars: ✭ 26 (-25.71%)
Mutual labels:  unsupported
minio
Minio Object Storage in Kubernetes, used by Deis Workflow.
Stars: ✭ 51 (+45.71%)
Mutual labels:  unsupported
dockerbuilder
Deis dockerbuilder builds your app from a Dockerfile inside a Kubernetes pod, used by Deis Workflow.
Stars: ✭ 17 (-51.43%)
Mutual labels:  unsupported
comical-jekyll-theme
A Configurable Webcomic Theme for Jekyll
Stars: ✭ 39 (+11.43%)
Mutual labels:  unsupported
Deis
Deis v1, the CoreOS and Docker PaaS: Your PaaS. Your Rules.
Stars: ✭ 6,107 (+17348.57%)
Mutual labels:  unsupported
bal-util
Utility functions for JavaScript and Node.js used and maintained by Benjamin Lupton
Stars: ✭ 13 (-62.86%)
Mutual labels:  unsupported
docpad-plugin-inlinegui
Plugin that brings Web Write's Inline GUI/CMS to DocPad
Stars: ✭ 14 (-60%)
Mutual labels:  unsupported
meteor-smart-disconnect
A Meteor package that disconnects your site in a smart manner.
Stars: ✭ 68 (+94.29%)
Mutual labels:  unsupported
jquery-slidescrollpanel
Create sliding scroll panels that slide in by touch, trackpad and scrolling
Stars: ✭ 16 (-54.29%)
Mutual labels:  docpad-project

Node Chat (using DocPad)

Built using Socket.io, DocPad, Backbone.js and Bootstrap

Play

  1. Get DocPad

  2. Run

    git clone git://github.com/balupton/nodechat.docpad.git
    cd nodechat.docpad
    docpad run
  3. Open http://localhost:9778/

Features

  • Send and receive messages instantly (no sign-in required)
  • Markdown support for messages
  • User information updates are synced to everybody
  • Gravatars to see who you are chatting to
  • Webkit chat notifications so you'll always notified
  • See who's actively connected
  • Times are all relative (e.g. '5 minutes ago')
  • Supports reconnections

Emphasis

Node Chat was built with the following emphasis

  • It is a real-time, live-updating web application, as such the technology it uses should reflect that purpose
  • It should be written to scale very easily
    • Utilised DocPad with modern markups to increase agility
    • Written with models to easily allow scaling of new and more complex fields and model requirements
      • No doubt the fields of User and Message will naturally change a lot over any course of time
  • It should be written to support security
    • ID generation for the messages happen on the server-side
    • Broadcasts can only be sent by the user who created the item we are sending

Technology

  • Socket.io provides the client/server syncing and broadcasting ability
    • Used to sync user information
    • Used to broadcast new messages
  • DocPad allows us to write our website in modern markups
    • Our HTML is written in CoffeeKup
    • Our CSS in Stylus
    • Our JavaScript in CoffeeScript
  • Backbone.js provides our MVC infrastructure for the frontend
    • All the UI components are written as Backbone views providing greater modularity
      • Less side-effects
      • Greater re-usability
      • Easier to scale and sync
    • All the models are written as Backbone models and collections
      • Allows us to automaticly update views when a model changes
      • Allows us to easily sync models to the server
  • Bootstrap provides our styling and design

These technologies work together really really well, as because a chat application is real-time (always having things changing, even without user interaction) we need a frontend implementation that is real-time too. Backbone.js and Socket.io fit perfectly for this, backbone.js provides the frontend infrastructure to provide a real-time / live-updating frontend interface, where socket.io provides the backend toolkit to sync the events. DocPad was a natural choice as it allows us to write our code in modern markups which greatly improves productivity, readability, and prevents errors.

Todo / Known-issues

  • Developer Documentation
  • Autocomplete of people's names when you type @ in the composer
  • Notifications for when people are typing
  • Notifications only when you are mentioned
  • Better iPhone support
  • Drag and drop files to the cloud support
  • Private conversations support
  • Multiple room support
  • Private room support
  • System commands. E.g. /nick Your New Displayname
  • When people mouse over a username, they should get all the user details
  • When people mouse over a relative time, they should get the absolute time
  • Preselected color combinations instead of randomly generated

License

Node Chat is developed by Benjamin Lupton and licensed under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].