Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Course Calendar #17

Open
wants to merge 54 commits into
base: main
Choose a base branch
from
Open

feat: Course Calendar #17

wants to merge 54 commits into from

Conversation

tonydrayton
Copy link
Collaborator

Calendar

Created an interactive calendar with events

  • The 5 calendar views:
    • Day
    • 3 Day
    • Week
    • Month
    • Schedule
  • Uses CSS grid overlapping to overlap a grid containing time boxes with another grid containing the events
  • Uses Zustand to create mock events for the time being* - change to local storage
  • The chat interface with the AI scheduler is unfinished (needs the new API route implemented aswell as more logical cases such as adding/deleting/editing events from the calendar using the API)

Events

Structure

interface CalendarEvent {
  id: string;
  title: string;
  description: string;
  location: string;
  start: Date;
  end: Date;
  color: string;
  recurrence?: RecurrencePattern;
}

type RecurrencePattern = {
  type: 'daily' | 'weekly' | 'specific-days';
  interval?: number;
  days?: ('monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday')[];
  endDate?: Date | null;
}

Details

  • Events can be recurring:
  • Daily, weekly, or on specific days of the week
  • Can repeat any set amount of time
  • Color must be in Tailwind format (e.g. bg-blue-400)
  • Position on grid is determined by using both grid rows and grid columns, to find the corresponding slot to place the event ontop of the grid
  • Everything is customizable with a modal by clicking on the event (also will be customizable by the AI input in the future)
  • more things that i forgot ...

Checklist

  • Use local storage for events
  • Implement the scheduler interface and all of its logic
  • Desktop view

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant