FIT5046: Mobile and Distributed Computing Systems - Dynamic and Static Queries - IT/Computer Science Assignment Help

Download Solution Order New Solution
Assignment Task:

An Overview: 

  •  The assignment is an individual assignment.
  •  This assignment 1 (server-side) does not have an interview.
  •  This assignment requires submitting a report that includes all the required code, diagram, and screenshots as specified and in the right order, format and structure.  (Note: Your mark will be based on the code and screenshots provided in the report)
  •  Practical Assignment (client-side) Phase 2 will be developed based on this assignment Phase 1 and it will have an interview.  
  •  The marks allocated for all the tasks in this assignment will add up to 100 marks and it is worth 10% of the total mark for this Unit. 

 Objectives and learning outcomes:

  •  To identify, develop and apply different approaches and methods for building distributed and mobile computing systems;
  •  To select and apply effective and efficient (server-side) approaches for this particular distributed application;
  •  To develop and test the server-side components of a mobile distributed application. 

My Movie Memoir (M3)

The practical assignments Phase 1 and Phase 2 (server-side and client-side) aim towards building a mobile and distributed, personalised diary application for keeping track of movies (and TV series) that the user watched or wants to watch in future. The application will provide a movie memoir that allows the user to create a collection of memories that they had about the movies.  

 

  • The practical assignment 1 will focus on creating the backend and server-side components of this mobile, distributed system. The server side will make the data and services (methods) available to all the mobile clients through an API (RESTful web services APIs). 
  • The practical Assignment (server-side) requires: 1) creating a database (Java DB database in NetBeans) that will include the specified tables and populating the tables with meaningful data; and 2) creating a RESTful web service that enables querying this data and updating it if necessary.  
  • The practical Assignment 3 (client-side) Phase 2 will involve creating an android application that will interact with public web APIs and the REST web service (created in Assignment 1) to query and retrieve data.  Assignment 1 MUST be implemented in NetBeans.  

Assignment3

 
Task 1 – Database : 
Based on the requirements below, you will create the backend database and its tables with the specified attributes and populate them with data as described in part (b). You need to add all the required constraints and create the relationships.  a) You need to create the following tables (you should not add any additional table): User Person Table (3 marks) The user Person table will store data about the user that include: first name, surname, gender, DoB, address (street number and street name), state, and postcode (only consider for Australia).  
 
Credentials Table  

The Credentials table will store information about a user’s credentials including: username (we suggest to use the email for the username), password hash, and sign-up date. There is no need for extra security measurements in this application such as adding salt to hashing. Also, there is no need for considering password expiration. 
 
Memoir Table 

This table will store a collection of memories about movies that the user have watched. These memories include the following information: movie name, movie release date, the date and time that the user watched the movie, a comment about user memory or opinion, a rating score given by the user (not by the public) based on stars. The table below shows the star ratings compared to a 1 – 99 scale. In the Assignment 3 (the phase 2 of this assignment) you must show all the rating scores as stars (half and full). 

table

Cinema Table (2 marks) The Cinema table will store data about the cinema that include: cinema name, and its location as suburb or postcode (you can decide on this based on the APIs you will use in Assignment 3). - One person/user can have multiple movie memories in the Memoir table.  -One movie memory can be associated with only one cinema. One cinema can repeated in different memories. -The person/user will have only one memory for a movie experience. It means if the user watches the same movie and in the same cinema, it will create a different experience and memory (the date and time will also be different). 
 
b) You will use an appropriate and correct schema based on the above-mentioned requirements and implement the right relationships and choose the right FKs. Provide a simple ER diagram. (2 marks) We strongly recommend using a unique ID for each table as the PK because it makes it easy when working with NetBeans RESTful web services.  

c) All the tables need to be populated with meaningful data and appropriate data types. (2 marks) You need to have at least 3 records in the user person and credentials tables. In Assignment 3 (practical assignment Phase 2), you will automatically generate the latitude and longitude values from the user person’s full address data so make sure you enter correct and real world values. To populate the credential table, you can use an online hash converter to convert a password to hash values but in Practical Assignment (client-side), you will hash the password using Java code and libraries. In the memoir table, you need to include at least 10 records/memories for one of the users. In the cinema table, you will enter at least 5 cinemas. You need to make sure you enter such data that all the queries in Task 4 will return data (not an empty response.

Task 2 - RESTful Web Service 
 
A RESTful web service should be created based on the above-mentioned database and tested on the browser without any error.    

RESTful

Task 3 – Dynamic and Static Queries 
 
In this part, the web service will be extended by adding extra methods and queries using the Java Persistence Query Language (JPQL). The queries that you write will apply two different approaches as discussed in the lectures and tutorials: one approach where you define a static query (NamedQuery) in Entity class and then you call it from a RESTFacade’s method, and the other approach where you create a dynamic query directly in a RESTFacade’s method. 
 
a) You will write additional REST methods to query all the tables based on each attribute that the table has. E.g. if the user Person table has 6 attributes, you write 6 REST methods to query each attribute separately. This excludes the method to query the primary key (id) because it is automatically generated. For this task, provide all the code BUT only one screenshot for one of the REST methods for each table.
 
b) You need to create a new REST method that enables querying the user Person table using a combination of three attributes (e.g. address, state and postcode). This should be implemented as a DYNAMIC query. You will decide which attributes to consider based on their usefulness in the query. 
 
c) You will write a new REST method that enables querying the memoir and the cinema tables using a combination of two attributes in the condition where each attribute is from a different table. The query should be a DYNAMIC query using an IMPLICIT join. 
 
d) You will write a new REST method that enables querying the memoir and the cinema tables using a combination of two attributes in the condition where each attribute is from a different table. The query should be a STATIC query using an IMPLICIT JOIN. For this, you also need to show the code for the NamedQuery in the entity class. 


 Task 4 - Advanced REST methods (60 marks) 
 
a) You will add a REST method that will accept a user person id, a starting date and an ending date and return a list that contains the cinema’s suburbs/postcodes and the total number of movies watched per suburb/postcode during that period. 
b) You will add a REST method that will accept a user person id and a year, and return a list that contains the month names and the total number of movies watched per month in that year. (10 marks) 
c) You will add a REST method that will accept a user person id and return the name(s), the rating score(s) and release date(s) of the movie(s) with the highest rating score given by that user. Please note that the result can be a list if more than one movie received the same score. 
d) You will add a REST method that will accept a user person id and return a list of movie names and their release years for those movies that their release year is the same as the year the user watched them. E.g. if a movie was released in 2020 and the user watched it in 2020. (10 marks)

e) You will add a REST method that will accept a user person id and return a list of movie names and their release years for those movies that the user has watched their remakes as well. E.g. If the user watched The Lion King 2019 and The Lion King 1994. 

f) You will add a REST method that will accept a user person id and return a list of the movie names, their release dates and rating scores for FIVE movies that have been released in the recent year and have the highest rating score (five top ones). 

Late Submission:

Late Assignments or extensions will not be accepted unless you submit a special consideration form and provide valid documentation such as a medical certificate prior to the submission deadline (NOT after). Otherwise, there will be a 5% penalty per day including weekends.  Submission Guideline: A ZIP file will be uploaded to Moodle by the deadline including the following files: 
 
1. The REPORT with all the specified code and screenshots that were mentioned in each task in ONE word/pdf report document, NOT as separate image files.  

2. The NetBeans project including all the packages and classes and files.  

3. The zip file should have this name: FIT5046Assign1-Sem1-[studentname]-[studentid][tutor name].zip 

 

This FIT5046: IT/Computer Science Assignment has been solved by our IT/Computer Science Experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.