1. Homepage
  2. Programming
  3. FIT2095 e-Business software technologies Assignment 2: EMA data persistent

FIT2095 e-Business software technologies Assignment 2: EMA data persistent

Engage in a Conversation
MonashFIT2095e-Business software technologiesEMA data persistentMongoDB

Assignment 2 CourseNana.COM

Thinks you will learn  CourseNana.COM

In this assignment, you will learn the following: CourseNana.COM

Save your data persistently in MongoDB Perform DB different operations
Deploy your code to a Cloud Provider Respond with HTML fi
les and JSON Render Dynamic HTML files CourseNana.COM

Push to GitLab Repository Work in teams CourseNana.COM

Assignment 2 Theme  CourseNana.COM

Due to a large number of events and categories, Monash's IT department started to think of the need to store their data persistently. Two more issues have emerged: the IT department cannot host the application locally on-premise. Instead, it prefers to deploy it to a cloud provider that charges per usage. Secondly, Monash mobile (Android and IOS) and desktop applications have requested access to the EMA data. CourseNana.COM

Assignment 2 Specifications CourseNana.COM

As mentioned in the Assignment 2 Theme section, this assignment is about: CourseNana.COM

1. SaveEMAdatapersistentlyinMongoDB.Inotherwords,youmustremovethearrayofobjects you have used in assignment-1 and replace it with MongoDB CourseNana.COM

2. ServeclientswithJSONdata
3. DeployyourEMAapptoacloudprovider
CourseNana.COM

Assignment 2 Structure CourseNana.COM

In the figure above, you will notice the following: 1. TheEMAprojectisservingtwotypesofURLs CourseNana.COM

1. http://fit2095.a2.au/events/543210/list
This is developed in assignment 1, where the server responds with HTML les CourseNana.COM

Assignment 2 is due on Friday of Week 8, Septermber 15, at 11:55 pm. CourseNana.COM

2. http://fit2095.a2.au/api/v1/events/543210/list where 543210 is the student id, CourseNana.COM

and fit2095.a2.au is the server address
In the second type, the server responds with JSON data. This type of REST API is designed for other devices, such as mobile phones, TVs, and cars.
CourseNana.COM

There is no direct access to the data. In other words, clients can access the data through the server only. CourseNana.COM

Teamwork CourseNana.COM

Produce together the overall app design/development plan Produce together the team tasks
Agree on
who does which set of individual tasks
Check-in regularly with one another
CourseNana.COM

Anything else about how you'd like them to work together [e.g. git commit authorship, branches, notes from meetings, Trello boards, etc.] CourseNana.COM

Individual work: You should produce the individual tasks yourself but should discuss ideas with your team CourseNana.COM

Team Tasks CourseNana.COM

1. Designtheendpointsroutingtable.Inthistable,youmustlistalltheendpointsyourprojectwill listen to, their methods, and their description. It's your task to name the pathnames, endpoints, and query string parameters. CourseNana.COM

2. Theteamisresponsibleforaddingthefollowingfeaturestotheindex.htmlle CourseNana.COM

  1. Twolabelsthatshowthecurrentnumberofeventsandcategories CourseNana.COM

  2. ThreelabelsshowthenumberofAdd,Update,andDeleteoperationsinvokedonthe database. CourseNana.COM

    (HINT: This can be implemented by adding a new collection (table) with three counters that are incremented when their operations are invoked.) CourseNana.COM

Individual-Work Tasks CourseNana.COM

Each student in the team must pick one group of individual tasks to implement. However, cooperation between the team members is crucial for all the specs and features to work seamlessly. CourseNana.COM

Tasks Group 1 (student #1) CourseNana.COM

You MUST use your Monash ID as a segment in the pathname of all the endpoints of this group of tasks. For example, if your Monash ID is 543210, the endpoint could be CourseNana.COM

http://localhost:8080/category/543210/add CourseNana.COM

1. DevelopaMongooseSchemaforCategoryclass CourseNana.COM

  1. Apply 'Required' for mandatory fields CourseNana.COM

  2. Addavalidatortothefield'Name'toacceptalphanumericvaluesonly CourseNana.COM

  3. Thecategoryschemamustcontainafieldnamed'eventsList',whichisanarrayof events' references. It lists all the events in this category. (HINT: You will use it with the function 'populate') CourseNana.COM

2. AddnewRESTfulAPIendpointsthatareresponsibleforthefollowing: CourseNana.COM

  1. Insertnewcategory.ThedatainaJSONformatmustbesentthroughthebodyofthe HTTP request. An example of the endpoint URL could be http://localhost:8080/api/v1/category/543210/add CourseNana.COM

    {
    "name":"Cat3",
    CourseNana.COM

    "description":"Desc" } CourseNana.COM

    The endpoint must respond with a JSON object containing the category ID of the newly added category
    For example:
    CourseNana.COM

    {
    "id": "CTE-4899"
    CourseNana.COM

    } CourseNana.COM

  2. Listallcategories.AnexampleoftheendpointURLcouldbe http://localhost:8080/api/v1/category/543210/list
    This endpoint must return the list of all categories and the details for their events in a JSON format (see the populate method) CourseNana.COM

3. AddnewRESTfulAPIendpointsthatareresponsibleforthefollowing: CourseNana.COM

1. DeletecategorybyID.ThisendpointdeletesacategorybyitsIDandalltheeventsthatare listed in the 'eventList' eld (see point 1.3). NO further delete cascade is required.
The ID must be sent through the body of the request in a JSON object. For example
CourseNana.COM

{
"categoryId": "CCA-4960"
CourseNana.COM

} CourseNana.COM

The endpoint must return a JSON object containing the number of deleted documents. (Remember to use the correct HTTP method.) CourseNana.COM

Example of the return object: CourseNana.COM

{
"acknowledged": true, "deletedCount": 1
CourseNana.COM

} CourseNana.COM

  1. UpdatecategorynameanddescriptionbyID:TheID,newnameanddescriptionaresentasa JSON object through the request body. For example: CourseNana.COM

    {
    "categoryId": "CCA-3001", "name": "new Name", "description": "new description"
    CourseNana.COM

    } CourseNana.COM

    The endpoint must return an object with a message to conrm the update or if the ID is not found (HINT: check the return of the update statement). For example: CourseNana.COM

    {
    "status": "ID not found"
    CourseNana.COM

    } CourseNana.COM

  2. Updatealltheassignment-1endpointstouseretrieve,insert,anddeleteSQLoperationsfrom MongoDB using Mongoose CourseNana.COM

  3. DeployyourprojecttoavirtualmachineonyourGCPaccount.TheUIandtheAPIendpoints must be accessible through your public IP address. CourseNana.COM

Tasks Group 2 (student #2) CourseNana.COM

You MUST use your name as a segment in the pathname of all the endpoints of this group of tasks. For example, if your name is David, the endpoint could be CourseNana.COM

http://localhost:8080/event/david/add. CourseNana.COM

1. DevelopaMongooseSchemafortheEventclass CourseNana.COM

  1. Apply 'Required' for mandatory elds CourseNana.COM

  2. addavalidatortotheeld'Capacity'toacceptnumbersbetween10and2000(inclusive) only CourseNana.COM

  3. Theeventschemamustcontainaeldnamed'categoryList',whichisanarrayof categories' references. It lists all the categories in this event. (HINT: You will use it with the function 'populate') CourseNana.COM

2. AddnewRESTfulAPIendpointsthatareresponsibleforthefollowing: CourseNana.COM

  1. Insertnewevent.ThedatainaJSONformatmustbesentthroughthebodyoftheHTTP request. An example of the endpoint URL and its request could be: http://localhost:8080/studentName/api/v1/add-event CourseNana.COM

    {
    "name": "Event6",
    "description": "Desc ", "startDateTime": "2023-08-01", "durationInMinutes": 100, "capacity": 100,
    "categories": "CCA-3001,CCA-7895"
    CourseNana.COM

    } CourseNana.COM

    The ID of the new event must be added to the 'events' array eld in all the categories under this event.
    The endpoint must return an object containing the event ID of the new event. For example:
    CourseNana.COM

    {
    "eventId": "EKU-1429"
    CourseNana.COM

    } CourseNana.COM

  2. Listallevents:Thisendpointmustreturnthelistofalleventsandthedetailsfortheir categories in a JSON format (see the populate method) CourseNana.COM

    An example of the endpoint URL could be: http://localhost:8080/studentName/api/v1/events CourseNana.COM

3. AddnewRESTfulAPIendpointsthatareresponsibleforthefollowing: CourseNana.COM

1. DeleteeventsbyID.TheIDissentasaJSONobjectthroughthebodyoftherequest.For example: CourseNana.COM

http://localhost:8080/studentName/api/v1/delete-event CourseNana.COM

{
"eventId":"EPP-5901"
CourseNana.COM

} CourseNana.COM

The ID of the deleted event must be removed from the 'eventsList' array in all the categories that are listed in the 'categoryList'. No further delete cascade is required. Example of the return object: CourseNana.COM

{
"acknowledged": true, "deletedCount": 1
CourseNana.COM

} CourseNana.COM

4. UpdateeventnameandcapacitybyID.TheID,newnameandcapacityaresentasaJSON CourseNana.COM

object through the request body. For example: http://localhost:8080/studentName/api/v1/update-event CourseNana.COM

{
"eventId":"EKU-1429", "name":"new event", "capacity":300
CourseNana.COM

} CourseNana.COM

The endpoint must return an object with a message to conrm the update or if the ID is not found (HINT: check the return of the update statement). For example: CourseNana.COM

{
"status": "updated successfully"
CourseNana.COM

} CourseNana.COM

  1. Updatealltheassignment-1endpointstouseretrieve,insert,anddeleteSQLoperationsfrom MongoDB using Mongoose. Don't forget, events now can be under multiple categories, not one. You can input the IDs of the categories separate by a comma ','. CourseNana.COM

  2. DeployyourprojecttoavirtualmachineonyourGCPaccount.TheUIandtheAPIendpoints must be accessible through your public IP address. CourseNana.COM

Source Code Quality CourseNana.COM

Two standards will be used to dene and measure the quality of your source code. CourseNana.COM

  1. SourceCodedocumentation.YoumustusetheJSDoclibrarytodocumentyoursourcecodefor this assignment. (See Assignment Control Panel-->Code Documentation and lab week 4 for help.)
    You are required to provide documentation for your:
    CourseNana.COM

    1. classes
    2. globalvariablesandconstants 3. methods
    CourseNana.COM

  2. NamingConvention.Thenamesofyourles,classes,packages,modules,methodsand variables must be descriptive and follow the Google naming style. ( See Assignment Control Panel-->Code Style for more help.) CourseNana.COM

Marking Rubric CourseNana.COM

No marks will be given to any point you could not explain during the interview
Not being able to answer multiple questions is a
ag for Academic misconduct investigation The assignment mark will be set to zero if you miss to submit to Moodle or attend A2 interview Source code similarly might be used across all students CourseNana.COM

Summary CourseNana.COM

Rubric Breakdown CourseNana.COM

CourseNana.COM

What to submit?  CourseNana.COM

Where? CourseNana.COM

Every student must submit assignment-2 to two places: Moodle and Gitlab. CourseNana.COM

For Moodle, you must ZIP your les into a single le and upload it to the assignment-2 submission link that can be found on Moodle-->Assessment. There is a quick survey you must do to enable the submission link. CourseNana.COM

For GitLab, you will be provided with a group repository, and you should commit/push your project to it. We are expecting at least three non-trivial commits to your group repo. See the marking rubric for more details. CourseNana.COM

What?? CourseNana.COM

1. AdocumentinPDF,DOCX,orMDformatthatcontains:
1. TheroutingtablethatisrequestedintheAssignment-1speci
cation 2. Stepstorunyourapplications
3. [Optional]unsolvedbugsandissues
4. thisdocumentmustbeplacedintherootfolderofyourproject
CourseNana.COM

2. Thesourcecodeoftheproject CourseNana.COM

We will mark your assignment based on the latest commit in the main branch in your GitLab repository by the due date, not in the master branch.  CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
Monash代写,FIT2095代写,e-Business software technologies代写,EMA data persistent代写,MongoDB代写,Monash代编,FIT2095代编,e-Business software technologies代编,EMA data persistent代编,MongoDB代编,Monash代考,FIT2095代考,e-Business software technologies代考,EMA data persistent代考,MongoDB代考,Monashhelp,FIT2095help,e-Business software technologieshelp,EMA data persistenthelp,MongoDBhelp,Monash作业代写,FIT2095作业代写,e-Business software technologies作业代写,EMA data persistent作业代写,MongoDB作业代写,Monash编程代写,FIT2095编程代写,e-Business software technologies编程代写,EMA data persistent编程代写,MongoDB编程代写,Monashprogramming help,FIT2095programming help,e-Business software technologiesprogramming help,EMA data persistentprogramming help,MongoDBprogramming help,Monashassignment help,FIT2095assignment help,e-Business software technologiesassignment help,EMA data persistentassignment help,MongoDBassignment help,Monashsolution,FIT2095solution,e-Business software technologiessolution,EMA data persistentsolution,MongoDBsolution,