Voting Tool: Unterschied zwischen den Versionen

Aus Java Student User Group Austria - Java + JVM in Wien Österreich / Vienna Austria
Wechseln zu: Navigation, Suche
Zeile 2: Zeile 2:
  
 
This site contains a short overview of the JSUG Voting Tool hosted at [http://code.google.com/p/jsugvoting/ googlecode]. Its aim is to provide an easy way figuring out which topics are preferred by the members.
 
This site contains a short overview of the JSUG Voting Tool hosted at [http://code.google.com/p/jsugvoting/ googlecode]. Its aim is to provide an easy way figuring out which topics are preferred by the members.
__NOTOC__
 
  
 +
__TOC__
 +
 +
=General=
 
==Technologies used==
 
==Technologies used==
  
Zeile 21: Zeile 23:
 
  svn checkout <nowiki>https://jsugvoting.googlecode.com/svn/trunk/</nowiki> jsugvoting --username <your_name>
 
  svn checkout <nowiki>https://jsugvoting.googlecode.com/svn/trunk/</nowiki> jsugvoting --username <your_name>
 
</code>
 
</code>
 +
 +
=Technical Documentation=
 +
 +
... kind of ...
 +
 +
==Usecases==
 +
 +
* Anonym
 +
** Register
 +
** View Topics
 +
** Login
 +
* Member
 +
** Logout
 +
** Add Vote
 +
** Remove Vote
 +
** Add Needed
 +
** Add Offered
 +
** Take-over Needed
 +
* Admin
 +
** Edit Topic
 +
 +
=== Commands/Events ===
 +
 +
* ??? ReloadData
 +
* Register
 +
* Login
 +
* Logout
 +
* GiveVote
 +
* RevokeVote
 +
* AddNeededTopic
 +
* AddOfferedTopic
 +
* TakeOverNeededTopic
 +
 +
== Valueobjects==
 +
 +
* TopicEntity
 +
** id: long
 +
** createdOn: timestamp
 +
** createdBy: User
 +
** title: String
 +
** votes: Vote[]
 +
** tags: Tag[]
 +
** ....... detail, link, thumbnailImage
 +
** state: Enum {need | offer | next | past}
 +
** attribute1: String // attributes are state depending (?)
 +
** attribute2: String
 +
** attribute3: String
 +
** attribute4: String
 +
 +
* VoteEntity
 +
** topicId: long
 +
** userId: long
 +
** createdOn: timestamp
 +
 +
* UserEntity
 +
** id: long
 +
** createdOn: timestamp
 +
** username: String
 +
** password: String // SHA-1 encrypted
 +
** email: String
 +
 +
* Tag
 +
** id: long
 +
** word: String
 +
 +
 +
==Protocol==
 +
 +
* consisting of ...
 +
** Head: version number, status code, message code
 +
** Body: xxx
 +
* describes passed json/xml dataformats
 +
* mimetypes:
 +
** application/json
 +
** application/xml
 +
 +
== REST ==
 +
 +
* /auth
 +
** GET: X
 +
** PUT: X
 +
** POST: login user
 +
** DELETE: logout user
 +
* /users
 +
** GET: list all UserVOs
 +
** PUT: X
 +
** POST: register new user
 +
** DELETE: X
 +
* /topics
 +
** GET: list all Topics
 +
** PUT: update topic
 +
** POST: add new topic
 +
** DELETE: X (delete topic; data passed in json/xml request)
 +
* ... ? /topics/{topicId} ? ... oder hier update+delete?
 +
* /votes
 +
** GET: X
 +
** PUT: X
 +
** POST: invoke vote
 +
** DELETE: revoke vote
 +
 +
 +
== Service API ==
 +
 +
* AuthService
 +
** login(username: String, password: String): boolean
 +
** logout(): void
 +
** register(username: String, password: String, email: String): boolean
 +
* TopicsService
 +
** ...
  
 
[[Category:Project]]
 
[[Category:Project]]
 
[[Category:JsugTool]]
 
[[Category:JsugTool]]

Version vom 23. März 2009, 16:07 Uhr


This site contains a short overview of the JSUG Voting Tool hosted at googlecode. Its aim is to provide an easy way figuring out which topics are preferred by the members.

General

Technologies used

  • GWT 1.5.3
  • RESTful Webservices
  • PHP 5


Access Sourcecode

You can check out the full source code by:

# anonymous read-only access:
svn checkout http://jsugvoting.googlecode.com/svn/ jsugvoting-read-only 

# project members only:
svn checkout https://jsugvoting.googlecode.com/svn/trunk/ jsugvoting --username <your_name>

Technical Documentation

... kind of ...

Usecases

  • Anonym
    • Register
    • View Topics
    • Login
  • Member
    • Logout
    • Add Vote
    • Remove Vote
    • Add Needed
    • Add Offered
    • Take-over Needed
  • Admin
    • Edit Topic

Commands/Events

  •  ??? ReloadData
  • Register
  • Login
  • Logout
  • GiveVote
  • RevokeVote
  • AddNeededTopic
  • AddOfferedTopic
  • TakeOverNeededTopic

Valueobjects

  • TopicEntity
    • id: long
    • createdOn: timestamp
    • createdBy: User
    • title: String
    • votes: Vote[]
    • tags: Tag[]
    • ....... detail, link, thumbnailImage
    • state: Enum {need | offer | next | past}
    • attribute1: String // attributes are state depending (?)
    • attribute2: String
    • attribute3: String
    • attribute4: String
  • VoteEntity
    • topicId: long
    • userId: long
    • createdOn: timestamp
  • UserEntity
    • id: long
    • createdOn: timestamp
    • username: String
    • password: String // SHA-1 encrypted
    • email: String
  • Tag
    • id: long
    • word: String


Protocol

  • consisting of ...
    • Head: version number, status code, message code
    • Body: xxx
  • describes passed json/xml dataformats
  • mimetypes:
    • application/json
    • application/xml

REST

  • /auth
    • GET: X
    • PUT: X
    • POST: login user
    • DELETE: logout user
  • /users
    • GET: list all UserVOs
    • PUT: X
    • POST: register new user
    • DELETE: X
  • /topics
    • GET: list all Topics
    • PUT: update topic
    • POST: add new topic
    • DELETE: X (delete topic; data passed in json/xml request)
  • ... ? /topics/{topicId} ? ... oder hier update+delete?
  • /votes
    • GET: X
    • PUT: X
    • POST: invoke vote
    • DELETE: revoke vote


Service API

  • AuthService
    • login(username: String, password: String): boolean
    • logout(): void
    • register(username: String, password: String, email: String): boolean
  • TopicsService
    • ...