rubyforgood / babywearing Goto Github PK
View Code? Open in Web Editor NEWA lending library for Babywearing communities that manages baby carrier inventory and memberships
License: MIT License
A lending library for Babywearing communities that manages baby carrier inventory and memberships
License: MIT License
If an item/carrier does not have an image uploaded, add a default placeholder image.
https://www.dropbox.com/s/nex4bv78v980irv/BABYWARING%20ICON.svg?dl=0
We moved listing carriers from show to index, so we need to update the tests to reflect that change.
Failing tests:
https://travis-ci.org/rubyforgood/babywearing
Add support for the basic concept of a Location. Attributes include:
See #59
All images (placeholder and uploaded) should be the same size.
item
(ie `/carriers/5/edit) has a photo upload option that is used for that specific item.We currently have Organization, and we need to remove it. It's been confusing, and for now we only have one organization. We won't have more for a long time, so we don't want to overly complicate our MVP for the unknown in the future. So going forward we want to build for only one org and want to remove what we have currently that uses it.
Now that the organization
and location
models exist, they should probably be related to each other. Let's add an association between the two models and make it so when a location is added it's joined to an organization.
Once a transaction has been completed, send user an email noting the following:
Greeting
: Hello ,
Subject
: Transaction receipt from MidAtlantic Babywearing
Body
:
Check out these pointers...
https://www.youtube.com/watch?v=rfJvWBh7KPw
https://midatlanticbabywearing.org/babywearing-safety/
https://docs.google.com/document/d/1AxWPN7ACTVN76glH8wAllX5ggs2HwC0cwgBshJz_tnQ/edit?usp=sharing
You can also get a fit check on our facebook group.
Please keep the following for your records:
Item Information
Check-In Due Date
Location
Thank you for using MidAtlantic Babywearing.
Create a User model and use Devise to support allowing users to register themselves and sign in and sign out of the application.
Is your feature request related to a problem? Please describe.
Logged in site Admin
users should have the ability to manage the different membership types/tiers for the group.
Describe the solution you'd like
While user
is logged in, has been assigned admin
role, and is currently viewing the membership_types
page, the following should be available:
Name
(membership
type), Allow Checkout
and Actions
.Name
would populate all existing membership
typesAllow Checkout
would indicate whether the membership
type is permitted to check out inventory items.Actions
would populate an Edit
button to allow the user
to edit the options for that membership
type.Edit
should allow the admin
to edit the Membership Name
and Allow Checkout
(boolean) fields for that membership
type.Add Membership Type
button below the table should allow the admin
to enter the Name
of the membership
type and toggle the Allow Checkout
option. On submit
, the newly created membership
type should be added to the table.For carriers, we need four separate status options
Available
Disabled
Sold
Unavailable
These statuses should be a dropdown on the carrier's page.
We would also like a method on the carrier model called available_for_checkout?
which will return false for all these status' except Available
While logged in as Admin, allow user to quickly get to a table showing all items in that organization, with the ability to filter the view by status.
Table should show the following for each item in a 5-column layout:
While logged in as an Admin, users should have a way to quickly navigate to a list populating all item's in an organization that are currently checked out and overdue.
Table view
A new inventory page is needed to view an organization's inventory.
When a user (registered or not) visits an inventory page for a specific organization, they should be able to view all inventory items within that organization.
Information for all items from #19
We need to build a database of carriers for our inventory. To help everyone with testing the web app let's seed the database with actual carrier data. We can export carriers from MyTurn and import it using the ruby seed file. Whoever takes this on - talk to me. I'll connect you with an export of what the stakeholder already has and we'll have to hash out some details like
Adding Code Climate's open source "Quality"
Admins and Volunteers should be able to navigate to a view listing all registered users of any role.
In a 5-column table, list all registered users in the current Organization with the following fields:
created_at
)Sort order: Alphabetical by Last Name
When viewing the inventory page (#21), a search bar should populate at the top, along with filter options.
Users should be able to enter text into search input and view matching results based on:
-- Name
-- Manufacturer
-- Model
Users should be able to filter by:
-- Location
-- Status
-- Category
Once #30 is complete, on submitting user registration form, send an email confirmation to the user's registered email address.
Add support for the create/read/update/destroy of a MembershipType. Attributes include:
Describe the bug
Currently when a user signs up or signs it, the flash message is shown twice. I think both of the issues can be resolved with one solution, seems they are related.
To Reproduce
If I click on the "Sign Up" button when i'm logged in, I get shown this message twice: "You are already signed up".
If I click on a navigation button while logged out, I am shown "You need to sign in or sign up before continuing" twice as well.
Expected behavior
The expected behavior would be for those messages to be shown once, not twice
When accessing /categories
, each different carrier category has an option to "Show".
When clicking that link and accessing that category, all carriers assigned to that category should be displayed.
Example, when on /categories
and clicking Show for Ring Slings
, I'm taken to /categories/18
, but nothing other than the category name are displayed. Instead, this should show me all carriers that are assigned to the category of Ring Sling
.
Add the basic capability to create/read/update/destroy categories. Category attributes include:
When rendering carriers#index
we have N+1 on this line.
For each row we are firing new DB query to fetch the location.
Expected:
Preload locations upfront using included
on the ActiveRecord::Relation
Describe the bug
When navigating to certain show pages for carriers in the seed data, the page is broken and gives an error MiniMagick::Invalid in Carriers#show
To Reproduce
Steps to reproduce the behavior:
Go to /carriers/6
or /carriers/19
Expected behavior
We should see the information about the carrier corresponding to the seed data information.
I'm not sure why these couple pages are broken and the other ones seem to work fine.
There is a csv file used, maybe there's something in there that is causing a problem?
From the 3000/carriers page, it is the link for Bitty Bean Baby
and Lillebaby All Seasons
that are broken.
Add basic capability for an Admin to create/edit/destroy Fee Types
and Amounts
Existing fee types/amounts:
Cleaning Fee - $15
Late Fee - $1 (this fee will be assessed per day in the transaction workflow)
Membership Donation - $30
Second Carrier Addition - $5
Trial Membership - $10
Upgrade Membership (Single to Double) - $20
Upgrade Membership (Trial to Single) - $20
Minor updates were last made in #11 , but app setup instructions need to be documented for new contributors.
Please be sure to include even the small/easy/nuanced information so that our project is as welcoming as possible.
Carriers currently have a Location
, but we need to distinguish between the carrier's home location (where it originated from when added) and which location it is currently assigned to.
Location
to Home Location
. This would be the original location of the item.Current Location
status. This would be a dropdown option in a workflow (not yet implemented) to allow a carrier's Current Location
to be updated.On /carriers/new
, add this second dropdown for Current Location
to the page beneath Location
(which should be renamed to Home Location
.
The basic use case would be:
Item 1 is purchased/donated for the DelCo location. This is its Home Location
and would not change on transfer.
Demand for Item 1 in DelCo (Home Location
) is low, but there's demand for that item at the ChesCo location. User would be able to select ChesCo as the item's new Current Location
.
Item 1 would then show the following:
Home Location
- DelCo
Current Location
- ChesCo
Add the basic capability to support creating/reading/updating/and destroying a Carrier. Initial things we need to capture about a Carrier include:
Create text field inputs for managing the following two user agreements:
Lending Library Agreement
Membership Application & Lending Library Agreement
Existing text can be found in the following files:
MAB Membership Application and Lending Library Agreement.pdf
MAB Lending Library User Agreement.pdf
I propose to change the fixtures for factory bot. WDYT?
Describe the bug
When signing up for the first time, I had not visual indication that all fields were required until I received a list of errors after clicking "Sign up". Visual users, as well as screen reader users are given no heads up that they need to fill it all in, even though we assume it makes sense.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
With no indication as to what's required or optional, I think most of these fields are optional, with the exception of the email and password fields.
If required, a screen reader user will expect to hear their screen reader announce "field required". A visual user will expect to see "*", "(required)", or "(optional)" written next to the label.
Desktop (please complete the following information):
Additional context
This is an accessibility and usability issue. Screen reader users are not warned with a required
or aria-required
attribute. Visual users with cognitive disabilities as well as people without may become frustrated when it doesn't work for them the first time, and they're presented with a list of errors at the top.
Now that #18 is complete, add the following fields to the user model for new user registration (/sign_up).
First Name
Last Name
Street Address
Address 2 (Apt, Suite, Floor, etc)
City
State
Postal Code
Phone Number
In /categories
, the view is currently confusing as the Parent categories and subcategories are listed inline with each other.
We need to change the /categories
view so that its default view lists only Parent categories.
When a Parent category is clicked, we should then display all associated sub-categories assigned to that Parent.
Describe the bug
We have a failing test.
To Reproduce
Run the test in the file
# ./spec/features/user_spec.rb:58:in
Expected behavior
Seems we would expect to only get one email from Devise
but we're getting two
Expect(Devise.mailer.deliveries.count).to eq 1
but we got 2
Add the basic capability to create/read/update/destroy and organization. Basic attributes can include:
First contribution to the repo, getting my feet wet with some quick grammar fixes
Dependency: #33
Add button to allow user to export the current table as a .csv file.
Possible reference: https://www.codementor.io/victor_hazbun/export-records-to-csv-files-ruby-on-rails-vda8323q0
Is your feature request related to a problem? Please describe.
According to Github, we have security vulnerabilities and we need to upgrade Devise to 4.7.1 or higher and Devise to 1.10.4
More details for Devise vulnerability
https://github.com/rubyforgood/babywearing/network/alert/Gemfile.lock/devise/open
More details for Nokogiri vulnerability
https://github.com/rubyforgood/babywearing/network/alert/Gemfile.lock/nokogiri/open
update codeowners file
The default landing page should display the following, based on authentication/organization:
Is your feature request related to a problem? Please describe.
Logged in site Admin
users should be able to manage the list of locations, currently used to define meeting locations, and used to specify an item's current assigned location
.
Describe the solution you'd like
While user
is logged in, has been assigned admin
role, and is currently viewing the manage locations
page, the following should be available:
location
names and an Edit
button next to each location.Edit
should allow the admin
to edit the location
name, or remove
the location
with confirmation.Camp Hill
ChesCo
DelCo
Lancaster
MontCo (City1)
South Philly (City2)
Waynesboro
York
Add Location
button below the table allowing the user
to add a new location to the table.Additional context
The location
names managed in this page will be used for the following:
membership
signup preference to indicate meeting location preferences (where the user
will be attending meetings and checking in/out inventory items) and may additionally be used to subscribe to location
-specific email/SMS alerts.item
location and location history to indicate where each unique item
(presumably identified by item_id
) will be checked out from and checked in to.location
location
Add the twitter bootstrap gem to our project and setup some basic styling and html structure in the application layout so the page is formatted. Here are the instructions for setting this up:
Allow a user to upload one or more pictures to a Carrier item in inventory so that it can be displayed in the inventory to users.
Role assignments for registered users should be created and assignable to user accounts:
Admin
Volunteer
Member
User
When a user becomes a member of an organization, they need to sign the agreements for that organization if they have any. Users should see a notification that there are agreements that are unsigned. Users should be able to navigate to the Agreement(s) to read them and then sign them by typing in their name or initials. When a user signs an agreement it should be tracked with what text they signed with and when it was signed.
The nav bar currently shows icons and font that is not correctly aligned/sized.
INVENTORY
to CARRIERS
CREATE USER
should link to our sign up form and should only be visible to authenticated users who are VOLUNTEERS or ADMINS.INVENTORY
will be renamed to CARRIERS
in #81 and should link to the carrier listing.Quick Access
should be updated to include a link to Locations
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.