美文网首页
讲解:COMP5347、Web Applicaon、Java、J

讲解:COMP5347、Web Applicaon、Java、J

作者: kuijinzhong | 来源:发表于2020-01-12 11:42 被阅读0次

    4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 1/13Group Assignment - Source CodeDue May 17 by 23:59 Points 20 Submitting a file upload File Types zipSubmit AssignmentCOMP5347 Web ApplicaonDevelopmentGroup Assignment - Data AnalycsWeb ApplicaonIntroduconIn this assignment, you will work as a group to build a small data analytic web application. Each group must have three members. You willdemonstrate that you are able to design and implement a typical three-tier web application. You will also demonstrate that your application cancommunicate with third party web site through published web services.You will be given a data set, containing some historical data. You will need to query and compute various summary statistics at the server-side andpresent the results on a web page. You may also need to download latest data from the original data source and append that to the data set.Dataset4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 2/13The main dataset contains a number of files in JSON formats storing revision histories of Wikipedia articles. The dataset was created by queryingWikipedia API (https://www.mediawiki.org/wiki/API:Main_page) . The articles are selected from Featured Articles(https://en.wikipedia.org/wiki/Wikipedia:Featured_articles) .Each file stores the entire revision history of an article up to 24 March 2019 (around 1:00 PM Sydney time). The file is named after the article’s title.Each revision is stored as a JSON object, with many properties. The whole file contains an array of many revision objects. Not all properties will beused in the assignment. Below are the relevant ones:title: stores the title of the articletimestamp: stores the date and time a revision was madeuser: stores the user name or IP address of the user that made the revisionanon: the presence of the field indicates that the revision is made by anonymous users.Explanation of other properties can be found from corresponding MediaWiki API document at this page(https://www.mediawiki.org/wiki/API:Revision) . Below are examples of two typical revision objects (Australia.json):[ { revid: 889196604, parentid: 888459794, minor: true, user: SS49, userid: 33136685, timestamp: 2019-03-24T03:26:51Z, size: 198222, sha1: 2b8eefacfbeb07bb85b124065a3760e4dccfb1ce, parsedcomment: …, title: Australia }, … { revid: 381546472, parentid: 381467622, minor: false, user: 86.161.49.158, anon: true,4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 3/13 userid: 0, timestamp: 2010-08-28T19:26:02Z, size: 144127, sha1: d5116fb48689c8acd28afbafb94fc32dc4f6b8f5, parsedcomment: …, title: Australia },…Both revision examples shown above are from an article with title “Australia”. The first revision is made by a registered user with name “SS49”. Thesecond revision example is made by an anonymous user as indicated by the presence of property ‘anon’. The value of ‘user’ property is an IPaddress.The dataset also contains several extra text files: admin_*.txt and bot.txt. Wikipedia has 4 administrator types including active administrators, semiactiveadministrators, inactive administrators and former administrators. Each of admin text files (admin_active.txt, admin_semi_active.txt,admin_inactive.txt, and admin_former.txt) contains a list of all administrators in English Wikipedia depending on the admin type. Administrators canperform special actions on wiki pages, some of which are recorded as revisions. The bot.txt contains a list of all bot users in English Wikipedia. Thebot users have registered names but are not human editors. They are scripts designed for automatic tasks, such as fixing grammatical errors ordetecting vandalism. Many bot user’s actions would result in new revisions. From the provided files, you may notice that several bot users are alsoadministrators since they received administrator privilege, so they are able to perform special actions.FunconalRequirementsMain/Landing PageThe Landing page should display key information about the application, ArticleInsight, in the form of text and images including description of theavailable functionality with some sample analytics graphs that can be generated through the application. Also, it should provide two options; Sign-upand Login. Users cannot access or use available statistic functions until they create a valid account and login.All users must sign-up before they can see and interact with the application’s functionality. So, your application should allow users to create anaccount first. The user must provide first name and last name, email address (username), and password. You need to do appropriate datavalidation to ensure valid data is entered before creating an account. The sign-up and login functions must be secure in terms of sign-up and login.4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 4/13You do not need to implement any verification for the sign-up process. Once all data is entered correctly, an account should be created andmaintained in the database.Once an account is created successfully, a user should be able to login using their email address and password. Users should be able to see andinteract with the analytics functionality only upon successful login (you must manage the login sessions properly). Users should also be able tologout from your web application.ArcleAnalycsFunconalityYour application should compute various analytics at overall data set level and at individual article level.Overall AnalycsFor overall analytics, you need to find out and display the following as text:Titles of the two articles with highest number of revisions. This is the default behavior.Titles of the two articles with lowest number of revisions. This is the default behavior.The user should be provided with a way to change the number of articles for highest and lowest number of revisions, the same number shouldbe applied to both categories.The article edited by largest group of registered users. Each wiki article is edited by a number of users, some making multiple revisions. Thenumber of unique users is a good indicator of an article’s popularity.The article edited by smallest group of registered users.The top 2 articles with the longest history (measured by age). For each article, the revision with the smallest timestamp is the first revision,indicating the article’s creation time. An article’s age is the duration between now and its creation time.Article with the shortest history (measured by age).Beside the above functionality, you also need to provide some visual analytics including:A bar chart of revision number distribution by year and by user type across the wholedataset. Figure 1 shows an example.4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 5/13A pie chart of revision number distribution by user type across the whole data set.Figure 2 shows an example. When users click or users’ mouse hovers to the administrator part of the pie chart, you must show the distributionof each administrator type (active, semi-active, inactive, and former).Figure 1: Example bar chart showing overall yearly revision number distribution4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 6/13Figure 2: Example pie chart of revision number distribution by user typeWe are interested in four types of users: anonymous, administrator, bot and regular user. Revisions made by anonymous users are indicated by the“anon” field in the revision JSON object. Revisions without “anon” field can be made by the other three types of users. You will need to compare theuser name with the names in the provided text files to determine if a user is administrator, bot or just regular ones.The text summary should always be displayed on the page in “Overall” state. You should provide a way for an end user to switch between the twocharts. This could be a button or a link.Individual ArcleAnalycsThe individual page statistics should provide a mechanism, for instance, a simple drop-down list, for your application’s end user to select an articlefrom a list of all available article titles in the data set. You should also use other more user-friendly mechanisms or add features, such as total4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 7/13number of revisions, next to an article title, to assist with the selection. You may also allow end users to enter the first few letters and useautocomplete feature to quickly locate the title of interest.Once an end user selects an article, your application needs to check if the history of that article in the database is up to date. We consider historiesless than one day old as up to date. For instance, if a user has selected article “Australia” at 8:00pm on 21 March 2019 and the latest revision of“Australia” in the database was made on 10:00pm, 20 March 2019; the history is considered as up to date and you do not need to do anything.However, if the latest revision of “Australia” was made on 10:00am, 20 March 2019, the history is considered as not up to date. You need to queryMediaWiki API to pull all possible new revisions made after last update.There should be a message indicating if a data pulling request is made and if so, COMP5347作业代写、Web Applicaon作业代做、Java编程语言作业调试、Java课程作业代写 代做数据库how many new revisions have been downloaded. It is possiblethat a data pulling request is made, but the article has no new revision to be downloaded.For the selected article, display the following summary information:The titleThe total number of revisionsThe top 5 regular users ranked by total revision numbers on this article, and the respective revision numbers.You also need to produce three charts:A bar chart of revision number distributed by year and by user type for this article.A pie chart of revision number distribution based on user type for this article.A bar chart of revision number distributed by year made by one or a few of the top 5 users for this article.For the last chart, make sure you provide a way to select the users.You should also provide year filter (i.e., “From:” and “To:”) selection. If users change the year filter, both summary information and charts must begenerated based on data from this range of years only.Figure 3 shows an example of the yearly revision distribution using data in file “Germany.json”. Figure 4 shows a pie chart of user type distributionfor article “Germany”. Figure 5 shows a bar chart of the year revision distribution of user “Horst-schlaemma” for article “Germany”. These figures arejust some illustrations, you can use different color or design to show the chart. The data shown in these figures may not reflect the actual dataprovided in the json files. The charts should not be displayed in one page, you should provide a mechanism for end users to switch among charts.4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 8/13Figure 3: Example bar chart showing yearly revision number distributionFigure 4: Example Pie chart showing user type distribution4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 9/13Figure 5: Example single user yearly revision distributionAuthor AnalycsIn this page, you should enable the end user to display all articles that are changed (or have revisions made) by a specific author. To do so, youshould allow the end user to an author name in a free text format.You should display the articles’ names along with number of revisions made by that author next to it. The end user should also be able to select tosee time stamps of all revisions made to an article, if that author made more than revision to an article he is attributed with.Design and ImplementaonRequirementsYour application should operate on a single page, with all communications between client and server need to be asynchronous. For simplicity, it isallowed to implement the main/landing page functions in a separate page. The other functions (overall, individual and author statistics) must beimplemented within a single page (following SPA principles).You should design your own layout. You must use the MVC pattern to structure your application and interaction among components. The designand UI interfaces should be user-friendly and intuitive.4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 10/13You should use JavaScript to implement both front and back end of the application. The back-end application should use Node.js framework. Theback-end storage system should be MongoDB. You can use other popular JavaScript libraries not covered in this course.Your application should show good performance when running any functionality. You should consider techniques for optimizing applicationperformance including communications among tiers and database design and implementation. Your design and implementation should not bespecific for the provided dataset. You should consider a dynamic design and implementation that work properly and scale with any dataset.We have created an organization on Sydney Github, you can access it from this link (https://github.sydney.edu.au/orgs/SOFT5347-Web-ApplicationDevelopment/dashboard). You will also receive a Github invitation via email to join this organization. You must create a new repository for yourproject and use this Github repository to maintain your code and project. We will use Github to verify each group member’s contributions.DatasetDataset for development purpose can be downloaded here: datasetApplicaonDemoEach group must demo their application during week 12 lab. Note the demo will use another dataset that conforms to structure of the datasetincluded in this assignment. A demo set will be provided All team members must prepare and participate in the demo. Each team member will berequired to demo one part of the application, and they should be able to answer any question about the application design and implementation. Inpreparation for your demo:Expect to discuss edge casesAdhere to good user design and user experience principlesEach member should have complete understanding of how the overall system works. i.e. Someone worked delicately on the frontend must alsobe able to answer database questions. It is highly recommended to follow the bus factorFollowing good software design principles is recommendedIf you are using external libraries not discussed in the tutorials, discuss it with your tutor. Your tutor maybe unfamiliar with the library youreusing. Expect to answer questions about the usage of the library in your assignment. e.g. reasons for using the library and alternative solutions.4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 11/13Group Member ContribuonIf members of your group do not contribute sufficiently you should alert your tutor as soon as possible. The course instructor has the discretion toscale the group’s mark for each member as follows:Level of Contribution Proportion of final grade receivedNo contribution 0%Partial/poor contribution 30%-60%Major contribution 100%Deliverable and Submission GuidelineEach team must make two submissions through Canvas:Application source code: submit a zip file with all your project files to this particular page submissionTechnical report: submit a pdf file of your report on Canvas to the other assignment page about the technical report submissionMarking GuideApplication Design and Implementation (80%)Functional RequirementsMain PageArticle Analytics – OverallArticle Analytics – IndividualArticle Analytics – AuthorDesign and Implementation RequirementsTechnical Report (20%)Note: any assignment updates will be made in Canvas and announced via Ed. 4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 12/13Academic honestyWhile the University is aware that the vast majority of students and staff act ethically and honestly, it is opposed to and will not tolerate academicdishonesty or plagiarism and will treat all allegations of dishonesty seriously.Further information on academic honesty, academic dishonesty, and the resources available to all students can be found on the academic integritypages on the current students website: https://sydney.edu.au/students/academic-integrity.html (https://sydney.edu.au/students/academicintegrity.html).Further information for on research integrity and ethics for postgraduate research students and students undertaking research-focussed courseworksuch as Honours and capstone research projects can be also be found on the current students website:https://sydney.edu.au/students/research-integrity-ethics.html (https://sydney.edu.au/students/research-integrity-ethics.html) .Compliance statementIn submitting this work, I acknowledge I have understood the following:I have read and understood the University of Sydneys Academic Honesty in Coursework Policy 2015(https://sydney.edu.au/policies/showdoc.aspx?recnum=PDOC2012/254&RendNum=0) .The work is substantially my own and where any parts of this work are not my own I have indicated this by acknowledging the source of thoseparts of the work and enclosed any quoted text in quotation marks.The work has not previously been submitted in part or in full for assessment in another unit unless I have been given permission by my unit ofstudy coordinator to do so.The work will be submitted to similarity detection software (Turnitin) and a copy of the work will be retained in Turnitins paper repository forfuture similarity checking. Note: work submitted by postgraduate research students for research purposes is not added to Turnitina€?s paperrepository.Engaging in plagiarism or academic dishonesty in coursework will, if detected, lead to the University commencing proceedings under theAcademic Honesty in Coursework Policy 2015 (https://sydney.edu.au/policies/showdoc.aspx?recnum=PDOC2012/254&RendNum=0) and theAcademic Honesty Procedures 2016 (http://sydney.edu.au/policies/default.aspx?mode=glossary&word=Academic+honesty) .4/16/2019 Group Assignment - Source Codehttps://canvas.sydney.edu.au/courses/14868/assignments/123350 13/13Engaging in plagiarism or academic dishonesty in research-focussed work will lead to the University commencing proceedings under theResearch Code of Conduct 2013 (https://sydney.edu.au/policies/showdoc.aspx?recnum=PDOC2013/321&RendNum=0) and the AcademicHonesty Procedures 2016 (http://sydney.edu.au/policies/default.aspx?mode=glossary&word=Academic+honesty) .Engaging another person to complete part or all of the submitted work will, if detected, lead to the University commencing proceedings againstme for potential student misconduct under the University of Sydney (Student Discipline) Rule 2016(http://sydney.edu.au/policies/showdoc.aspx?recnum=PDOC2017/441&RendNum=0) .转自:http://www.7daixie.com/2019050657138829.html

    相关文章

      网友评论

          本文标题:讲解:COMP5347、Web Applicaon、Java、J

          本文链接:https://www.haomeiwen.com/subject/gwmiactx.html