We're building an API Service to support an online web application bookstore called "Geek Text". This bookstore targets a niche in technology.
- Benefit: Users will have a simple and enjoyable way to discover new books and authors, and sort results.
-
Retrieve List of Books by Genre
- HTTP Request Type:
GET - Parameters:
Genre - Response: JSON List of book objects
- HTTP Request Type:
-
Retrieve List of Top Sellers
- HTTP Request Type:
GET - Response: JSON List of book objects sorted by top sellers
- HTTP Request Type:
-
Retrieve List of Books for a particular rating and higher
- HTTP Request Type:
GET - Parameters:
Rating - Response: JSON List of book objects
- HTTP Request Type:
-
Discount books by publisher
- HTTP Request Type:
PUTorPATCH - Parameters:
Discount percent,Publisher
- HTTP Request Type:
- Benefit: Allows users to manage their personal details, preferences, and purchase history.
-
Create a New User Profile
- HTTP Request Type:
POST - Parameters:
Full Name,Username,Password,Email - Response: Confirmation message or error
- HTTP Request Type:
-
Update User Profile
- HTTP Request Type:
PUTorPATCH - Parameters:
UserID,Field(s) to update,New value(s) - Response: Confirmation message or error
- HTTP Request Type:
-
Retrieve User Purchase History
- HTTP Request Type:
GET - Parameters:
UserID - Response: JSON List of purchased items
- HTTP Request Type:
- Benefit: Provides users a space to store their desired books before purchase.
-
Add Book to Cart
- HTTP Request Type:
POST - Parameters:
UserID,BookID - Response: Confirmation message or error
- HTTP Request Type:
-
Remove Book from Cart
- HTTP Request Type:
DELETE - Parameters:
UserID,BookID - Response: Confirmation message or error
- HTTP Request Type:
-
View Cart Contents
- HTTP Request Type:
GET - Parameters:
UserID - Response: JSON List of books in cart
- HTTP Request Type:
- Benefit: Offers users comprehensive details about a book, enhancing decision-making for purchases.
- Retrieve Book Details
- HTTP Request Type:
GET - Parameters:
BookID - Response: JSON object containing book details (author, publisher, price, etc.)
- HTTP Request Type:
- Benefit: Enables users to provide feedback, aiding other users in their purchasing decisions.
-
Submit Book Rating/Review
- HTTP Request Type:
POST - Parameters:
UserID,BookID,Rating,Review Text (optional) - Response: Confirmation message or error
- HTTP Request Type:
-
Retrieve All Ratings/Reviews for a Book
- HTTP Request Type:
GET - Parameters:
BookID - Response: JSON List of ratings and reviews
- HTTP Request Type:
- Benefit: Allows users to keep a list of books they hope to purchase in the future.
-
Add Book to Wish List
- HTTP Request Type:
POST - Parameters:
UserID,BookID - Response: Confirmation message or error
- HTTP Request Type:
-
Remove Book from Wish List
- HTTP Request Type:
DELETE - Parameters:
UserID,BookID - Response: Confirmation message or error
- HTTP Request Type:
-
View Wish List
- HTTP Request Type:
GET - Parameters:
UserID - Response: JSON List of books in wish list
- HTTP Request Type:
The REST API service will have:
- RESTful API: An API service exposed to the front using HTTPS, exposing functional endpoints.
- Backend Database: A Database of choice to store data, which can only be accessed by the API.
We'll use the Scrum agile methodology. The process includes:
- Sprints: Timeboxed intervals for development.
- Sprint Planning: Discuss and estimate the functionality to implement during the sprint.
- Daily Standups: Regular check-ins on progress.
- Sprint Review: Demo the work completed.
- Sprint Retrospective: Discuss what went well and potential improvements.
- Developers (6): Responsible for creating features and writing user stories.
- Product Owner: Reviews the backlog of user stories and liaises with the instructor about product functionality.
- Scrum Master: Oversees the sprint, removes impediments, and addresses issues.
Each sprint will rotate the roles of Product Owner and Scrum Master among team members.