CPSC 449
web代做 | project | assignment – 这道题目是利用web进行的编程代写任务, 涉及了web等代写方面, 这个项目是assignment代写的代写题目
Kenytt Avery, Computer Science Department, California State University, Fullerton
CPSC 449 – web Back-End Engineering
project 1, Spring 2021
due February 23 / February 26
Last updated Thursday February 18, 9:15 pm PST In this project you will design and document a RESTful API for a web application. The project may be completed individually, or in a group of no more than three (3) students. All students on the team must be enrolled in the same section of the course.
Problem domain
We plan to build a web application that will allow students to organize groups for class projects.
Each user of our application can have a username , an email address , a password , and can be a
member of one or more groups .
Each group has a name and is organized for a particular project .
Projects have a name , a description , a deadline , and maximum group size .
Users can join more than one group, as long as the groups are for different projects. Projects remain available for group creating and sign-up until the deadline has passed.
Client contract
The methods below have been identified for an API client library. Each method is listed along with its parameters and a short description. Note that while these methods are sufficient to define the operations that should be made available through the applications Web API, they are not the API itself. For more information on the notion of API client libraries, see What is an API client library? by Sarah Maddox.
User methods
signUp(username, email, password) Creates an account. Returns true if username is available, email address is valid, and password meets complexity requirements. authenticateUser(username, password)
Returns true if the password parameter matches the password stored for the username. resetPassword(username) Sends an email to the users registered email address with a link to reset their password. changePassword(username, password) Sets the users password to a new value.
Project methods
listProjects() Returns a list of the available projects. searchProjects(description) Returns the list of the available projects matching the specified description. createProject(project, description, deadline, maxGroupSize) Creates a new project.
Group methods
listGroups(project) Returns a list of the groups defined for a project. createGroup(project, group) Creates a new group for the specified project. inviteToGroup(user, group) Sends an email to a user inviting them to join a particular group. joinGroup(user, group) Adds a user to a group. listGroupMembers(group) Lists the members of a group. This content is protected by copyright and may not be shared, uploaded or distributed without authorization.
REST API Definition
Read What is an API?, What is REST?, How to design a REST API, and the REST Resource Naming Guide by Lokesh Gupta. Given the problem domain and contract methods described above, design appropriate RESTful resources for each operation. Document the HTTP methods, URL paths, JSON data formats, and HTTP status codes in enough detail that a developer could build an API client library. Include which resources are public and which resources and methods require authentication. You may wish to consult Tom Johnsons Documenting APIs: A guide for technical writers and engineers.
Submission
Submit your API definition document in PDF format through Turnitin on Canvas before class on the due date. If the assignment is completed by a team, only one submission is required. Be certain to identify the names of all students on your team in the documents header. See the following sections of the Canvas documentation for instructions on group submission: How do I join a group as a student? How do I submit an assignment on behalf of a group? This content is protected by copyright and may not be shared, uploaded or distributed without authorization.