Software Architecture Document - SSD2015/TeamGG GitHub Wiki
Introduction
Purpose
The Software Architecture Document (SAD) contains the description of the system in terms of its various architectural views, in order to highlight the different aspects of it.
Scope
This Software Architecture Document provides an architectural overview of the Exceed Vote server, administrative interface and mobile client.
Glossary
See SRS Glossary
Architectural Requirements
Non-functional requirements
- The server side must be developed with Java
- Voters must be able to vote using their own internet connected smartphone (at least iPhone and Android)
- The application must be able to support 200 concurrent users
- Most of the options in this application should be configurable
- Voters must be authenticated
- The server can be located locally or remotely
Use Case View
Architecturally-Significant Use Cases
UC1: Make a vote
Assuming voter has already identified themselves, they open the application and see a list of groups. They select a group to vote for. They see the group's project information and voting categories. They enter their scores into the voting form and system will show that the voting has been registered.
UC4: Scan from booth
Voter visits the group's booth. They use their device to detect from a physical object located at the booth and the application will show up with that group's information same as when they have manually select that group.
UC7: Installing a product
Voter open application and select a group from the list of group. The group information shows and user can opt to install that product. If that product is not supported on their device (for example, if they use an iPhone and the product is an Android application, or if their phone runs an ancient version of Android) there should be a visual indicator telling them that installation is not supported on their device and the reason why.
UC8: Authentication by KU student/staff
Voter who has a KU account opens the application and verify their KU account. Application checks with the KU system and logs the user in with access permissions set according to their status in KU. The application should greets the voter by his name.
Logical View
Architecture Overview
The application is splitted into 2 separate applications.
- Server side
- Administrative interface - Handle administrative actions
- API - Handle clientside requests
- Client side - Vote client which runs on user's mobile phone and communicate with server to perform actions.