Skip to content
tuongtran23 edited this page Jun 3, 2023 · 3 revisions

Introduction

This application serves as a platform where donors and local disadvantage individuals can donate and receive goods in a more convenient fashion.

Objective

Our objective is to create a donation API that allows user to register to donate/find available resources. The API will provides features such as donation exploration or goods donation to users.

Scope

The scope of the donation resources API includes the following functionality:

  • Donation Management

  • User management

User Personas

  • Donor: A Donor wants to donate (add an entry of resource) and inform the resource is gone (remove an entry) from data table. They will use the API to add, update, and delete resources, as well as retrieve information about their OWN resources (resources associated with their credential).

  • Recipient: A Recipient wants to see any available resources out there and reach out to the respective donor. They will use API retrieve information about all resource status and history.

  • Admin: An admin wants to see all the available donations in the platform. Also, an admin wants to disable/enable accounts from either donors or recipients.

Functional Requirements

Donation Management

  • As a donor, I want to be able to add a new donation to the system by providing its unique identification number and location information such as address, time updated.

  • As a donor, I want to be able to update a status of a donation (AVAILABLE/PENDING/TAKEN)

  • As a recipient, I want to retrieve ALL donations in the system, so that I can view their current statuses.

  • As a recipient, I want to retrieve specific donations based on keywords.

User Management

  • As a donor, I want to be able to sign up for an account.

  • As a recipient I want to be able to sign up for an account.

  • As an admin, I want to retrieve all the users (donors and recipients)

  • As an admin, I want to retrieve a specific user

  • As an admin, I want to be able reset user password when needed

Non-Functional Requirements:

Success Criteria:

Testing

  • The API will be tested using automated unit tests and integration tests

Milestones:

Appendix

Architecture Diagram

Entity Relationship Diagram

Clone this wiki locally