adopt_dont_shop's Introduction
adopt_dont_shop's People
adopt_dont_shop's Issues
Starting an Application, Form not Completed
As a visitor
- When I visit the new application page
- And I fail to fill in any of the form fields
- And I click submit
- Then I am taken back to the new applications page
- And I see a message that I must fill in those fields.
Average Pet Age
As a visitor
When I visit an admin shelter show page
Then I see a section for statistics
And in that section I see the average age of all adoptable pets for that shelter
Count of Adoptable Pets
As a visitor
When I visit an admin shelter show page
Then I see a section for statistics
And in that section I see the number of pets at that shelter that are adoptable
No Pets on an Application
As a visitor
- When I visit an application's show page
- And I have not added any pets to the application
- Then I do not see a section to submit my application
Add a Pet to an Application
As a visitor
- When I visit an application's show page
- And I search for a Pet by name
- And I see the names Pets that match my search
- Then next to each Pet's name I see a button to "Adopt this Pet"
- When I click one of these buttons
- Then I am taken back to the application show page
- And I see the Pet I want to adopt listed on this application
Admin Shelters Show Page Links
As a visitor
When I visit the admin shelter index ('/admin/shelters')
Then I see that every shelter name is a link
When I click one of these links
Then I am taken to that shelter's admin show page
All Pets Accepted on an Application
As a visitor
- When I visit an admin application show page
- And I approve all pets for an application
- Then I am taken back to the admin application show page
- And I see the application's status has changed to "Approved"
Partial Matches for Pet Names
As a visitor
- When I visit an application show page
- And I search for Pets by name
- Then I see any pet whose name PARTIALLY matches my search
- For example, if I search for "fluff", my search would match pets with names "fluffy", "fluff", and "mr. fluff"
Count of Pets that have been Adopted
As a visitor
When I visit an admin shelter show page
Then I see a section for statistics
And in that section I see the number of pets that have been adopted from that shelter
Note: A Pet has been adopted from a shelter if they are part of an approved application
Case Insensitive Matches for Pet Names
As a visitor
- When I visit an application show page
- And I search for Pets by name
- Then my search is case insensitive
- For example, if I search for "fluff", my search would match pets with names "Fluffy", "FLUFF", and "Mr. FlUfF"
Starting an Application
As a visitor
- When I visit the pet index page
- Then I see a link to "Start an Application"
- When I click this link
- Then I am taken to the new application page where I see a form
- When I fill in this form with my:
- Name
- Street Address
- City
- State
- Zip Code
- And I click submit
- Then I am taken to the new application's show page
- And I see my Name, address information, and description of why I would make a good home
- And I see an indicator that this application is "In Progress"
Application Show Page
As a visitor
- When I visit an applications show page
Then I can see the following: - Name of the Applicant
- Full Address of the Applicant including street address, city, state, and zip code
- Description of why the applicant says they'd be a good home for this pet(s)
- names of all pets that this application is for (all names of pets should be links to their show page)
- The Application's status, either "In Progress", "Pending", "Accepted", or "Rejected"
Shelters with Pending Applications
For this story, you should fully leverage ActiveRecord methods in your query.
As a visitor
- When I visit the admin shelter index ('/admin/shelters')
- Then I see a section for "Shelter's with Pending Applications"
- And in this section I see the name of every shelter that has a pending application
Pets can only have one approved application on them at any time
As a visitor
When a pet has an "Approved" application on them
And when the pet has a "Pending" application on them
And I visit the admin application show page for the pending application
Then next to the pet I do not see a button to approve them
And instead I see a message that this pet has been approved for adoption
And I do see a button to reject them
Action Required
As a visitor
When I visit an admin shelter show page
Then I see a section titled "Action Required"
In that section, I see a list of all pets for this shelter that have a pending application and have not yet been marked "approved" or "rejected"
Deploy your application to Heroku
As a visitor of the site
I will perform all user stories
By visiting the application on Heroku.
Localhost is fine for development, but
the application must be hosted on Heroku.
Using any sort of Continuous Integration is not allowed.
Use these guides: https://devcenter.heroku.com/articles/getting-started-with-rails5
Shelters with Pending Applications Listed Alphabetically
As a visitor
When I visit the admin shelter index ('/admin/shelters')
And I look in the section for shelters with pending applications
Then I see all those shelters are listed alphabetically
Submit an Application
As a visitor
- When I visit an application's show page
- And I have added one or more pets to the application
- Then I see a section to submit my application
- And in that section I see an input to enter why I would make a good owner for these pet(s)
- When I fill in that input
- And I click a button to submit this application
- Then I am taken back to the application's show page
- And I see an indicator that the application is "Pending"
- And I see all the pets that I want to adopt
- And I do not see a section to add more pets to this application
Admin Shelters Index
SQL Only Story
For this story, you should write your queries in raw sql. You can use the ActiveRecord find_by_sql method to execute raw sql queries: https://guides.rubyonrails.org/active_record_querying.html#finding-by-sql
As a visitor
- When I visit the admin shelter index ('/admin/shelters')
- Then I see all Shelters in the system listed in reverse alphabetical order by name
Searching for Pets for an Application
As a visitor
- When I visit an application's show page
- And that application has not been submitted,
- Then I see a section on the page to "Add a Pet to this Application"
- In that section I see an input where I can search for Pets by name
- When I fill in this field with a Pet's name
- And I click submit,
- Then I am taken back to the application show page
- And under the search bar I see any Pet whose name matches my search
Action Required Links to Application Show Page
As a visitor
When I visit an admin shelter show page
And I look in the "Action Required" section
Then next to each pet's name I see a link to the admin application show page where I can accept or reject the pet.
Application Approval makes Pets not adoptable
As a visitor
When I visit an admin application show page
And I approve all pets on the application
And when I visit the show pages for those pets
Then I see that those pets are no longer "adoptable"
Rejecting a Pet for Adoption
As a visitor
- When I visit an admin applicant show page ('/admin/applications/:id')
- For every pet that the applicant is for, I see a button to reject the applicant for that specific pet
- When I click that button
- Then I'm taken back to the admin applicant show page
- And next to the pet that I rejected, I do not see a button to approve or reject this pet
- And instead I see an indicator next to the pet that they have been rejected
Admin Shelters Show Page
SQL Only Story
For this story, you should write your queries in raw sql. You can use the ActiveRecord find_by_sql method to execute raw sql queries: https://guides.rubyonrails.org/active_record_querying.html#finding-by-sql
As a visitor
When I visit an admin shelter show page
Then I see that shelter's name and full address
NOTE: Your query should only return the necessary data to complete the story
Approved/Rejected Pets on one Application do not affect other Applications
As a visitor
- When there are two applicants in the system for the same pet
- When I visit the admin applicant show page for one of the applicants
- And I approve or reject the pet for that applicant
- When I visit the other applicant's admin show page
- Then I do not see that the pet has been accepted or rejected for that applicant
- And instead I see buttons to approve or reject the pet for this specific applicant
Approving a Pet for Adoption
As a visitor
- When I visit an admin applicant show page ('/admin/applicants/:id')
- For every pet that the applicant is for, I see a button to approve the applicant for that specific pet
- When I click that button
- Then I'm taken back to the admin applicant show page
- And next to the pet that I approved, I do not see a button to approve this pet
- And instead I see an indicator next to the pet that they have been approved
One or More Pets Rejected on an Application
As a visitor
- When I visit an admin application show page
- And I reject one or more pets for the application
- And I approve all other pets on the application
- Then I am taken back to the admin application show page
- And I see the application's status has changed to "Rejected"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.