A modern, interactive calendar application built with React, TypeScript, and Vite. This application allows users to create, manage, and visualize events in a clean and intuitive interface.
- Interactive Calendar: View, create, and manage events in a user-friendly interface
- Event Management: Add, edit, delete, and reschedule events with drag-and-drop functionality
- Time Management: Navigate between dates and view events in a time grid format
- Responsive Design: Works seamlessly across desktop and mobile devices
- Toast Notifications: Get real-time feedback on your actions
- React 19
- TypeScript
- Vite
- FullCalendar
- DayJS for date manipulation
- React Day Picker for date selection
- React Toastify for notifications
- MSW (Mock Service Worker) for API mocking
- Vitest for testing
- Node.js (v18 or newer)
- Yarn or npm
-
Install dependencies:
yarn installor
npm install -
Start the development server:
yarn devor
npm run dev -
Open your browser and navigate to
http://localhost:5173
yarn dev- Start the development serveryarn build- Build the application for productionyarn lint- Run ESLint to check for code quality issuesyarn preview- Preview the production build locallyyarn test- Run tests with Vitest
This project uses Vitest for testing with MSW (Mock Service Worker) for API mocking. Tests are located in the src/tests directory.
# Run all tests
yarn test
# Run tests in watch mode
yarn test --watch
# Run tests with coverage
yarn test --coverage
# Run a specific test file
yarn test src/tests/components/Calendar.test.tsx
rec-calendar/
├── public/ # Public assets
│ └── mockServiceWorker.js # MSW service worker
├── src/
│ ├── api/ # API integration and services
│ ├── assets/ # Static assets
│ ├── components/ # React components
│ │ ├── Calendar/ # Calendar component
│ │ ├── Editor/ # Event editor component
│ │ └── ...
│ ├── constants/ # Application constants
│ ├── hooks/ # Custom React hooks
│ ├── logger/ # Logging utilities
│ ├── mocks/ # Mock data and API handlers for MSW
│ ├── tests/ # Test files
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
└── ...
- API mocking is handled by MSW (Mock Service Worker)
- The application uses FullCalendar for the calendar component
- Events can be dragged and resized directly on the calendar
- The project follows a modular structure for better maintainability
This project is licensed under the MIT License.
- FullCalendar for the calendar component
- React for the UI library
- Vite for the build tool
- MSW for API mocking