Code Monkey home page Code Monkey logo

doublehranch's Introduction

About this Project

"Orchard" is a one-stop social networking platform for alumni counselors, staff, campers, and volunteers to engage with camp -- and each other!

Setup

  • Install Ruby 2.4.1 (chruby, rbenv, rvm, etc)
  • bin/setup initially, then bin/update thereafter
  • Additionally, for AWS and Paperclip to work locally, be sure to update your own .env file with relevant AWS credentials, per the config/environments/development.rb

What This App Does

  • Admins import user data for alumni staff, counselors, campers, & volunteers into the system
  • Admins trigger an email for individuals to: verify their info and account settings, create a login, and adjust their privacy settings
  • Users are taken to a hub that aggregates social media data and links to:
    • events calendar
    • donor system
    • volunteer system
    • photo sharing / tagging /commenting
    • chat
    • facebook feed
    • twitter feed
  • Admin dashboard provides user data (number of invites sent, active users, etc)

Architecture

The app is built using Rails 5 with Postgres and AWS S3 for storing data.

A visual representation of the database schema is shown below to give users and contributors a better sense of the overall application structure included within this project:

Heroku

Paperclip requires an additional buildpack for imagemagick

heroku buildpacks:add --index 1 https://github.com/ello/heroku-buildpack-imagemagick -a doublehranch

Adding users via rails console

$ rails console
r> u = User.new(last_name: "Last", first_name: "First", email: "[email protected]", salutation: "Mrs.", password: "asdflkjasd;flkjasf;", privacy_settings: "")
r> u.save
# Pretend to have received the confirmation email
r> u.confirm

If you need to do this on the production app

heroku run -a doublehranch -- rails console
# Follow instructions above

Contributing

Our process is very similar to the guide created by Gitub:

  • Please fork the app and create a feature branch.
  • Work on the issue.
  • Please make sure tests continue to pass and if applicable that you also add tests to the feature you have implemented.
  • Open a pull request (PR) for it when you feel it's ready to merge.
  • At least one other person on the team needs to approve the PR before merging. The purpose of this review requirement is to ensure shared knowledge of the app and its changes and to take advantage of the benefits of working together.

Please let us know if you have any question. Thanks again for your interest in contributing.

About Double H Ranch

Double H Ranch is a nonprofit that provides specialized programs and year-round support for children and their families dealing with life-threatening illnesses. All programs are free of charge and capture the magic of the Adirondacks of upstate New York, and is one of the most uplifting places you could every visit.

Double H has limited engagement with former volunteers, campers, and summer staff, so would like to a system through which it can engage and build community with people who are no longer at camp. We'll build a greenfield product for them that will interface with a few of their existing systems (Facebook, Google calendar, Raiser's Edge), link to others, and provide a centralized location with some special features to allow everyone to interact.

Visit the Double H Homepage for more information.

doublehranch's People

Contributors

aceofbassgreg avatar arbianchi avatar dmjurg avatar jjlangholtz avatar jk1dd avatar jwieringa avatar jwpincus avatar maebeale avatar marshmalien avatar michaelbyrd avatar nessefc avatar pratt0923 avatar seanmarcia avatar zph avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doublehranch's Issues

Map

Create a map of all the users that have allowed us to share their location. Include custom "pin"

Things to consider:

  • distance filtering
  • privacy settings
  • Including the custom pin that Jess made!

User profile photos not uploading

Reported by user:

"
I wasn't able to upload a picture for my profile on the computer or my phone. [It shows]:
'The page doesn’t exist in personal account'
"

Add tool tips and hover states.

There are a few places that would benefit from tool tips and hover state changes.
The quickest solution is to just have the mouse pointer change on hover. Another more time consuming option is to also change the button on hover. I recommend doing that only if we do it consistently for all relevant buttons.

Here are some of the ones I found:

screen shot 2017-07-03 at 10 44 10 am
(Pointer change)

screen shot 2017-07-03 at 10 47 53 am
(Tooltips for the icons)

screen shot 2017-07-03 at 10 49 08 am
(Pointer change)

Improve navigation for editing positions from profile

Clicking edit/add positions from profile takes you to positions_held CRUD.

Perhaps passing a param to populate a "jump to last profile edited button" on the top of the positions_held index would help?

And/or adding another button to positions_held/form: "Update positions held [and return to their profile page]"?

Reported by user:

"
Updating position, profile info seems glitch and navigation- how do you go back and save info?
In order to update positions held, it brought me to the full list and had to go back to the grapevine to start again.
"

Chat

Allow users to chat with each other!
Things to consider:

  • users that want to access the site but do not want to be in the chat
  • group chats and individual chats
  • will you be able to send chat messages to yourself?

Stretch goals for chatting:

  • push notifications for users that want to access the chat on their phones
  • including the chat on every page(similar to how Facebook does it)

More tests!

Prob some good ones to start:

  • create a post w tags
  • search the greenhouse on both Orchard landing AND on greenhouse (posts) by that tag
  • create a user
  • conduct a few searches on the grapevine for that user using portions of:
    -- name
    -- email
    -- year
    -- position
  • add a test for each if current_user.admin? to make sure it's displaying/hiding correctly

Add instructional text re Grapevine 'name or email' searchbox

Reported by user:

"
The grapevine confused me. I searched whole names, like Kate Walsh or Lolly Hamilton, and nothing came up. But when I searched last names, everyone appeared. If that's the logic, we just need some better instructions or description of how to find people.
"

Pagination on Grapevine

Pagination is needed on Grapevine. 10 users per page.
*BONUS: option for user to increase/decrease users per page.
Note: make sure not to mess up the search. Search still needs to return results for all pages.

Password not being reset

Reported by user:

"
I changed my password, but after logging out and back in, it didn't recognize the new password.
"

User account edit needs some workflow buttons

The tabs at top are clickable, but it'd be nice to have 3 buttons at bottom to help with navigation.

  1. Cancel
  2. Save [step name (e.g. General)] updates
  3. Save [step name (e.g. General)] and continue (to next part in the account profile verify steps: general/photo/password/privacy
  4. Skip [step name (e.g. General)] and continue

Add link to import users from admin dashboard

Right now we can only get to the import users page by typing in the url.

A link from the main dashboard to the import users page would be nice.

A link from the import users page back to the dashboard would also be good.

Creating post not working in prod

Create action does exist, but currently has server error:

Paperclip::Errors::CommandNotFoundError (Could not run the identify command. Please install ImageMagick.)

Privacy Settings

Implement the privacy settings.

Users need to be able to:

  • make their accounts invisible to other general users(but not admins)
  • show or hide their address
  • show or hide their location

Remove RailsAdmin and replace w hand-rolled

RailsAdmin isn't playing nicely w our site styling, and volunteer devs are frustrated with the limitations of the DSL. We'd like to remove it, but create a new "dashboard"-type page like the rails admin home page. In order to fully remove RailsAdmin, we'll need to add CRUD for any sections that don't already have it:

  • Programs CRUD (this could be scaffolded)
  • User Create (we already have RU as part of the Profile edit)
  • User Delete (could just be a button added to User edit if user is an Admin. Users should not be able to delete their own account, and Admins should not be able to delete an account unless there is no associated info (positions helds, posts, comments, etc)

Improve workflow for inviting new users

Admin users would like a setting on importer to optionally send email invites.

They're thinking they want to import people, do some manual data cleaning,
and THEN send email invites.

So, if there were a "skip email invites" for people created on import, that'd be awesome.
AND, if there were a "send email invites" button added to the Nav Dropdown that'd be amazing.

Redirect after import

We need to redirect to a page after they have imported users. Maybe redirecting to a page with all of the users would be a good idea but it is up to you.

Also a success or failure message alongside that would be nice!

Add a confirm prompt for signing out

Reported by user:

"
signing out is a one step process so I accidentally clicked on the icon and was automatically out (not major, but can get annoying)
"

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.