OpenDoor is a crowdfunding site that allows people to ask for financial sponsorships that will aid the sponsee to pay for study fees and/or study equipment and tools. Link to OpenDoor: {{[OpenDoor](insert link here).}}
OpenDoor is intended for anyone with a plan to pursue a study path to further their education and for sponsors to aid in gifting funds for that person to reach their goals.
-
Home Page
- Nav Bar: Links pointing to a 1) Projects list page 2) A form for prospective project creation 3) Sign in/Login Form
- CTA button: After a hero image, a button linking to a project creation form. If user is not logged in, an invitation will be presented to login/signup before creating a project.
- Feature section displaying random single project pages with links to that individual project.
- CTA button: A button linking to the projects list page.
- Counter: X amount of sponsors have helped Y amount of doors open for people reaching their study goals by providing Z amount of dollars.
- NO login required to display this page.
-
Projects Page
- A visual display of single projects asking for supporters.
- Each single project listed will have an image, summary and goal amount with a counter (eg: "I need $x. I have $y to go!")
- No login required to display this page.
- CTA button: After a hero image, a button linking to a project creation form. If user is not logged in, an invitation will be presented to login/signup before creating a project.
-
Single Project Page
- Will display all the details for a single project.
- Title, image, owner name, supporter status, date created, description.
- On a side bar, pledge details unique to that project will be displayed.
- Pledge details will include goal, donate button, list of pledges already made.
- If user is not logged in, an invitation will be presented to login/signup before supporting a project.
- No login required to display this page.
-
Create Project form
- A styled form that will allow a logged in user to create a new project.
- Title, name, image upload, goal amount, status, description and date created.
- Users must be logged in to create a project
- Pledge form
- A styled form that will allow a logged in user to support a project.
- Summarised details about the project being supported, amount, comments, option to stay anonymous
- User must be logged in to support a project.
- Select a new HTTP Request
- Choose POST method, URL: https://drf-patient-pond-1056.fly.dev/users/
- Choose JSON as the text option
- Enter the following JSON attributes:
{
"username": "{enter your username}",
"password": "{enter your password}",
"first_name": "{enter your first name}",
"last_name": "{ener your last name}",
"email": "{enter your email}"
}
- Click Send
- A new user will be created.
- To recieve an authentication token, select a new HTTP Request
- Choose POST method, URL: https://drf-patient-pond-1056.fly.dev/api-token-auth/
- Choose JSON as the text option
- Enter the following JSON attributes:
{ "username": "{enter the registered username}", "password" : "{enter the password}" }
- Click Send and you will see a token. (Copy this to use for authentication purposes)
- To create a new project, you need to be logged in and authorised.
- Choose POST method, URL: https://drf-patient-pond-1056.fly.dev/projects/
- Choose JSON as the text option
- Enter the following JSON attributes:
{
"owner": "{id of owner}",
"title": "{title}",
"description": "{A description}",
"goal": {Goal amount},
"image": "{url of image}",
"is_open": {false or true - is the project open for supporters},
"date_created": "{date}"
"category": "Agriculture{or other category}"
}
- Open the "Auth" tab and choose "Bearer Token"
- Enter the token number of the user creating the project
- Under "Prefix" type "Token"
- Click Send and a new project will be created under that user's login details.
URL | HTTP Method | Purpose | Request Body | Success Response Code | Authentication/Authorisation |
---|---|---|---|---|---|
/projects/ | POST | Creates a project | Title, Description, Goal, Image, Is_open,Date Created, IT | 201 | Must be logged in |
/projects/ | GET | List of all projects | N/A | 200 | N/A |
/projects/int:pk/ | GET | Returns a single project | N/A | 200 | N/A |
/projects/int:pk/ | PUT | Updates that single project | Title, Description, Goal, Image, Is_Open, Date Created, Category | 200 | Must be logged in & is project owner |
/projects/int:pk/ | DELETE | Deletes an individual project | N/A | 200 | Must be logged in & is project owner |
/pledges/int:pk/ | PUT | Updates a single pledge | Auth | AuthToken, Amount, Comment, Anonymous | 200 |
/pledges/int:pk/ | DELETE | Deletes an single pledge | N/A | 200 | Must be logged in & is supporter |
/pledges/ | POST | Creates a new pledge | Auth | AuthToken, Amount, Comment, Anonymous | 201 |
/pledges/ | GET | Lists all pledges | N/A | 200 | N/A |
/users/ | POST | Creates a new user | Username, Password | 201 | |