** Taking a break from the project for a bit 10/18/2013 **
Currently starting with the Statement API Refactoring and Tests will come later (looking at http://frisbyjs.com/ for a platform independent xAPI REST unit tests)
Packages used: (add issue if you want me to add to repository)
// routing
$ go get github.com/gorilla/mux
// guid creation
$ go get github.com/nu7hatch/gouuid
// monogdb (requires bzr to download)
// get latest version http://blog.labix.org/2013/09/05/mgo-r2013-09-04-released
$ go get labix.org/v2/mgo
$ go get labix.org/v2/mgo/bson
Done:
- POST statement(s) w/ conflict check
- PUT statement w/ conflict check
- POST/PUT Void statement
- GET statement by voidStatementId and StatementId
In Progress:
- GET complex query
- GET more query due to limit
- Auth and Cross Origin Requests
- REST API Tests
- Deal with attachments
- Concurrency
- Statement Validation
Not production ready
Developed because:
- Right tool for the job (fast and few system setup requirements)
- Can run on Windows and Linux servers or Google App Engine
- Wanted to start an Open Source Project
- Wanted to learn GO and MonogoDB
- The front end can then be written in any language (PHP, .Net, ...)
- Can be re-developed in any language easily
Lots of help from these resources:
Other Useful Resources:
- REST API Testing tool
- GO IDE for Windows
- Linked In Tin Can API User Group
- Tin Can API.com
- Tin Can API .co .uk
- Bazaar is a version control to download mgo
- skelterjohn/rerun/ Very useful, listens for file changes and compiles and closes and re-runs go app. (package uses howeyc/fsnotify)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.