GithubHelp home page GithubHelp logo

darnocer / helpersconnect Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 9.47 MB

An application for charitable organizations to manage events and volunteers.

Home Page: https://helpers-connect.herokuapp.com/

HTML 4.63% JavaScript 83.61% CSS 11.76%
google-calendar oauth mongodb

helpersconnect's Introduction

HelpersConnect

last commit

Description

An application for community service-based organizations to manage events and volunteers.

calendar

Table of Contents

Features

  • One Admin can control the events that appear directly from a Google Calendar
  • Attendees are tracked using their Google accounts
  • Mobile-responsive design
  • Volunteers can mark if they are attending the event
  • Search and filter through events

Installation

Cloning repo

  1. Fork repo
  2. Clone to local machine

Initial Setup (proxy for development/testing locally)

  1. npm i to install packages
  2. Uncomment out the code in /client/src/setupProxy.js
  3. Add "proxy": "http://localhost:3001", to /client/package.json

OAuth

  1. Setup OAuth app on in Google
  2. Set HomepageURL to http://localhost:3000
  3. Set Authorization callback URL to http://localhost:3000/auth/github/callback
  4. Update client id and client secret from OAuth app in in config/keys.js

Google Calendar Setup

  1. Create a public Google Calendar that will be used solely to display organization events
  2. In client/src/pages/Calendar.js update the email in getEvents() to be your Google account
return gapi.client.request({
path: `https://www.googleapis.com/calendar/v3/calendars/[email protected]/events?singleEvents=true`,
});

MongoDB

  1. Robo3T or another MongoDB GUI a prerequsite for this application
  2. Can run npm run seed to seed the database

Running app

  1. npm start
  2. Navigate to http://localhost:3000/auth/google
  3. Enter Google credentials to authenticate

Validation

  1. Verify a string of letter and numbers appear in the URL
  2. Validate the user information is available in the user collection in the database

Optional Styling

  1. In /client/src/index.css can update the primary and accent hex codes:
:root {
 --primary-color: #04244c;
 --accent-color: #ffcb05;
}

Deployment

Deployment instructions coming soon

Screenshots

desktop mobile

Future Enhancements

  • Convert template to use content management system
  • View only for unauthenticated users + sign in link
  • Added security via cookies
  • Remove API key exposure
  • Better handling for "all day" events
  • User can decline event
  • Announcements page
  • Admin Backend
  • Better mobile-responsiveness
  • Convert to React Native
  • Convert to PWA
  • Push Notifications
  • Sync event to user's calendar
  • Send responses to Admin's calendar
  • See events attending on volunteer profile

Credits

Contributors

  • Shannon Kearney Follow on Github
  • Amanda Morris Follow on Github
  • Katie Thorpe Follow on Github
  • Darian Nocera Follow on Github
Copyright © 2020

helpersconnect's People

Contributors

darnocer avatar kthorpe1023 avatar shannonthoko avatar amandalmorris31 avatar

Watchers

James Cloos avatar  avatar

Forkers

kthorpe1023

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.