Giter Site home page Giter Site logo

bbasinsk / calendarandme Goto Github PK

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

A calendar application to find common times between groups and friends.

Home Page: https://bbasinsk.github.io/CalendarAndMe/

License: MIT License

HTML 1.67% JavaScript 96.84% CSS 1.50%

calendarandme's Introduction

Calendar & Me

Our application helps busy individuals plan and schedule events. With our application, users can seamlessly integrate with Google Calender to display visual calendars of all users in a group in order to view other users' availability. Users can also create group events that are displayed on all group members' calendars.

Getting Started

  1. git clone https://github.com/bbasinsk/CalendarAndMe.git
  2. npm install or yarn install
  3. npm start or yarn start

  1. Start by clicking on Sign Up
  2. Create an account
  3. Log into your Google Calendar account to sync your Google Calendar
  4. Create A Group
  5. Share your group by clicking on Get Group Key and send that to a friend
  6. Join a group by clicking on Join A Group and enter in the key
  7. Create events by clicking and dragging on the calendar or by clicking the + button in the bottom right. (Background shading shows that someone is busy during that time!)

Created By

  • Ben Basinski
  • Michelle Ho
  • Connor Hawthorne
  • Hassam Farooq

Packages Used

This project was bootstrapped with Create React App.

Design by Google: http://www.material-ui.com/#/

Calendar package: https://fullcalendar.io/

Colating styles: https://www.npmjs.com/package/aphrodite

Displaying dates with Moment: http://momentjs.com/

React Copy to clipboard: https://github.com/nkbt/react-copy-to-clipboard

React Google Auth: https://auth0.com/authenticate/react/google/

calendarandme's People

Contributors

bbasinsk avatar con4man avatar

Watchers

 avatar  avatar

Forkers

nogawb

calendarandme's Issues

Event Deletion

Add a way for events to be deleted.
If it is a group event, figure out a system for who can delete it.
Possible solutions:
Group creator (admin) is the only one that can delete events
Event creator is the only person that can delete that event
Either group creator or event creator can delete the event
50% of the group members have to vote to delete it

Loading User Feedback for Joining a New Group

Currently, after joining a group, it takes a while for all the events to load and for the group to show up in the sidebar. This may cause users to believe that it was an unsuccessful attempt to join, when in fact it was it did work and just displays slowly. However, if they wait a while or refresh the page, they will see everything worked correctly and they have been added to the group.
To fix this issue, we should provide the user with some feedback telling them that it is loading the new group they have just joined.
Possible solutions:
Do not close the dialog box until after it is loaded and show a loading text or image/animation
Close dialog box and open up a new one with a loading text or image/animation
Create a temp group in the sidebar with a loading image/animation

Improve Group Keys

Currently, the group keys are the keys from firebase. They are a little long and are completely random in configuration. We made a solution to this by providing it for them with a copy to clipboard options so that they can easily copy + paste it to a friend. However, a future solution could be to create a key that is the name of the group + increments of 1
Possible solution:
Use Aphrodite to make more simple keys
Group name = family
Group key = family-0001, family-0002, family-0003 etc.

Adjust Creation of an Event with the FAB

Currently, when creating an event with the floating action button, it will use a default start time the current time for the user. Since it's not very likely that a user would schedule an event starting at the current time, it would be better off to default the start time and end time for later in the future.
Possible solutions:
Have the default start time be in one hour from the current time and default end time be one hour after that.
Have the default start time be noon if the current time is in the hours of the morning, 5pm if the current time is in the afternoon, or 9 am if the current time is in the hours of the night and default end time be one hour after that.

Reloading to the Current View After Toggling Google Calendar

Currently, when a user toggles the Google calendar on or off, it will reload the view with a default of the current week's view. Since a user may be toggling this feature to compare with the events of other users and may do this in the future, it would be nice to keep whatever they are looking at as the current view.
Possible solution:
Find a way to store the users view in the state and reload that view after the toggle function occurs.

Group Deletion

Add a way for groups to be deleted.
Figure out a system for who can delete a group.
Possible solutions:
Group creator (admin) is the only one that can delete the group
Anyone can delete the group
Must submit a ticket to support in order for a group to be deleted
50% of the group members have to vote to delete it

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.