{"id":426934,"date":"2018-09-24T21:16:48","date_gmt":"2018-09-24T21:16:48","guid":{"rendered":"https:\/\/acemystudy.com\/?p=4287"},"modified":"2018-10-24T08:38:53","modified_gmt":"2018-10-24T08:38:53","slug":"programming-computer-science-project","status":"publish","type":"post","link":"https:\/\/www.benedictsol.com\/blogs\/programming-computer-science-project\/","title":{"rendered":"Programming computer science project"},"content":{"rendered":"<p>Programming computer science project<\/p>\n<p>just follow the instructions of the description.<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 1 Project 1<\/p>\n<p>CSCI\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 204\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013 Introduction\u00a0\u00a0 to\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Computer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Science II<\/p>\n<p>Project 1 \u2013 E-Commerce Inventory<\/p>\n<p>Assigned: Monday, 09\/03\/2018<\/p>\n<p>First phase due: 09\/14\/2018<\/p>\n<p>Second phase due: 09\/21\/2018<\/p>\n<p>1 Academic\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Integrity<\/p>\n<p>The project falls under the Homework and Projects in the course collaboration policy. Make sure you<\/p>\n<p>follow these policies.<\/p>\n<p>2 Objective<\/p>\n<p>The main objective of this project is to master the design and implementation of objects and classes with<\/p>\n<p>inheritance.<\/p>\n<p>3 Problem Statement<\/p>\n<p>You are just hired by Samszone, a start-up e-commerce company to help them implement their on-line<\/p>\n<p>inventory system. The company plans to sell various items over the web. The types of goods the company<\/p>\n<p>is planning to sell can be divided into books, CDs and vinyls, collectables, and eBay items. Each type of<\/p>\n<p>the items contains different types of sales information, e.g., a book would have a title and author(s),<\/p>\n<p>among other information while a fashion item would have a product name and the manufacturer. The<\/p>\n<p>information about these items are stored in a collection of CSV files (Common-Separated Values).<\/p>\n<p>Your tasks are to first design a Python class hierarchy that properly reflects the nature of these items, then<\/p>\n<p>you are to write Python programs that can manage these items over the web that allows a user to search<\/p>\n<p>for a particular item, to query other information such as total value of the inventory, or to print the<\/p>\n<p>information of a collection of item based on their class, e.g., all books or all collectables.<\/p>\n<p>4 Your\u00a0\u00a0 Tasks<\/p>\n<p>You are given a set of CSV files that contain information for all items for sale. You are also given a<\/p>\n<p>collection of test programs to run in Linux command line, or to run within IDLE. You will design and<\/p>\n<p>implement the programs such that these test programs will run properly. This will be your first phase of<\/p>\n<p>the project. Once these test programs run properly, which means your class implementation is most likely<\/p>\n<p>correct, you will extend your programs to run over the web. This will be your second phase of the<\/p>\n<p>project. You are also given a set of sample web server-client program to demonstrate how a set of Python<\/p>\n<p>programs can interact over the web.<\/p>\n<p>4.1 Phase\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 One:\u00a0\u00a0\u00a0\u00a0\u00a0 Design\u00a0 and\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Implement\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 the\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Inventory\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Class<\/p>\n<p>You are given a set of test programs and data files. You can copy the files from this link, or from the<\/p>\n<p>following Linux directory using the command, assuming you are in your working project directory<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 2 Project 1<\/p>\n<p>cp \u2013r ~csci204\/2018-fall\/student\/project\/p1\/ .<\/p>\n<p>If you are not in the proper working directory yet, please make and change into the directory by the<\/p>\n<p>following commands before issuing the copy command above.<\/p>\n<p>cd ~\/csci204<\/p>\n<p>mkdir p1<\/p>\n<p>cd p1<\/p>\n<p>You should see a set of files copied to your directory. Let\u2019s concentrate on the CSV files first.<\/p>\n<p>The following set of CSV files are given, followed by a brief description. Note that we have a total of four<\/p>\n<p>general classes of items in the database, Books, CD\/Vinyl, Collectibles, and eBay items. The eBay items<\/p>\n<p>are divided into three sub-classes, Electronics, Fashion, and Home\/Garden items.<\/p>\n<p>File name Content<\/p>\n<p>book.csv A collection of 10 books with title, publishing date, publisher, author, unit price,<\/p>\n<p>ISBN, and quantity or count in the database.<\/p>\n<p>cd_vinyl.csv A collection of 10 CDs or vinyls with title, artist(s), label, ASIN, date, unit price, and<\/p>\n<p>quantity.<\/p>\n<p>collectible.csv A list of seven collectibles with title, unit price, data, owner, and quantity.<\/p>\n<p>electronics.csv A collection of nine items with name, unit price, data, manufacturer, and quantity.<\/p>\n<p>fashion.csv Same type of information as in the \u2018electronics.csv.\u2019<\/p>\n<p>home_garden.csv Same type of information as in the \u2018electronics.csv.\u2019<\/p>\n<p>Table 1: Description of the CSV files<\/p>\n<p>These are the data files you will work with. Note that the amount of data is very small. But your programs<\/p>\n<p>should work correctly with data of any size, the logic is the same.<\/p>\n<p>You should also see a few Python programs. You will need the programs simple_web_server.py and<\/p>\n<p>test_inventory_web.py in the second phase of the project. Examine the program<\/p>\n<p>test_inventory.py first. From the test_inventory.py program you can tell that your Inventory<\/p>\n<p>class need to have the following public interface that is the methods that a public program can use.<\/p>\n<p>Method name Description<\/p>\n<p>__init__() Constructor<\/p>\n<p>check_type() Return the type of object, using isinstance()<\/p>\n<p>compute_inventory() Compute the total value of the inventory<\/p>\n<p>print_inventory() Print the information of the inventory<\/p>\n<p>print_category() Print information by categories of the items<\/p>\n<p>search_item() Search items whose name contain the given pattern<\/p>\n<p>Table 2: Methods of the Inventory class that are accessible by the public<\/p>\n<p>The text file output.txt is the direct result of executing test_inventory.py. Your programs, when<\/p>\n<p>completed, should generate a similar, if not identical result.<\/p>\n<p>Design your Inventory class, Item class, and subclasses of the Item class<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 3 Project 1<\/p>\n<p>Now that you have a sense how a user may use the class through programs such as<\/p>\n<p>test_inventory.py, you are asked to design and implement the Inventory class. While object-oriented<\/p>\n<p>programs and design are not the concentration of this course (you will see it in CSCI 205), you are asked<\/p>\n<p>to follow some basic approaches.<\/p>\n<p>First, draw a diagram of class indicating the relations among the classes and subclasses. Remember the<\/p>\n<p>key feature in this design is to minimize the redundancy and to facilitate the future expansion of the class.<\/p>\n<p>Follow the pattern you learned in your lab work. Draw the diagram either using a graphics tool such as<\/p>\n<p>xfig on Linux or Paint on Windows. Figure 1 is the Counter class hierarchy we saw in our lab.<\/p>\n<p>Figure 1: The Counter class hierarchy used in the lab<\/p>\n<p>While the Inventory itself might not need any subclasses, consider the items that are in an inventory. Read<\/p>\n<p>the CSV files and their descriptions in Table 1. Identify what are the common features in these items that<\/p>\n<p>should be included in a base class. Specific features in items such as Book, Collectible and others indicate<\/p>\n<p>that they may belong to a subclass of the Item class.<\/p>\n<p>Implement your classes<\/p>\n<p>Once the classes are designed, implement them in Python. You are asked to implement the Inventory<\/p>\n<p>class, an Item class, and all subclasses of the Item class. Put all the implementation in one file. Name the<\/p>\n<p>file inventory.py to make our testing and grading easier.<\/p>\n<p>You may have the certain degrees of freedom how to design and implement these classes. You do have to<\/p>\n<p>pay attention to the following notes.<\/p>\n<p>1 All inventory items should be maintained as one Python list within the Inventory class.<\/p>\n<p>2 While you can read any CSV files and parse them into Python lists using Python file structure we<\/p>\n<p>learned before, it may be easier to use the existing Python package named csv (yes, the exact<\/p>\n<p>same name as the type of the CSV files.) In the files you copied for this project, you should see<\/p>\n<p>one named csv2list.py which reads a CSV file and converts the contents into a list of lists.<\/p>\n<p>Use the component in this example, you can write a method for your Inventory class to read all<\/p>\n<p>the CSV data files.<\/p>\n<p>3 Python has a function named isinstance() that returns True if a variable belongs to a given<\/p>\n<p>class. You should use this function to implement your check_type() method.<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 4 Project 1<\/p>\n<p>4 When implementing class methods, make sure they are cohesive and loosely-coupled. Cohesive<\/p>\n<p>means only relevant and closely related actions should be put in one method; loosely-coupled<\/p>\n<p>means reduce or eliminate inter-dependency between methods. Don\u2019t make any methods too<\/p>\n<p>long. If an action needs many steps to complete, consider splitting it into multiple methods.<\/p>\n<p>Test your implementations<\/p>\n<p>Test your implementations often. You should test at each step after completing a method or an object.<\/p>\n<p>You can comment out sections of code in test_inventory.py to test one component at a time. For<\/p>\n<p>example, comment everything out except the constructor part<\/p>\n<p>invent = Inventory()<\/p>\n<p>that allows you to test if you constructor works. Of course, when completed, you must run the<\/p>\n<p>original given test program test_inventory.py to show that everything works fine.<\/p>\n<p>4.2Phase\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Two:\u00a0\u00a0\u00a0\u00a0\u00a0 Make\u00a0\u00a0\u00a0 Your\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Inventory\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Accessible\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 through\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 the\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Web<\/p>\n<p>Now that your program works fine at the command line, or through the IDLE, you are to make the<\/p>\n<p>inventory accessible through the web like any real e-Commerce website! Through a web interface<\/p>\n<p>that you will implement, a user is able to issue all the commands that you implemented in Phase One<\/p>\n<p>of the project. For example, one can query the total value of the inventory, search the names of the<\/p>\n<p>items by name, or print a category of items. Figures 2, 3 and 4 show some sample screen shots that<\/p>\n<p>illustrate the idea.<\/p>\n<p>Figure 2: Home page of Samszone website with the list option shown<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 5 Project 1<\/p>\n<p>Figure 3: Search result for key phrase \u201cgarm\u201d in names<\/p>\n<p>Figure 4: Partial result of listing operation<\/p>\n<p>How to tackle the problem<\/p>\n<p>Python provides easy-to-use, yet very powerful libraries for programming over the web. The basic<\/p>\n<p>idea is that a server program runs on the background (from command line or IDLE) that supports the<\/p>\n<p>logic of the program. The server program takes input from any web browser, processes the request,<\/p>\n<p>produces the results, formats the results as a web page, then sends page back to the web browser for<\/p>\n<p>display. While the details of web programming is not necessary the focus of this project, we provide<\/p>\n<p>you with a sample Python server program. From the examples, you can easily figure out what takes<\/p>\n<p>place in web programming and you can implement your own logic for your task of creating a website<\/p>\n<p>for Samszone.<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 6 Project 1<\/p>\n<p>Try out the given server program<\/p>\n<p>Among the files you copied for this project, you should see a Python web server program named<\/p>\n<p>simple_web_server.py. In addition, you should have two HTML files, home.html and<\/p>\n<p>form.html. Now at the Linux command line, or in your IDLE, run the program<\/p>\n<p>simple_web_server.py. You should see something similar to the following on your terminal<\/p>\n<p>window or your IDLE window.<\/p>\n<p>[bash abc@host]$ .\/simple_web_server.py<\/p>\n<p>Sun Aug 13 10:23:55 2017 Server Starts &#8211; :8080<\/p>\n<p>Starting httpd&#8230;<\/p>\n<p>Figure 5: Start the simple web server from Linux command line<\/p>\n<p>Now go to your favorite browser, and visit the page using the URL http:\/\/localhost:8080, you should<\/p>\n<p>see a web page similar to the following shown in Figure 6.<\/p>\n<p>Figure 7: Home page with inputs already typed in<\/p>\n<p>What happened was that the simple web server is running on the computer named localhost at the<\/p>\n<p>port 8080. The browser, e.g., Google Chrome or Mozilla Firefox, contacts the server through the<\/p>\n<p>HTTP protocol that both understand. The figure shows the screen shot that the user (you) has typed<\/p>\n<p>the some inputs, but not yet click the submit button yet. Once the Submit button is clicked, the<\/p>\n<p>information that was typed is sent to the server that is running on the Linux command line. After<\/p>\n<p>receiving this collection of information, the server can parse and process the information, then sends<\/p>\n<p>any responses back to the browser. Figure 8 shows the responses that the simple_web_server.py<\/p>\n<p>sends back, it simply echo what the user typed in.<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 7 Project 1<\/p>\n<p>Figure 8: The response page generated by the server<\/p>\n<p>One can see from the figure that the information typed in by the user such as \u201cone liner\u201d or the<\/p>\n<p>click box or the pulldown menu are sent back by the server and displayed in the web page.<\/p>\n<p>Study how the interaction was generated<\/p>\n<p>Run the program multiple times with different inputs so you have a sense what happens. Now let\u2019s<\/p>\n<p>study the logic behind the program simple_web_server.py. Starting from the bottom of the file,<\/p>\n<p>you will see that the program starts by the line run(port=HOSTPORT) which calls the function<\/p>\n<p>run(). Basically the server starts running and waits for input from a client which can be any program<\/p>\n<p>that sends requests to this server. In our case, the client will be any web browser. You can then start a<\/p>\n<p>web browser, and point the URL to be something like http:\/\/localhost:8080, see Figure 7. Once you<\/p>\n<p>type the information similar to that in Figure 7 and click the Submit button, the browser sends all the<\/p>\n<p>information you typed to the server through the internet. The server program<\/p>\n<p>(simple_web_server.py) handles the request from the client, in our case, the browser using the<\/p>\n<p>following default functions.<\/p>\n<p>Function do_GET()<\/p>\n<p>The function do_GET() is automatically called when the user hits the Return key with the URL<\/p>\n<p>http:\/\/localhost:8080 in the browser. Read the code in the function, what the server does is to send<\/p>\n<p>back a home page to the browser for it to display. The home page is a text in HTML format. The<\/p>\n<p>content of the home page is stored in two text files, home.html and form.html. The functions<\/p>\n<p>generate_home_page() and generate_form() read these two files and store the contents in two<\/p>\n<p>variables home_page and form_text for other functions to use. Note that the content of the<\/p>\n<p>form_text, when displayed on a browser gives the user a form to fill out. Among other information,<\/p>\n<p>the form contains a Submit button specified by the &lt;input type=\u201dsubmit\u201d \/&gt; HTML phrase.<\/p>\n<p>When the user click this submit button, the content of the form is sent from the browser to the server.<\/p>\n<p>The server will process the information using its do_POST() function.<\/p>\n<p>Function do_POST()<\/p>\n<p>The function do_POST() is called when the information sent from the browser contains an HTML<\/p>\n<p>phrase &lt;form name=&#8221;main&#8221; method=&#8221;post&#8221;&gt;. What the function does is to extract the<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 8 Project 1<\/p>\n<p>information from the form data, process it, and send the result back to the browser. Read the code<\/p>\n<p>do_POST() you will find that after reading the content of the form, the function calls another<\/p>\n<p>function convert_code() to convert HTML data into plain text. When the information is sent from<\/p>\n<p>a browser to a web server, some special texts are coded as hexadecimal or other special character to<\/p>\n<p>avoid confusion. For example, the space character \u2018 \u2018 is coded as a \u2018+\u2019, and the character \u2018+\u2019 itself is<\/p>\n<p>coded as hex 2B proceeded by a \u2018%\u2019, that is the HTML code \u2018%2B\u2019 represents the plus sign \u2018+\u2019. See<\/p>\n<p>the website at http:\/\/www.ascii.cl\/htmlcodes.htm for a complete list. In the<\/p>\n<p>simple_web_server.py program, the function do_POST() simply returns the content of the form<\/p>\n<p>after being parsed out to the browser.<\/p>\n<p>Your tasks<\/p>\n<p>Your work will modify the functions do_GET() and do_POST() to make them behave as you<\/p>\n<p>needed for the Samszone website. In the given do_POST() function, we simply return the parsed data<\/p>\n<p>to the browser. What you need to do is to parse out the data, find out what the user wants to do, for<\/p>\n<p>example, list the inventory, or compute the inventory value, perform these computation, format the<\/p>\n<p>result, and send them back to the browser. We have given you the ways to parse out the data and<\/p>\n<p>determine what the user wants. You have written the code to perform the actual tasks in your Phase<\/p>\n<p>One code. What you need to do now is to format the data and send back to the browser.<\/p>\n<p>An easier way of accomplishing these tasks is to make a copy of your Phase One code. Revise the<\/p>\n<p>code such that instead of printing the results to the screen as Phase One required, you now revise the<\/p>\n<p>code such that the contents will be formatted as an HTML string and returned to the caller. For<\/p>\n<p>example, in your Phase One code, you may have a function called \u2018print_inventory()\u2019 that<\/p>\n<p>prints the inventory to the screen. You now need to revise this function such that it will return the<\/p>\n<p>string formatted as HTML text. Your do_POST() function then can return this formatted text directly<\/p>\n<p>to the browser.<\/p>\n<p>If you are not familiar with HTML code, you can consult any of the information on the web, for<\/p>\n<p>example, https:\/\/www.w3schools.com\/ but in this part of the project, the one you will use most is<\/p>\n<p>probably HTML list, which can be found here in this website:<\/p>\n<p>https:\/\/www.w3schools.com\/html\/html_lists.asp<\/p>\n<p>5 Submission for the Two Phases<\/p>\n<p>Make sure you test all your programs before submission. You are required to submit two phases<\/p>\n<p>separately by the respective deadlines. All submissions are to the course Moodle site. You must<\/p>\n<p>submit all the relevant files in a zipped file such that your programs will run in their own folder.<\/p>\n<p>Create the zipped file using the following command at your Linux command line, assuming you have<\/p>\n<p>followed instructions in the project description in creating the project folder named p1 under your<\/p>\n<p>csci204 directory.<\/p>\n<p>cd ~\/csci204\/<\/p>\n<p>zip -r p1.zip p1\/<\/p>\n<p>The above commands creates a file named p1.zip in your csci204 directory. You can submit the<\/p>\n<p>zip file to the course Moodle site. In Phase One submission, you must submit all files that will make<\/p>\n<p>CSCI 204 Introduction to Computer Science II<\/p>\n<p>Fall 2018 9 Project 1<\/p>\n<p>the test program test_inventory.py run directly from its own folder. In Phase Two, you must<\/p>\n<p>submit all relevant files that will make the program samszone_web_server.py correctly.<\/p>\n<p>Submission of a README file<\/p>\n<p>Submit a plain text file named README for each of the two phases. Name the file README.p1 for<\/p>\n<p>phase one and README.p2 for phase two. The README file should contain a couple of paragraphs<\/p>\n<p>describing one or two points in your program that you like most, and one or two points that you had<\/p>\n<p>the most challenges. The README files should not be longer than a page.<\/p>\n<p>6 Grading Rubrics<\/p>\n<p>Normal requirements for programming work apply, including correctness, style, and organization.<\/p>\n<p>Specifically the following grading rubrics will be used for the two phases.<\/p>\n<p>Phase One rubrics [60 pts]<\/p>\n<p>[10 pts] Proper design of the Inventory class and Item class along with its subclasses.<\/p>\n<p>[10 pts] Reading CSV file and creating the Python list(s) according.<\/p>\n<p>[25 pts] Correct implementation of the designed classes, including constructors, string methods, and<\/p>\n<p>all methods needed to make the programs work.<\/p>\n<p>[10 pts] Using good programming style, including naming, spacing, and others.<\/p>\n<p>[5 pts] Overall program quality, including any features that stand out.<\/p>\n<p>Phase Two rubrics [40 pts]<\/p>\n<p>[20 pts] Implementing the server properly, including handling of forms.<\/p>\n<p>[8 pts] Converting results from plain text to HTML for the server to use.<\/p>\n<p>[8 pts] Using good programming style, including naming, spacing, and others.<\/p>\n<p>[4 pts] Overall program quality, including any features that stand out.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programming computer science project just follow the instructions of the description. CSCI 204 Introduction to Computer Science II Fall 2018 1 Project 1 CSCI\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 204\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013 Introduction\u00a0\u00a0 to\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Computer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Science II Project 1 \u2013 E-Commerce Inventory Assigned: Monday, 09\/03\/2018 First <a href=\"https:\/\/www.benedictsol.com\/blogs\/programming-computer-science-project\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-426934","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts\/426934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/comments?post=426934"}],"version-history":[{"count":0,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts\/426934\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/media?parent=426934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/categories?post=426934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/tags?post=426934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}