合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

        代做 COMP33 Modern Technologies程序語言代做

        時間:2023-12-02  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



        COMP3**2 Modern Technologies on World Wide Web
        Assignment Four
        Total 12 points
        Deadline: 23:59 December 3, 2023
        Overview
        Write an express.js program and name it index.js. This program provides the API to get data about
        big cities from a MongoDB server.
        Objectives
        1. A learning activity to support ILO 1 and ILO 2.
        2. To practice how to use Node, Express, MongoDB, and Mongoose to create a simple REST API.
        Specification
        Assume you are using the MongoDB server running on the course’s node.js docker container with
        the service name mongodb listening to the default port 27017.
        The database is named "bigcities" and it contains a collection called "cities". The collection consists
        of 34800 cities with a population of at least 10000. The data for this dataset is sourced from the
        GeoNames geographical database (https://www.geonames.org/about.html). Each record in the
        collection consists of 9 fields: _id, Name, “ASCII Name”, “ISO Alpha-2”, “ISO Name EN”, Population,
        Timezone, “Modification date”, and Coordinates.
        _id Name ASCII Name ISO Alpha-2 ISO Name EN
        The id of record
        in Geonames
        database
        The name of the
        city (in UTF8)
        The name of
        the city (in
        ASCII)
        The ISO 3166
        Alpha-2 country
        code
        The English
        name of the
        Alpha-2 code
        Example 1 3862981 Cañada de Gómez Canada de
        Gomez
        AR Argentina
        Example 2 1819729 Hong Kong Hong Kong HK Hong Kong,
        China
        Population Timezone Modification
        date
        Coordinates
        The population
        of the city
        The IANA timezone
        ID
        The date of
        last
        modification
        The latitude and
        longitude values
        of the city
        Example 1 36000 America/Argentina/
        Cordoba
        2020-06-10 -**.81636,
        -61.39493
        Example 2 7482500 Asia/Hong Kong 202**09-09 22.278**,
        114.17469
        Download the big cities dataset (bigcities.csv) from the course’s Moodle site. Import the data to the
        bigcities database for the tests.
        You will be using the provided framework for developing your program. You can download the
        template file (template.txt) from the course’s Moodle site.
        index.js
        const express = require('express')
        const app = express();
        /* Implement the logic here */
        // error handler
        app.use(function(err, req, res, next) {
         res.status(err.status || 500);
         res.json({'error': err.message});
        });
        app.listen(3000, () => {
         console.log('Weather app listening on port 8000!')
        });
        TASK A
        Use the command mongoimport to import the CSV file to the MongoDB server. Here are the steps to
        import the data to your docker’s mongodb server.
        1. Use Windows Explorer or Mac Finder to go to the data/db folder (which is inside the Nodedev folder).
        2. Copy the bigcities.csv file there.
        3. Access the docker desktop and open a terminal for the c33**2-mongo container.
        4. In the terminal, type this command (in one line):
        mongoimport -d=bigcities -c=cities --type=csv --headerline --columnsHaveTypes --file=bigcities.csv
        Write the code to set up a connection to the MongoDB server using Mongoose.
        Use the following schema to access the database.
        Schema {
         Name: String,
         'ASCII Name': String,
         'ISO Alpha-2': String,
         'ISO Name EN': String,
         Population: Number,
         Timezone: String,
         'Modification date': String,
         Coordinates: String
        }
        Write the code that monitors the database connection and terminates the program if the connection
        to the database is lost.
        TASK B
        Write a routing endpoint to handle all GET requests to the URL
        http://localhost:3000/cities/v1/all?gte=xxxxx&lte=yyyyy
        for retrieving the entire big cities dataset or a portion of the dataset based on the population range
        defined in the query string. The server should respond with a JSON message and an appropriate
        HTTP status code that reflects the completion status of the GET request to the client.
        Situations:
        1. GET /cities/v1/all
        When the GET request is made without a query string,
        the program retrieves the entire dataset from the
        database. It then converts the Coordinates field to an
        object with two properties: ‘lat’ and ‘lng’. These
        properties represent the latitude and longitude values
        (both of type Number) of the city. The program returns
        the entire dataset in JSON format to the client with the
        HTTP status code 200. The returned JSON message is an
        array that contains all the documents, ordered by the _id
        field.
        2. GET /cities/v1/all?gte=xxxxx
        GET /cites/v1/all?lte=yyyyy
        GET /cities/v1/all?gte=xxxxx&lte=yyyyy
        When the GET request includes a query string with the ‘gte’ and/or ‘lte’ parameters, the
        program retrieves the dataset from the database based on the population range specified by the
        query string. ‘gte’ stands for  and ‘lte’ stands for . For example, the program retrieves all cities
        with a population  one million for the parameter gte=1000000. Another example, the program
        retrieves all cities with a population between 500000  x  1000000 for the parameters
        gte=500000&lte=1000000. After retrieving the dataset, the program should convert the
        Coordinates field to an object and sort the dataset in descending order of population. The
        program then returns the dataset in JSON format to the client with HTTP status code 200.
        The program should return a JSON string '{"error":"No record for this population
        range"}' with the HTTP status code 404 when it could not find any documents matching the
        limit defined by the parameters, e.g., lte=1000&gte=10000.
        3. When the program experiences an error (e.g., database issue), it returns the HTTP status code
        500 with a JSON string '{"error":$message}', where $message stands for the error message
        of that error event.
        TASK C
        Create a routing endpoint that handles all GET requests to the URLs
        http://localhost:3000/cities/v1/alpha
        http://localhost:3000/cities/v1/alpha/{code}
        for retrieving all the alpha codes in the dataset or all the documents in the dataset that match a
        specified alpha code in the URL path. The server should respond with a JSON message and the
        appropriate HTTP status code to indicate the completion status of the GET request.
        Situations:
        1. /cities/v1/alpha
        With this GET request, the program searches the database to find
        all unique alpha-2 codes in the dataset. For each alpha-2 code, the
        program creates an object with two properties: 'code' and 'name',
        which contain the values from the ISO Alpha-2 and ISO Name EN
        fields, respectively. The program then groups all alpha-2 code
        objects into an array and sorts them in ascending order based on
        the alpha-2 codes. Finally, the program returns this array object as
        a JSON message to the client with a status code of 200.
        2. /cities/v1/alpha/{code}
        With this GET request, the program searches the database to
        retrieve all documents that match the specified alpha code in the
        path. For example, if the requested path is '/cities/v1/alpha/HK', the
        program will find all documents with the 'HK' alpha-2 code. For each
        matched document, the program retrieves the following fields:
        “ASCII Name”, Population, Timezone, and Coordinates. It converts
        the Coordinates field to an object and groups all matched
        documents in descending order based on population. The program
        then returns this array object as a JSON message to the client with
        status code 200.
        The program should return a JSON string ‘{“error”:”No record for this alpha code”}’
        with the HTTP status code 404 when it could not find any documents matching the requested
        alpha code.
        3. When the program experiences an error (e.g., database issue), it returns the HTTP status code
        500 with a JSON string ‘{“error”:$message}’, where $message stands for the error message
        of that error event.
        TASK D
        Create a routing endpoint that handles all GET requests to the URLs
        http://localhost:3000/cities/v1/region
        http://localhost:3000/cities/v1/region/{region}
        for retrieving all the regions in the dataset or all the documents in the dataset that match a specified
        region in the URL path. In response, the server returns a JSON message and appropriate HTTP status
        code to the client, which reflects the completion status of the GET request.
        Situations:
        1. /cities/v1/region
        With this request, the program retrieves the Timezone field of all
        documents and extracts the first component of the Timezone field to be
        the region. For example, if the Timezone value is
        "America/Argentina/Cordoba", the program will extract the region as
        "America". The program then returns all unique regions in the dataset as a
        JSON message to the client with the HTTP status code 200. The JSON
        message lists all regions in alphabetical order.
        2. /cities/v1/region/{region}
        With this GET request, the program searches the database
        to retrieve all documents that have the first component of
        the Timezone field matches the specified region in the
        URL path. For example, if the requested path is
        '/cities/v1/region/Atlantic', the program will find 72
        documents. For each matched document, the program
        retrieves only the following fields: “ASCII Name”, “ISO
        Alpha-2”, “ISO Name EN”, Population, Timezone, and
        Coordinates. It converts the Coordinates field to an object
        and groups all matched documents in descending order
        based on population. The program then returns this array
        object as a JSON message to the client with status code
        200.
        The program should return a JSON string ‘{“error”:”No record for this region”}’ with
        the HTTP status code 404 when it could not find any documents matching the requested region.
        3. When the program experiences an error (e.g., database issue), it returns the HTTP status code
        500 with a JSON string ‘{“error”:$message}’, where $message stands for the error message
        of that error event.
        TASK E
        Create a routing endpoint that handles all GET requests to the URL
        http://localhost:3000/cities/v1/{city}?partial=true&alpha=xx&region=yyyy&sort=alpha|pop
        ulation
        for retrieving all the documents in the dataset that match the specified city in the URL path. In
        response, the server returns a JSON message and appropriate HTTP status code to the client, which
        reflects the completion status of the GET request.
        Situations:
        1. /cities/v1/{city}
        With this GET request, the program retrieves all documents in the database that have the “ASCII
        Name” field exactly matches with the specified city name in the URL path. For example, when
        the city name is “Logan”, the program returns only one document; whereas for the city name
        “Paris”, it returns 4 matched documents. For each matched document, the program retrieves
        the following fields only: _id, “ASCII Name”, “ISO Alpha-2”, “ISO Name EN”, Population,
        Timezone, and Coordinates. It converts the Coordinates field to an object and groups all
        matched documents in ascending order based on the _id field. The program then returns this
        array object as a JSON message to the client with status code 200.
        2. /cities/v1/{city}?partial=true
        When a query string is provided with the parameter
        “partial=true”, the program finds all documents where the
        “ASCII Name” field partially matches with the specified city
        name in the URL path. For example, when the city name is
        “Logan”, the program returns 6 matched documents that
        have the string “Logan” in their “ASCII Name” fields. If the
        parameter “partial” has a value other than “true”, the
        program should ignore this parameter and apply the exactly
        match as the searching criteria.
        3. /cities/v1/{city}?alpha=xx
        /cities/v1/{city}?region=yyyy
        When the query string contains the “alpha” parameter, the
        program restricts the search to documents under this alpha
        code for the exactly or partially matched of the city name
        (based on the partial parameter). For example, if a search is performed on the city name "Logan"
        with partial=true and alpha=AU, only one matched city is found.
        When the query string contains the “region” parameter, the program restricts the search to
        documents under this region for the exactly or partially matched of the city name. For example,
        when searching for the city name “Logan” with partial=true and region=America, five matched
        cities are located.
        If both the alpha and region parameters are provided, the program should ignore the region
        parameter as the alpha parameter should have a higher priority.
        4. /cities/v1/{city}?sort=alpha|population
        If the sort parameter is not included, the default order will be based on the ascending order of
        the _id field. If the sort parameter is included with the value “alpha”, all returned results will be
        sorted in ascending order of the alpha code. If the sort parameter is included with the value
        “population”, all returned results will be sorted in the descending order of population.
        Otherwise, ignore other values and use the default order.
        5. The program should return a JSON string ‘{“error”:”No record for this city name”}’
        with the HTTP status code 404 when it could not find any documents matching the requested
        city name with the parameters.
        6. When the program experiences an error (e.g., database issue), it returns the HTTP status code
        500 with a JSON string ‘{“error”:$message}’, where $message stands for the error message
        of that error event.
        TASK F
        Write a routing endpoint to intercept all other request types and paths, which are not defined in
        previous tasks. Return a JSON string with the HTTP status code 400. For example, for the request
        POST /cities/v1/all HTTP/1.1, we get the response '{"error":"Cannot POST
        /cities/v1/all"}'; for the request GET /cities/alpha/AU HTTP/1.1, we get the response
        '{"error":"Cannot GET /cities/alpha/AU"}'.
        Resources
        You are provided with the following files.
        • template.txt – the framework for the index.js file.
        • bigcities.csv – the big cities data set.
        Testing platform
        We shall run the server program in the node-dev container set and use Curl and Firefox to test the
        API.
        Submission
        Please finish this assignment before 23:59 December 3, 2023 Sunday. Submit the following files:
        1. A JSON file – use mongoexport to export the whole collection from the bigcities database.
        Similar to the mongoimport command, you have to open a terminal at the data/db folder
        and type the following command (in one line):
        mongoexport -d=bigcities -c=cities --jsonArray --sort='{_id: 1}' --out=3035111999.json
        Replace 3035111999 with your student ID and upload this JSON file.
        2. The complete index.js program and other required files.
        3. The package.json file of your express program.
        Grading Policy
        Points Criteria
        2.0 Task A
        ▪ Database set up, import the data set, and export the data set.
        ▪ The program can connect and access the MongoDB database.
        ▪ The program can detect that the database connection is broken.
        2.5 Task B
        ▪ Correctly handle the GET request to return all big cities data
        ▪ Correctly handle the GET request with query string parameters to return the
        specific set of data
        ▪ Error handling
        2.0 Task C
        ▪ Correctly handle the GET request to retrieve all the alpha-2 code in the big cities
        dataset.
        ▪ Correctly handle the GET request to retrieve all cities that have the matched
        alpha-2 code.
        ▪ Error handling
        2.0 Task D
        ▪ Correctly handle the GET request to retrieve all unique regions in the big cities
        dataset.
        ▪ Correctly handle the GET request to retrieve all cities that have the matched
        region.
        ▪ Error handling
        2.5 Task E
        ▪ Correctly handle the GET request to retrieve all cities that have the matched city
        name or partially matched city name.
        ▪ Correctly handle the GET request to retrieve all cities that have the matched city
        name or partially matched city name within a specific region/alpha-2 code and
        sorting order.
        ▪ Error handling
        1.0 Task F
        ▪ Error handling of all unknown methods and paths
        -4.0 Using any external libraries.
        Plagiarism
        Plagiarism is a very serious academic offence. Students should understand what constitutes
        plagiarism, the consequences of committing an offence of plagiarism, and how to avoid it. Please
        note that we may request you to explain to us how your program is functioning as well as we may
        also make use of software tools to detect software plagiarism.
        請加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

        掃一掃在手機打開當前頁
      1. 上一篇:代寫CMPT 125、代做Computing Science
      2. 下一篇:代做CMPUT 328、代寫VAE and Diffusion Models
      3. 無相關信息
        合肥生活資訊

        合肥圖文信息
        挖掘機濾芯提升發動機性能
        挖掘機濾芯提升發動機性能
        戴納斯帝壁掛爐全國售后服務電話24小時官網400(全國服務熱線)
        戴納斯帝壁掛爐全國售后服務電話24小時官網
        菲斯曼壁掛爐全國統一400售后維修服務電話24小時服務熱線
        菲斯曼壁掛爐全國統一400售后維修服務電話2
        美的熱水器售后服務技術咨詢電話全國24小時客服熱線
        美的熱水器售后服務技術咨詢電話全國24小時
        海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
        海信羅馬假日洗衣機亮相AWE 復古美學與現代
        合肥機場巴士4號線
        合肥機場巴士4號線
        合肥機場巴士3號線
        合肥機場巴士3號線
        合肥機場巴士2號線
        合肥機場巴士2號線
      4. 幣安app官網下載 短信驗證碼

        關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

        Copyright © 2024 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
        ICP備06013414號-3 公安備 42010502001045

        主站蜘蛛池模板: 精品无码国产AV一区二区三区| 久久免费精品一区二区| 无码毛片一区二区三区中文字幕| 亚洲AV综合色区无码一区| 一区二区精品视频| 日韩在线视频一区| 鲁丝丝国产一区二区| 99久久人妻精品免费一区| 国产免费一区二区视频| 狠狠色婷婷久久一区二区三区| 国产裸体舞一区二区三区| 免费高清av一区二区三区| 国产精品一区二区毛卡片| 久热国产精品视频一区二区三区| 97久久精品一区二区三区| 无码人妻精品一区二区| 久久精品动漫一区二区三区| 久久亚洲中文字幕精品一区| 久久影院亚洲一区| 精品福利一区二区三| 久久国产午夜一区二区福利| 熟妇人妻AV无码一区二区三区| 无码人妻久久一区二区三区免费| 久久久精品人妻一区亚美研究所| 国产免费一区二区视频| 日韩精品无码一区二区中文字幕| 亚洲一区二区久久| 亚洲av综合av一区二区三区| 好爽毛片一区二区三区四无码三飞| 成人一区二区三区视频在线观看| 韩国一区二区视频| 国产精品亚洲综合一区在线观看| 暖暖免费高清日本一区二区三区| 日本一区二区高清不卡| 国产一区二区精品久久岳| 亚洲一区二区三区四区在线观看| 国产91大片精品一区在线观看| 无码人妻精品一区二区三区不卡 | 怡红院美国分院一区二区 | 国产一区二区三区樱花动漫| 一区二区三区免费电影|