Iteration 3: Initial Implement / Test
Server Side:
Comcrete Workflows
- Created an account creation workflow that checks for uniqueness on the "Username" field.
- Created an account deletion workflow that deletes user account if valid.
- Create an account validity check workflow that checks for the existence of a given user account.
- Create a login workfow that checks user credentials against the database.
- Added dependency injection and container bean management support
(These are in the edu.jhu.cs.oose.fall2014.group19.neverEatAlone.server.workflow.tests)
- Created tests for the create account workflow.
- Created tests for the delete account workflow.
- Created tests for the account validity check workflow.
- Created tests for the login workflow.
- Created support framework for server side workflows.
- This makes it easier to add new workflows since core backbone classes are in place.
- However, the current implementation of the server workflow support framework is very basic and will be refined in future iterations.
- Attempt to create a generic server framework for request/response cycle
- The server is being designed in a manner that will allow it to (hopefully) be useful to developother facets such as perhaps a web portal to go with the android app as well.
- An attempt is being made to make the server side logic independent of the client by using generic HTTP request/response paradigms.
- This is can add a middle-ware/front-end GUI layers that allows to communicate with specific Android/iOS/web portal clients at a later stage.
Client side:
Using the Android SDK 21, we created a simple GUI, consisting of:
- Login page
- Registration page
Additional Information
This set up works, but requires proper dependencies in place, including:
- Apache TomEE Plume 1.7.1
- Neo4j Community 2.1.5
- Apache Httpcomponents Client 4.3.5
- Java EE 6
- Android SDK 21 (+ ADT plugin in eclipse)
- Java SE 1.8
Iteration 4: Core Working
Next Actions: Server
- Implement asynchronous requests
- Implement non-blocking mechanisms
- Implement message driven beans for posts and notifications.
- Implement JMS (Java messaging service) for post and notification transactions
- Create a post workflow
- Create a notificaiton workflow
- Define support framework for client workflows.
- Define event handlers for GUI -> controller functionality.
- Define HTTP request/response handlers for client --> server communication
- Focus on "cutting the fat". That is keeping the client as thin as possible.
- Focus on proper exception handling, defensive programming (where needed)
- Look for potential areas for speedup
- Implement security mechanism
- Look at lightweight message passing mechanisms.
- Try going generic in as many layers as possible.
- Complete workflows involving core functionality.
Iteration 5: Alpha Release
- Find and correct bugs in core functionality.
- Complete GUI and possibly refine GUI.
- Time permitting, look at issues of scalability.
- Time permitting, look at standard features list.
(This may be parallelized with the task of finding bugs).
Iteration 6: Project Completion
- Fix more bugs.
- Implement all standard functionality.
- Time permitting, look at extended features.
- Finish refining GUI.
- Make sure issues like atomicity, transactions,scalability, data integrity, are adressed to a satisfactory degree.
- Make sure the app is fast.
Javadoc
The Javadoc for the server code can be found here.
Code
The code for the server can be found in the "project/NeverEatAlone/Codebase/" folder on git.
Since the client side code has not been integrated with the server code, it has not been placed into the codebase and project. Instead, it can be found here.