Pipe Dream: Difference between revisions
No edit summary (change visibility) |
No edit summary (change visibility) |
||
| Line 3: | Line 3: | ||
The purpose of this document is to define the software design for creating an iOS application for Binghamton University’s student newspaper “Pipe Dream” in a clear and consistent manner . This project is one of the assignments for the course of CS485 at Binghamton University. This application will provide the user with the news and articles that are published by the Pipe Dream staff. The goal is to enable the user to read news or articles in a new reading experience. |
The purpose of this document is to define the software design for creating an iOS application for Binghamton University’s student newspaper “Pipe Dream” in a clear and consistent manner . This project is one of the assignments for the course of CS485 at Binghamton University. This application will provide the user with the news and articles that are published by the Pipe Dream staff. The goal is to enable the user to read news or articles in a new reading experience. |
||
== '''Intended Audience'''== |
==== '''Intended Audience'''==== |
||
The intended audience for this document is the project team, the senior manager, and the customer. |
The intended audience for this document is the project team, the senior manager, and the customer. |
||
== '''Scope'''== |
==== '''Scope'''==== |
||
The scope of this project will mainly be within the realm of the JSON API which will allow us to retrieve and manipulate WordPress content using HTTP requests. The inputs for the application will originate from both the user, such as requesting an article, searching an article or commenting on articles, and also from the Pipe Dream’s article database as it sends the user new articles or other information. Outputs will include the application interface as it displays the information to the user and data uploads generated by the user such as comment submission. |
The scope of this project will mainly be within the realm of the JSON API which will allow us to retrieve and manipulate WordPress content using HTTP requests. The inputs for the application will originate from both the user, such as requesting an article, searching an article or commenting on articles, and also from the Pipe Dream’s article database as it sends the user new articles or other information. Outputs will include the application interface as it displays the information to the user and data uploads generated by the user such as comment submission. |
||
| Line 19: | Line 19: | ||
Apple’s App Store has some requirements that any application that is submitted to be sold must meet. This does put some restrictions on what libraries of code can be used. The other possible source of constraint would be the WordPress API. However, we are expecting that those restrictions will most likely have no effect on the product. |
Apple’s App Store has some requirements that any application that is submitted to be sold must meet. This does put some restrictions on what libraries of code can be used. The other possible source of constraint would be the WordPress API. However, we are expecting that those restrictions will most likely have no effect on the product. |
||
| ⚫ | |||
| ⚫ | |||
== Internal Software Data Structure== |
== Internal Software Data Structure== |
||
The controller will pass data from the screen to the model. The model will then return necessary data to the controller from the database. The data from the database will then be displayed to the user on the screen based upon their initial request. |
The controller will pass data from the screen to the model. The model will then return necessary data to the controller from the database. The data from the database will then be displayed to the user on the screen based upon their initial request. |
||
==Global Data Structure== |
==Global Data Structure== |
||
The data acquired by the application will be stored within iOS Core Data. Core Data is available for use in this project because the programming is being implemented using version of Xcode that is compatible. The Core Data will allow to save model objects to a file and then retrieve those objects whenever needed. Core Data also automatically handles any changes that are made to a model, which helps with versioning and editing. |
The data acquired by the application will be stored within iOS Core Data. Core Data is available for use in this project because the programming is being implemented using version of Xcode that is compatible. The Core Data will allow to save model objects to a file and then retrieve those objects whenever needed. Core Data also automatically handles any changes that are made to a model, which helps with versioning and editing. |
||
==== Interface Description==== |
|||
The interface for the view will be what the user will see on every screen. When the user runs the application, the view component will be displayed. Each view will be controlled by the user except when the view is refreshed for the latest articles. |
|||
====Web Service (API)==== |
|||
Pipe dream’s website is maintained in WordPress. There are two ways to fetch the data from the website. First one is to use WordPress JSON API but it requires to install extra plug-ins to the current site. Second one is to fetch the data from the currently available RSS Feed. For the first one, we are required to discuss this with the Pipe Dream staff since they hold the admin rights. If the staff can not provide us a JSON API, as a back-up plan, we will create a back-end service and we will parse the RSS data and create our own JSON API. |
|||
What web service is doing is that, it gets requests via HTTPS and the specific urls to pointing which resource is being requested and provide the necessary info with making necessary calls to the database. Every request must be done via an authorized API-KEY which will be sent as basic-authentication username and a secret as a password. And it will process the request and returns a JSON response to be executed on the frontend with needed HTTP Response Status Codes. |
|||
Revision as of 14:21, 20 March 2015
Purpose
The purpose of this document is to define the software design for creating an iOS application for Binghamton University’s student newspaper “Pipe Dream” in a clear and consistent manner . This project is one of the assignments for the course of CS485 at Binghamton University. This application will provide the user with the news and articles that are published by the Pipe Dream staff. The goal is to enable the user to read news or articles in a new reading experience.
Intended Audience
The intended audience for this document is the project team, the senior manager, and the customer.
Scope
The scope of this project will mainly be within the realm of the JSON API which will allow us to retrieve and manipulate WordPress content using HTTP requests. The inputs for the application will originate from both the user, such as requesting an article, searching an article or commenting on articles, and also from the Pipe Dream’s article database as it sends the user new articles or other information. Outputs will include the application interface as it displays the information to the user and data uploads generated by the user such as comment submission.
image: http://imageshack.com/a/img912/9577/bkgMe8.png
Dependencies and Constraints
Apple’s App Store has some requirements that any application that is submitted to be sold must meet. This does put some restrictions on what libraries of code can be used. The other possible source of constraint would be the WordPress API. However, we are expecting that those restrictions will most likely have no effect on the product.
Design
Internal Software Data Structure
The controller will pass data from the screen to the model. The model will then return necessary data to the controller from the database. The data from the database will then be displayed to the user on the screen based upon their initial request.
Global Data Structure
The data acquired by the application will be stored within iOS Core Data. Core Data is available for use in this project because the programming is being implemented using version of Xcode that is compatible. The Core Data will allow to save model objects to a file and then retrieve those objects whenever needed. Core Data also automatically handles any changes that are made to a model, which helps with versioning and editing.
Interface Description
The interface for the view will be what the user will see on every screen. When the user runs the application, the view component will be displayed. Each view will be controlled by the user except when the view is refreshed for the latest articles.
Web Service (API)
Pipe dream’s website is maintained in WordPress. There are two ways to fetch the data from the website. First one is to use WordPress JSON API but it requires to install extra plug-ins to the current site. Second one is to fetch the data from the currently available RSS Feed. For the first one, we are required to discuss this with the Pipe Dream staff since they hold the admin rights. If the staff can not provide us a JSON API, as a back-up plan, we will create a back-end service and we will parse the RSS data and create our own JSON API. What web service is doing is that, it gets requests via HTTPS and the specific urls to pointing which resource is being requested and provide the necessary info with making necessary calls to the database. Every request must be done via an authorized API-KEY which will be sent as basic-authentication username and a secret as a password. And it will process the request and returns a JSON response to be executed on the frontend with needed HTTP Response Status Codes.