TaskPlanner - Calendar Components This project contains two distinct calendar implementations for managing tasks within a dynamic to-do list integrated with a calendar view. These implementations include a Custom Calendar Component and a FullCalendar Component. Both components allow users to view, add, update, and delete tasks on specific dates.
- Custom Calendar Component Overview The Custom Calendar Component is a manually built calendar that enables users to view a specific month, navigate between months, and interact with tasks assigned to particular dates.
It includes the ability to:
- View tasks on a specific date.
- Add new tasks by clicking on a date.
- Edit or delete tasks within a dialog.
- Navigate between months using "Previous" and "Next" buttons.
Features:
- Month Navigation: Navigate through months using the provided buttons.
- Task Management: Users can add, edit, or delete tasks on any given day.
- Task Priority: Tasks can be assigned a priority (Low, Medium, High).
- Date Picker: The task date is automatically set based on the selected day, and it's displayed as a read-only field within the dialog.
- Form Validation: Task name and priority are required fields, and the Save button is disabled until the form is valid. Implementation
- Calendar Grid: A custom grid layout was created using *ngFor loops to generate the days of the current month dynamically, including empty spaces for days that do not belong to the current month.
- Task Dialog: A PrimeNG p-dialog is used to open a modal where users can input task details. It features form validation, and the task date is disabled to prevent editing.
Technologies Used
- Angular Forms (FormBuilder, FormGroup)
- PrimeNG Dialog (p-dialog)
- Custom CSS for styling the calendar grid
FullCalendar Component:
Overview:
The FullCalendar Component is an integration of the FullCalendar library into the project. It provides a more advanced, out-of-the-box calendar experience with additional features such as drag-and-drop functionality, dynamic event creation, and event updates.
Features:
- Event Creation: Users can click on any date to create a new task.
- Task Management: Tasks are added, updated, or deleted via a modal dialog.
- Drag-and-Drop: Tasks can be dragged from one date to another directly on the calendar.
- Event Rendering: Tasks (or "events") are rendered as entries on the selected dates.
Implementation:
- FullCalendar Integration: FullCalendar was integrated into the project to provide a rich user experience for the calendar view.
- Event Click: Clicking on an event opens a modal dialog where users can view and edit task details.
- Date Click: Clicking on any empty date opens a modal dialog to add a new task.
- Drag-and-Drop: FullCalendar's built-in drag-and-drop feature was enabled to allow users to move tasks between dates visually. Customizations
- Task Dialog: Similar to the custom component, PrimeNG's p-dialog was used for the task creation and editing modal.
- To use FullCalendar component, route to http://localhost:4200/calendar
Technologies Used:
- FullCalendar for the calendar.
- Angular Forms (FormBuilder, FormGroup) for task management.
- PrimeNG Dialog (p-dialog) for displaying task details.
This project was generated with Angular CLI version 18.2.9.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The application will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.