/google-calendar

This project aims to create a production-ready, responsive UI for a calendar application similar to Google Calendar. The application utilizes mock data with a custom data structure and implements various features to enhance user experience.

Primary LanguageJavaScript

Google Calendar

A production-ready, responsive UI for a calendar application similar to Google Calendar. This application utilizes React framework.

🚀 Features

  1. Events that the user has selected going are colored for easy identification.
  2. The calendar handles all-day events and distinguishes between private and public events. Private event titles are hidden, and a static title "Busy" is displayed.
  3. Different color coding is applied for different types of events, such as normal events, stretching events, and all-day events.
  4. Drag and drop functionality allows users to move events within a day across different time slots in the calendar.
  5. Thorough testing ensures reliability and handles edge cases.
  6. Red line indicating the current time.
  7. Clicking on an event opens a modal showing the event details.

Dependencies

  • React - A JavaScript library for building user interfaces.
  • React DOM - React package for working with the DOM.
  • Ant Design - A UI design language and React UI library.
  • React Icons - Popular icon library for React.
  • React Modal - Accessible modal dialog component for React.

Development Dependencies

Screenshots

google-calendar-day-view calendar-opened-view modal-opened-view

Getting Started

  1. Clone the repository.
  2. Install dependencies using npm install.
  3. Start the development server using npm run dev.
  4. Open your browser and navigate to the provided URL to view the application.

Usage

  • Select events by clicking on them to mark them as going.
  • Drag and drop events within the calendar to reschedule them.
  • Click on an event to view its details in a modal.

Note

This project is developed using Vite and can be previewed using the vite preview command. Make sure to have Vite installed globally or use npx vite preview to run the project.