Voting Tool: Unterschied zwischen den Versionen
Aus Java Student User Group Austria - Java + JVM in Wien Österreich / Vienna Austria
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. | ||
− | |||
+ | __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.
Inhaltsverzeichnis
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
- ...