Skip to content

amandalmorris31/project-03-volunteer-calendar

 
 

Repository files navigation

Volunteer Calendar

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
  • 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/prettyawesomepractice007@gmail.com/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
  • Allow users to create their own login
  • Added security via cookies
  • Remove API key exposure
  • Better handling for "all day" and multi-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

About

A mobile application to manage events for volunteers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 87.1%
  • CSS 7.0%
  • HTML 5.9%