Skip to content
kouphax edited this page Apr 2, 2013 · 6 revisions

Application Specification

Simple Todo App. ReSTy endpoint for Backbone JS app.

  • This is not some sort of code golf exercise (code should be pragmatic, idiomatic and easy to read for a beginner)
  • This is not a speed competition (don't sacrifice readability for speed)

Persistence

  • Must conform to a baseline API?
  • Must at least have in memory persistence

Use of Other Libraries

Manually adding external (non-framework) libraries should be avoided as much as possible. The intent of this project is to show what the framework can do rather than what cool libraries you can add to make things pretty.

Todo Model

Model is simple

id:       Number or UUID
title:    Title of Todo
order:    Number specifying ordering of items
complete: Boolean specifying if Todo is complete or not

API

Application API must provide following endpoints

GET  /           Returns index.html (from webapp submodule - __NEED TO DOCUMENT THIS__)
GET  /todos      Returns JSON of all todos
POST /todos      Accepts JSON encoded body returns created Todo (e.g. with the ID field populated) or Invalid response (400 Status Code) with validation errors (__do we constrain these - I think not?__)
PUT  /todos/[id] Accepts a JSON encoded body of a Todo and the Todo with an [id] will be updated. If [id] does not exist a 404 is returned (__define body of 404???__)

Quick sanity check is that the app must serve and work with the Backbone TodoMVC application (modified without localStorage adapter). A simple implementation of that can be added as a submodule is available

No JS

Optional project with a No JS solution can be provided

Project Naming

The projects folder should be as descriptive as possible without being overly verbose. You should hint at what frameworks are in play e.g.

play-2-scala              uses Play! 2, Scala, basic in-memory persistence
play-2-scala-mongo-no-js  uses Play! 2, Scala, MongoDB persistence and is a No JS version

Pull Request Prerequisites

Each pull request for a new framework submission must have working code and a README.md file with the following contents

  • Description of frameworks used
  • How to build/run app
  • Required software (potentially versions as well)