Awesome
README
Babywearing
The Mid-Atlantic Babywearing organization is dedicated to supporting the wearing of babies and toddlers for all caregivers. The MAB Volunteers love holding their babies, toddlers and older children close with baby carriers and work to spread that joy throughout the south-eastern and south-central areas of Pennsylvania.
What is Babywearing?
Babywearing is a method of carrying a baby, toddler or older child close against one’s body using any of a variety of types of carriers. Babywearing is a tool that has been utilized all over the world for many centuries, allowing caretakers to engage in daily activities while staying connected with the child and enjoying additional bonding time.
Check out the many benefits of babywearing.
About this Project
This app is multi-tenant, using acts_as_tenent
Each tenant is an organization. Each organization will have distinct carriers,etc.
The entities that will be separate are all the ones with organization_id
fields,
plus any that belong to any records with organization_id
fields (e.g. loans are
tied to things with organization_id
even though they do not need such a field themselves).
The app will know which organization the user is in (or is visiting) by looking at the subdomain.
There is a special organization with subdomain admin
. This will manage all
non-organization records (at this time just Categories
). It will have its own
set of users. This organization will have different menus (basically it will
only need access to non-organizational resources). See the db/seeds.rb
for info
on which organizations and users exist after running seeds.
To access the organization in dev, use <subdomain>.lvh.me:3000
.
Our current seed organizations are midatlantic and acme.
MAB has a lending library so that their members can try different types of carriers and find what works best for their family. They currently have software that works pretty well, but is a strain on their budget. The new software will keep track of members & dues as well as the lending library items and their due dates.
This project aims to provide MAB with a new Lending Library that is more cost effective and provides the same capabilities as their existing system with an emphasis on tailoring the experience to better suit the needs of this organization. The primary set of features this project will focus on includes:
-
Managing inventory of hundreds of carriers across multiple locations
-
Allowing Members to create or update their account information
-
Using volunteers to check in and check out carriers from inventory
-
Recording (not processing) financial transactions such as late fees and membership dues
- Simplifying the process to waive late fees
-
Improved notification of activities to members including:
-
Due date reminders for checked out items
-
Updates or changes to events and item due dates
-
-
Signing agreements and waivers to participate in the organization
Some additional stretch goals include:
-
Transferring inventory between locations (and tracking that history)
-
Event attendance sign in
-
Fast sign in for existing Members
-
Easy transition to create new accounts for new Members
-
-
Assign location preferences to Members
-
Opt-in text message for meeting and check out reminders using Twilio
Technical considerations
The volunteers in this group are very mobile and are using their personal phones or tablets (mostly iPad minis) to capture event attendance, register users, and process transactions. This project needs to consider a mobile-first design to continue to provide the users the flexibility of working remote without having to carry a laptop. Some events are also more of an ad-hoc popup so a phone could be the only device available in those moments.
Development
Ruby Version
This app uses Ruby version 2.6.3, Rails version 5.2.3, and PostgreSQL 11.4
Setup
- Clone the repo
- run
bin/setup
Install ImageMagick
ImageMagick is needed for the pages with images of carriers
run brew install imagemagick
Maintainability
We're currently using Code Climate for code assessment. You can see the current settings in .codeclimate.yml
and can read more about their Maintainability checks here.
Run tests
Run rspec
to run all tests
or
Run rspec path/to/spec.rb
to run a specific file
Start the app
Run rails s
and browse to http://midatlantic.lvh.me:3000/ or another subdomain
How to Contribute
We ♥ contributors!
By participating in this project, you agree to abide by the Ruby for Good Code of Conduct.
Look for issues with help wanted
label.
Please let us know you plan to work on an issue by commenting on the issue that you would like to work on it. We will assign the issue to you and take off the help wanted
label.
Please note if you submit a PR for an issue that someone else has already claimed we will not be able to merge your PR, even if you submit first.
Before you start working on an issue, please check that someone hasn't already claimed an issue. We try to take the label off as soon as possible, but sometimes there's a delay. This project and all Ruby For Good projects are all volunteer run, so we're sometimes not able to get to this immediately.
We welcome all types of contributions, but any pull requests that address open issues, have test coverage, or are tagged with the next milestone will be prioritized. Please read our How to Contribute guide for more information.