GithubHelp home page GithubHelp logo

edwardt / scrumjet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alainodea/scrumjet

1.0 3.0 0.0 553 KB

RESTful task tracking experiment built with webmachine

Home Page: http://concise-software.blogspot.com/

scrumjet's Introduction

ScrumJet: RESTful task tracking experiment built with webmachine

ScrumJet's experimental premise is simple: I wanted to learn more about [webmachine] 1. Basic task tracking is a fairly simple thing to implement and has lots of obvious ways to link things together.

Running the Experiment

Pre-requisitites:

  • Mercurial (to get webmachine)
  • Erlang/OTP

Shell 1:

make
./start-dev.sh

Shell 2:

./load-test-data.sh

Open [http://127.0.0.1:8000/] 8 in a web browser.

Motivation

REST(Representational State Transfer) is an architectural style which can be applied well to such a system and webmachine makes it easy to implement in [Erlang] 2.

Overall Architecture

ScrumJet is broken out into resources for tasks, categories, boards and utility resources for representing linkages amongst them. Much of the motivation for this architecture came from reading [O'Reilly's book RESTful Web Services] 3. As such it focuses on providing a well-connected HTML representation of each resource. I am likely to eventually add [JSON] 7 representations to the resources for efficiency, but my goal at the moment is a proper RESTful architecture. I find it easier to achieve that in HTML.

Part of the motivation for this architecture is a secondary educational goal of learning how to build an ARIA on top of a RESTful web service using [Dojo] 5. Obviously [Dojo] 5 prefers [JSON] 7 so some ScrumJet resources are also able to represent themselves as [JSON] 7. It is an end-goal that all resources in ScrumJet will be able to do this.

Underlying Architecture

ScrumJet's resources are implemented as [webmachine] 1 resources. Each resource generates an HTML representation based on state stored in one or more [mnesia] 6 tables. Specifically, each resource uses a gen_server to work with its primary state in an mnesia table and uses the gen_servers of other resources to determine connections or links to be rendered in the representation.

scrumjet's People

Contributors

alainodea avatar alain-odea-vgh avatar

Stargazers

edwardt avatar

Watchers

edwardt avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.