Skip to content

about architecture

Taneli Hartikainen edited this page May 6, 2015 · 8 revisions

Architecture

Current System

teamboard-system

teamboard-client-react

The client application is a fairly simple SPA (single-page-application).

The user interface is split into components, which are implemented with ReactJS. The application follows the Flux architecture, with ImmutableJS used for Stores.

client-architecture

As you can see, all the remote data will flow through as actions, similarly to what actual user would create when using the application.

teamboard-api

Express4 service with Mongoose for MongoDB abstraction.

  • Provides API for authentication and resources. In the future, the API should for resources should probably be separate from the authentication, expect for checking tokens and stuff.
  • Authentication uses bcrypt.
  • Actions generate Events, which are emitted using socket.o-emitter.
  • The API is initialized with the experimental cluster module for multicore support.

teamboard-io

Socket.IO service that is used to transmit the events from teamboard-api to teamboard-client.

  • Uses redis as a MemoryStore to enable easy scaling and automatic handling of events originating from teamboard-api.
  • Supports only board:join and board:leave as user emitted events.
  • Emits 'board:event' for various Events.
Clone this wiki locally