Skip to content

Latest commit

 

History

History
37 lines (33 loc) · 1.86 KB

BackendPlanning.md

File metadata and controls

37 lines (33 loc) · 1.86 KB

SDHacks Planning

Backend Design

  • 1 ics file per event
    • can modify existing ics file to modify existing event (hopefully)
    • ics will be generated by ical4j (see below)
  • ical4j usage
    • each event is going to have a ComparableCalendar object (extends ical4j Calendar, not Java Calendar)
    • to export to ics, use CalendarOutput: See "Generating a Calendar File"
    • Store ComparableCalendar objects in a PriorityQueue sorted by start Date (note: Date is a class in ical4j, and it is Comparable) of the event
  • EventStorage class for frontend and TensorFlow processing to hook into
    • handles all i/o for events
      • creating new events
      • modifying existing events
    • public addEvent()
      • adds a new event to the list
      • parameters: String for title, String for date, anything else??
      • if event already exists, call modifyEvent() instead
    • private modifyEvent()
      • modifies an existing event
      • parameters: same as addEvent()
    • private eventExists()
      • returns true or false depending on whether the event exists or not
    • public deleteEvent()
      • deletes an existing event
  • ComparableCalendar extends Calendar implements Comparable
    • compareTo based on Dates of the VEvent

Ideas for Improvement

  • Sorting the list of already added events by different criteria (Name, Start Date, etc.)
    • would need a KD tree (which is why we're not doing this in the first iteration)
  • Handling fliers for recurring events
  • modifying existing events in the user's calendar
    • right now, new events can be added to the user's calendar by exporting the .ics file and importing it into the user's calendar app.
    • we are unable to modify existing events that have added to the user's calendar in the past via the above method.