Coder Social home page Coder Social logo

pantry_scheduler's Introduction

Build Status Stories in Ready

NOTE: THIS PROJECT IS ON HOLD DUE TO NEW USDA REGULATIONS REQUIRING THE ELIZABETH HOUSE TO USE GOVERNMENT PROVIDED SOFTWARE.

pantry_scheduler

Tracking issues in priority can be found here https://waffle.io/rubyforgood/pantry_scheduler.

Scheduling system for Elizabeth House Food Pantry. This app will allow volunteers to log in and create appointments for clients. Other volunteers will log in and check clients in. Reports will be generated and mailed monthly, quarterly and yearly.

Development

Install Postgres using Postgres.app and run it to get your database up and running.

We're using Ruby 2.4.1. If you don't yet have a method for installing/managing Ruby versions jgaskins recommends RVM.

With RVM installed, type

$ rvm use 2.4.1

If you don't have Ruby 2.4.1 installed, RVM will give you instructions for installing it (after which you should retry the above command).

Clone the repo:

$ git clone https://github.com/rubyforgood/pantry_scheduler.git && cd pantry_scheduler

Install the gems:

$ bundle install

Create and migrate your development database:

$ bundle exec rake db:setup

This command will also create a development user for you to login as with the following credentials:

email: [email protected]
password: abc123

Install node and yarn

$ brew install node yarn

Run the Rails Server

$ rails s

Running the front-end React application:

$ yarn install
$ ./bin/webpack-dev-server
navigate to localhost:3000 in the browser

*** Webpack error ****

Resolving webpack error after running rails s and navigating to localhost:3000:

$ Run ./bin/rails webpacker:install and ./bin/yarn install
$ Run bin/webpack-dev-server

Close your terminal

$ Run rails s again

pantry_scheduler's People

Contributors

ajohnson052 avatar bolducp avatar brianhays avatar chaden avatar charliecorrigan avatar deathtenk avatar hughgardiner avatar jgaskins avatar jwieringa avatar megbutler avatar pollygee avatar scooter-dangle avatar seanmarcia avatar solebared avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pantry_scheduler's Issues

Show historical days of appointments

Create a page to show summary information about previous days' appointments.

On Monday, a user may want to see a summary of what appointments, including who showed and who didn't for the previous Saturday or Thursday. (Maybe a date picker? - birds eye view of what's going on).

Need to be able to add Notes to a client

Maybe through the directory? And possibly have an option when we add a note to an appointment to also add it to the client? When I am creating an appointment a client might tell me information that would be relevant for all the rest of their appointments or maybe the next 6 or whatever.

Add Client model

We need a Model and Controller for Client.

Clients have:

  • first_name (required)
  • last_name (required)
  • address (required)
  • phone_number
  • cell_number
    -require that one number is present, either mobile or home
  • email
  • county (required)
  • zip (required)
  • num_adults (required)
  • num_children (required)
  • USDA_cert_date (date -can be null, N/A if country is AA or HO)

Need to be able to see current notes and add a new note to an appointment.

Currently we don't see the notes and can't add them. When you create an appointment you need to be able to see and add notes to that appointment.

It would be super duper awesome if you could see the notes on the client and be able to select any notes from the client to include on the client. Notes on the client are likely going to be needed on the appointment. Notes might be something like "Vegetarian" or "Lives in a hotel - no refrigerated items please"

Add features to creating an appointment

When creating an appointment, Food should be checked automatically, almost all appointments are for food.

Also the Address needs to show. At time of making appointment, the volunteer will verify this information, if it is updated, it needs to update Client.

Need to be able to add users

Need to customize devise so that users can be added and they will need to be able to change their passwords etc.

Remove an appointment from the dashboard after checkin

Currently when you finish a checkin, it shows the time of the checkin. I would prefer for that name to be removed from the list. Or maybe it can be pushed to the bottom and greyed out or something visually to clear the clutter of those who have already been checked in.

Make individual client history available

Currently clicking a name in the Directory gives us the ability to edit a client, we also want access to client appointment history. Maybe at the bottom of the modal here or somewhere else?

We also need notes to show here.

"Check in" button should be disabled when editing a client's info in checkin modal

Currently the workflow is that if you're checking a client in and edit their info you need to check "save" then "checkin" and I think this is a confusing workflow. We need to either disable "checkin" until you've saved or have some other way to alert the user that you must save before checkin. Currently if you click checkin then all edits are lost.

Need alert if appointment is too soon

Send an alert if trying to make an appointment that is less than 28 days from the last food appointment or if trying to make a utility appointment that is within the same calendar year last utilities appointment. In this case the client is not eligible for another appointment until the time has expired.

Users should be able to create an appointment

Users need to be able to look up a Client (using fuzzy search - PG full text search) and create and appointment for them. If they don't already exist, users will need to create a new Client.

We need some sort of dashboard?

Some ideas....let's iterate!

This shows some of the information that will be super important to the check-in volunteers.

--[ TODAY ]------ CHECKIN
Summary : County AA - 5 Families

Name County Family Size Actions
John AA 12 [Check in]
Susan AA 111 [Check in]
Jamie BC 11 [Check in]

(In Checkin Mode, volunteers should be able to update client info)

County Name Family count (sizes)
AA 5 (4, 6, 2, 1, 5)
PG 2 (8, 2)

John

Adults: 2
Children: 3
County: Anne Arundel

-- [ 5/16 ]-------

  1. asdfasdf

Counties should be restricted

County options should be limited to:
PG
HO
AA

Currently in the UI they are listed as Howard, Anne Arundle, but the db is seeded with above, so no county shows up.

Client Index Page

List all of the clients and their info. Make it searchable, and editable.

Set up Front End app

We need a baseline front end app going so we can do asset compilation etc. We will use React for this app.

Show notes on check in modal

We should show the notes on the checkin modal so when the volunteer is checking in a client they can make sure that any special needs or requirements have been met.

Add Appointment model

We need a model and controller for Appointments. Appointments will have

  • DateTime
  • client_id
  • has_many :notes
  • type
    • enum type: [:food, :food_and_financial] maybe?
  • family_size
  • usda_qualifier
    • boolean

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.