The Dynamic Event Calendar Application is a React.js-based web application that allows users to manage events dynamically. The application features a fully interactive calendar grid with event management capabilities, clean UI design, and persistence through localStorage.
- Calendar View:
- Display the current month's calendar in a grid format.
- Navigation buttons to switch between months ("Previous" and "Next").
- Event Management:
- Add, edit, and delete events on specific days.
- Event details include:
- Event name
- Start time and end time
- Optional description
- Event List:
- Show all events for the selected day in a modal or side panel.
- Data Persistence:
- Store events in localStorage to maintain data across page refreshes.
- Month transitions handled automatically (e.g., Jan 31 to Feb 1).
- Overlapping events are prevented.
- Filter events by keyword.
- Drag-and-drop functionality to reschedule events.
- Color-coded events (e.g., work, personal, others).
- Export events for a specific month as JSON or CSV.
- Frontend: React.js (with functional components and hooks)
- UI Library: shadcn for components
- Persistence: LocalStorage
- Deployment: Vercel (or equivalent)
Ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
-
Clone the Repository:
git clone https://github.com/younusFoysal/Dynamic-Event-Calendar-Application cd Dynamic-Event-Calendar-Application
-
Install Dependencies:
npm install # or yarn install
-
Run Server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
.
To create a production-ready build:
npm run build
# or
yarn build
The build files will be available in the build/
directory.
The application is deployed on Vercel. You can view the live application using the link below:
To deploy yourself:
- Create an account on Vercel.
- Import the GitHub repository.
- Follow the deployment steps.
- Drag-and-drop event rescheduling.
- Enhanced filters (e.g., date range, category).
- Mobile-responsive design.
This project is licensed under the MIT License. See the LICENSE file for details.
Feel free to open an issue or submit a pull request for suggestions or improvements!