Skip to main content

Filtextulator is a new made-up word. It refers to a program that transforms text in weird and wonderful ways, using filters.

Assignment 1 – Student Guide
ICTPRG501 Apply advanced object-oriented language skills
ICTPRG501 JEE Essentials
The Assignment will assess competencies for ICTPRG501 Apply advanced object-oriented language skills.
Instructions
For this assignment you will create a ‘Filtextulator’.
Filtextulator is a new made-up word. It refers to a program that transforms text in weird and wonderful ways, using filters.
You will create a server application that accepts some text and some instructions, alters the text according to the instructions, and returns the result.
You will also create an Android client. This client will accept some text and instructions regarding the filters from the user, ask the server to process the information, and display the result to the user.
A Server Application
Using JEE, build a server application that:
• contains at least four text filters (some suggestions are listed below)
• can accept a request for, and respond with, a list of available filters
• can accept some text, plus a list of filters in a specific order, and respond with the text after those filters have been applied
The server application should include
• unit tests, using mocking where appropriate
– each filter should have at least one unit test
• some integration tests
– some of the tests should test the result of applying multiple filters
• JavaDoc
Filter Suggestions
This is a list of possible text filters you could implement. You are not required to implement these specific ones, however this list should indicate the type and range of filters expected.
• change each word to start with uppercase, with remaining letters lowercase
• remove all spaces
• remove all vowels
• apply simple encryption using ROT13 (‘a’ becomes ‘n’, ‘b’ becomes ‘o’ and so on. See http://en.wikipedia.org/wiki/ROT13)
• encrypt using the latin alphabet version of Atbash (‘a’ becomes ‘z’, ‘b’ becomes ‘y’ and so on. See http://en.wikipedia.org/wiki/Atbash)
• use ‘pig latin’ (move the first consonant to the end, and add ‘ay’. So ‘pig’ becomes ‘igpay’ and
‘hello’ becomes ‘ellohay’. See http://en.wikipedia.org/wiki/Pig_latin)
• use ‘opish’ (‘op’ is added after each consonant. So ‘pig’ becomes ‘popigop’ and ‘hello’ becomes ‘hopeloplopo’)
• reverse each word (So ‘pig’ becomes ‘gip’ and ‘hello’ becomes ‘olleh’)
A Client Application
Build an Android application that:
1. requests from the server a list of available filters
2. displays that list to the user
3. allows the user to reorder the list of filters using drag and drop
4. allows the user to turn off one or more of the filters
5. allows the user to type in some text
6. when the user clicks a specific button, the client sends the text plus the list of chosen filters to the server for processing, then displays to the user the altered text returned from the server
The application should include:
• documentation for the user
• JavaDoc
• error handling: if the server returns an error, or cannot be contacted, the application should detect this and inform the user
Design Guidelines and Suggestions
• Create an interface or an abstract class for use by all filters. Your server code should use these filters by their interface/abstract class type. That way you can later add more filters with minimal change to your server.
• Think about design patterns you could use. For example, depending on how you decide to design your filters, the Factory Pattern might be useful.
• The body of your requests should be formatted in your choice of either XML or JSON. The format should also be documented.
• A servlet or controller should contain as little code as possible. Your filters, and the code to use them, should mostly not be in a servlet, but instead called upon by the servlet.
• The list of filters sent to the client should include some sort of description of the filter, for display to the user, as well as some sort of ‘short’ name, that the server uses to recognise a specific filter.
• Think about handling the following sorts of errors in the client:
– server not reachable
– server’s response missing expected information
– server responds with error message
• Think about handling the following sorts of errors in the server:
– client requests unknown filter
– client sends empty text to be filtered
– client requests no filters
If you haven’t created a program of this size before, it can seem a bit daunting. Pick one small part that seems easier than the rest, that will let you see something. Create a program that does this thing, only. Then pick another small feature, and add that. Keep going, and you end up with a full program!
For example, you might approach the Android app by first creating an app that shows a screen wth a list. The list might be String resources, and might be a list of fruit, or your favourite movie titles. Try it out, make sure it works as you want. Then you might add a text box where the user can type something. Then add a button. Then add code so that when the user taps the button, a new screen displays the text. Keep going in this way, and eventually you will have an entire app.
Grading of Assignments
This is how your assignment will be marked:
Has the student demonstrated the following?
ICTPRG501 Apply advanced object-oriented language skills
C NYC
Performance Evidence (Note: If a specific volume or frequency is not stated, then evidence must be provided at least once) Evidence of the ability to:
develop client-server applications using an object oriented language
produce a graphical user interface (GUI)
build, debug and test the applications
produce documentation for the applications.
Knowledge Evidence
To complete the unit requirements safely and effectively, the individual must:
describe the architecture of a framework for web-enabled application development
summarise the techniques for implementing inter-process communication
describe the process for the development of large-size application
identify and outline testing techniques as applied to distributed application development
identify and outline techniques for implementing third-party supplied code.
For the % grade, you will be also be marked according to the following:
Code Design and Quality Mark
• Has a coding standard been followed consistently?
• Are classes divided into logically sensible packages?
• Are controller methods short? Non-trivial work should be in a separate, potentially reusable class.
• Is invalid input checked for and handled?
• Does the design support easy addition of new filters, preferably via polymorphism?
• Is there evidence of considered use of Design Patterns?
• Are all Exceptions handled? /40
Unit Testing
• Are Unit Tests included? There should be, at minimum, one for each text filter.
• Is each unit test small, and easy to understand?
• Has mocking been used appropriately?
• Is there at least one integration test that tests applying more than one filter?
• Does each test have either a comment, or suitable name, so it is easy to tell what it is designed to test and what the expected outcome is?
• Do all tests pass? /40
Documentation
• Is every public method fully documented with JavaDoc?
• Are there normal comments in the code to assist understanding of complicated sections of logic?
• Is the JSON or XML data exchange format fully documented?
/20
TOTAL /100
WEIGHTED TOTAL /50
Android Client
Worth 50% of the total assignment.
Code Design and Quality Mark
• Has a coding standard been followed consistently?
• Are classes divided into logically sensible packages?
• Are Exceptions handled?
• Is an error returned by the server handled sensibly?
• Is the absence of a network handled?
• Is a network connection timeout handled?
• Has logging been used?
• Is invalid user input handled safely?
/40
Documentation
Programmer:
/25
• Is every public method fully documented with JavaDoc?
• Are there normal comments in the code to assist understanding of complicated sections of logic?
User:
• Does the app contain documentation for the user?
• Is the documentation written with non-technical language?
• Does the documentation sufficiently cover how to use the program?
GUI
• Has attention been paid to support of different screen sizes?
• Has drag and drop been used?
• Is some form of thread management in use so the network request does not run on the UI thread? Perhaps an AsyncTask?
• Is there any user feedback mechanism while waiting for a response from the server?
/35
TOTAL /100
WEIGHTED TOTAL /50  
CLICK HERE TO ORDER THIS PAPER………………………NO PLAGIARISM Get 100% Original papers from the writing experts
Logo
CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS……

Comments

Popular posts from this blog

Starting with this provided code, add the following functionality

1.Starting with this provided code, add the following functionality: Replace hardcoded strings “Zero”, “One”, “Two”, “Three” in the ArrayList based on user typed input (use Scanner or JOptionPane classes). The user will be prompted for the String to be stored in the ArrayList and then hit enter. The user will be able to continue to add items to the ArrayList until they just hit enter without typing anything. Once the user does this (hits enter without typing anything), the program will display all of the elements of the ArrayList, both the index and String values, in a table. It will do this via a single loop making use of an iterator method. 2. Starting with this provided code, add the following functionality: Use a Try/Catch block so that the exception is caught and the program exits a bit more gracefully. Save this file as TryCatch.java. (Be sure to rename the Public Class accordingly.) Starting with the provided code again (without the Try/Catch block), fix the code so that

Josie Eskander

  Question 1: Task 1: Report Assume you are Josie Eskander. You are writing in response to techno trading P/L’s advertisement of a new laptop at 20% below normal price. You want information on brand name, availability of service and repairs, delivery times and methods of payment. Write the letter using the seven basic parts of the letter. In the opening paragraph present a clear and courteous request. Secondly write a response from techno trading giving details and proposing the sale. Provide draft of both emails in the space below. Question 2: Task 2: Report In pairs, nominate a good and a bad letter writer. Discuss the key differences. Write a good/bad letter from techno training to Alex Antonov accepting/declining his proposal to invest in the business Question 3: Task 3: Report Write a letter from techno trading p/l to a new client ‘new realities p/l’ urging them to buy techno new virtual reality software. Make a strong argument for the product. Question 4: Task 4: Report Write a l

Sandra Coke is vice president for research and development at Great Lakes Foods (GLF), a large snack food company that has approximately 1,000 employees

Chapter 2 I Trait Approach 33 CASE 2.1 Choosing a New Director of Research Sandra Coke is vice president for research and development at Great Lakes Foods (GLF), a large snack food company that has approximately 1,000 employees. As a result of a recent reorganization, Sandra must choose the new director of research. The director will report directly to Sandra and will be responsible for developing and testing new products. The research division of GLF employs about 200 people. The choice of directors is important because Sandra is receiving pressure from the president and board of GLF to improve the company's overall growth and productivity. Sandra has identified three candidates for the position. Each candidate is at the same managerial level. She is having difficulty choosing one of them because each has very strong credentials. Alexa Smith is a longtime employee of GLF who started part-time in the mailroom while in high school. After finishing school, Alexa worked in as many as