Voting Tool
Aus Java Student User Group Austria - Java + JVM in Wien Österreich / Vienna Austria
Version vom 23. März 2009, 16:07 Uhr von Christoph.pickl (Diskussion | Beiträge)
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
- ...