/ccfvol

Prairie Hill Learning Center - Children's Country Fair Volunteer sign-up application

Primary LanguageRuby

PHLC Apps

Scheduler

Generalize a scheduler for use of staff, family and other community members to organize around basic staffing, special events (ie. Children’s Country Fair volunteer sheet), and other practicalities where larger amounts of information need to be streamlined for simplicity in use. Think about that large spreadsheet that has been used for the last few country fairs…

What should we call it?

Children’s Country Fair CCF Scheduler CCF Volunteer Prairie Hill PHill PRAIRIE HILL

  • the title that will be displayed can be anything that makes practical sense i don’t think it needs to be anything brilliant or catchy. let’s just come up with something short and practical for the actual app building

    ccfvolunteer CCFvol

Practical issues

  • [ ] can we link to and/or integrate this application with the currently existing google docs spreadsheet? I think that this will be important for those who are less comfortable with switching to new tools
  • [ ] will need a reset action? depends on how i program the actual modifications as people volunteer. maybe there is a new duplicate database? how is this done usually? it’s all new to me, but hella exciting! i never thought database work could be so much fun!

What are the resources?

Let’s take a look at the country fair sign up sheet. It’s a rather daunting form to work with. Maybe I am the only one who hates spreadsheets, but I considered it the most cumbersome tool to use when trying to

  1. See what slots are open and need volunteers, how many are needed, etc
  2. Sign up for a time

So, thinking in a Rails way, what are the resources to be identified? What do we need the ability to Create, Read, Update and Destroy? Once we figure that out, the rest is easy display modification, based on the updated information. I love it!

Country Fair Sign-up Spreadsheet

Let’s look at the spreadsheet, which will work as a basis for our model. Here are the columns of the spreadsheet.

  1. Work Area
  2. Coordinator
  3. Has painted sign?
  4. # Tickets for activity
  5. tickets collected
  6. # volunteers needed
  7. Friday setup (4-6)
  8. Saturday setup (9-11)

Can we simplify this? Some of the columns seem like minor relationships that may not need such a spotlight. Let’s think about it. What I see as the primary purpose and need for this sign up is just that: for people to sign up to help out where needed. Everything else is secondary, right? So, we can narrow it down to the following:

  1. Work Area (Activity)
  2. # Volunteers needed (Need)
    • total needed (Need:total)
    • still needed (calculated as people sign up)
    • volunteers names as they sign up?
  • this may be secondary as a different view as it might not be necessary for the main sign up. basically, if you want to sign up, you first will want to see what’s open. maybe, for those who are curious who they might be working alongside (where more than one volunteer is required per station session), there could be a small attached link with a nice javascript drop-down window or something like this
    1. Time slots (Shift)
      • Friday setup (4-6pm)
      • Saturday setup (9-11am)
      • 11am-12pm
      • 12-1pm
      • 1-2pm
      • 2-3pm
      • Saturday tear-down (3-5pm)

Okay. I think that I will try building a specific application for this purpose first, then modify it or create a more general one in the future.

Our Models

Sketch

Activities
idtitlecoordinatorticketspainted_signshifts
1Face PaintingAnde3trueSaturday 11-12, Saturday 11-12, Saturday 12-1, Saturday 12-1
2Signageolder elementary0falseSaturday 9-11 setup, Saturday 9-11 setup, Saturday 9-11 setup
Shifts
idactivity_idtitlevolunteer_id
11Saturday 11-121
21Saturday 11-122
31Saturday 12-13
41Saturday 12-14
52Saturday 9-11 setup1
62Saturday 9-11 setup2
72Saturday 9-11 setup3
Volunteers/Users
idnameemail
1Grant Brownyardgcentauri@gmail.com
2Mandie Schadwinkelmschad@gmail.com
3Ander Sonson@lincolnix.net
4Justin Fearingjfear@gmail.com

NB: add_column :users, :name, :string

Resources

Activities

V 001

Activities
idinteger
titlestring
volinteger
shift_idinteger

V 010

Activitiesexample
idintegerActivity Object Id1
titlestringName of the Activity“Water Play”
coordinatorstringName of the person coordinating the activity“Chris Eigbrett”
ticketsintegerNumber of tickets needed to participate2
painted_signbooleanDoes the activity have a painted sign?true
shiftstextArray or collection of Shifts being managed for this activity[ “Saturday 11-12” => 2, “Saturday 12-1” => 3, … ]

An Activity has_many Shifts, each Shift associated with an Activity has a unique number of volunteers needed

rails generate scaffold Activities title:string vol:integer shift_id:integer

It looks like there isn’t a consistent association between an activity and the number of volunteers needed. For example, the activities that are setting things up only need volunteers during some of the shifts. Perhaps some

Each activity has a number of volunteers needed, depending up the shift

What’s the best way to associate the properties?

How should we / where should we think about placing shifts? I ran into this same logical problem when trying to program a calendar. I can’t quite wrap my mind around the logistics of it.

Shifts

V 001

Shifts
idinteger
titlestring

V 010

Shiftsexample
idintegerrecord id5
titlestringdescription of the shift day and time“Saturday 12-1”
activity_idintegerassociated activity by record id3
volsintegernumber of volunteers needed for this shift (title, activity_id)2
rails generate scaffold Shifts title:string

Each shift has a number of volunteers needed, depending on the activity

  • Design note: shifts selection should be maybe a drop down menu?

Volunteers

Use devise for this part?

Volunteers
idinteger
namestring

Controllers

A controller’s purpose is to receive specific requests for the application. Routing decides which controller receives which requests.

Views