Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JavaScript Calendar Application

A modern, interactive calendar application built with vanilla JavaScript, HTML, and CSS. This project provides a clean, responsive interface for managing events with local storage persistence.

Calendar Screenshot

Features

βœ… Completed Features

  • Interactive Calendar Grid: 7-column CSS Grid layout with month navigation
  • Date Navigation: Click navigation buttons or use Ctrl+Arrow keys to navigate months
  • Date Selection: Click dates to select them with visual feedback
  • Event Data Model: Comprehensive Event and EventManager classes for data management
  • Responsive Design: Mobile-first CSS design that works on all devices
  • Accessibility: ARIA labels, keyboard navigation, and screen reader support
  • Modern UI: Clean, modern interface with hover effects and smooth transitions

🚧 In Development

  • Local Storage Integration: Persistent event storage across browser sessions
  • Event Creation Modal: Form-based event creation with validation
  • Event Display: Visual indicators and event details on calendar dates
  • Event Editing: Edit and delete existing events
  • Form Validation: Comprehensive input validation and error handling

Technology Stack

  • Frontend: Vanilla JavaScript (ES6+), HTML5, CSS3
  • Storage: Browser localStorage API (planned)
  • Styling: CSS Grid, Flexbox, CSS Custom Properties
  • Architecture: Object-oriented JavaScript with ES6 classes

Project Structure

β”œβ”€β”€ index.html          # Main HTML structure with semantic calendar grid
β”œβ”€β”€ script.js           # JavaScript application logic and classes
β”œβ”€β”€ styles.css          # Complete CSS styling with responsive design
β”œβ”€β”€ package.json        # Project dependencies
β”œβ”€β”€ .taskmaster/        # Task Master AI project management
└── README.md          # This file

Getting Started

Prerequisites

  • Modern web browser (Chrome, Firefox, Safari, Edge)
  • No build process required - runs directly in the browser

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/javascript-calendar.git
    cd javascript-calendar
  2. Open in browser

    # Simply open index.html in your browser
    open index.html
    # or
    start index.html
  3. Or use a local server

    # Using Python
    python -m http.server 8000
    
    # Using Node.js
    npx serve .

Usage

Navigation

  • Month Navigation: Use the arrow buttons (β€Ή β€Ί) to navigate between months
  • Keyboard Shortcuts:
    • Ctrl + ← - Previous month
    • Ctrl + β†’ - Next month
    • Escape - Close modal (when implemented)

Date Selection

  • Click any date to select it (highlighted in green)
  • Click dates from other months to navigate to that month
  • Today's date is highlighted in blue

Current Capabilities

  • View calendar in monthly format
  • Navigate between months and years
  • Select dates with visual feedback
  • Responsive design works on mobile and desktop

Architecture

Core Components

DateUtils

Comprehensive date manipulation utilities including:

  • Calendar grid generation with adjacent month dates
  • Month/year navigation calculations
  • Date formatting and parsing
  • Leap year handling and validation

Event Class

Event data model with properties:

  • id, title, description, date
  • startTime, endTime, category
  • createdAt, updatedAt timestamps
  • Built-in validation and JSON serialization

EventManager Class

Event management system featuring:

  • CRUD operations with validation
  • Efficient date-based indexing using Maps
  • Search and filter capabilities
  • Import/export functionality
  • Event statistics and analytics

CalendarApp

Main application controller managing:

  • Calendar rendering and updates
  • User interaction handling
  • Modal management system
  • Event integration and display

Development

Task Management

This project uses Task Master AI for structured development:

# View all tasks
npm run taskmaster get-tasks

# Work on next task  
npm run taskmaster next-task

Code Style

  • ES6+ JavaScript with classes and modern syntax
  • Semantic HTML with proper ARIA attributes
  • Mobile-first CSS with CSS Grid and Flexbox
  • Consistent naming with camelCase for JavaScript, kebab-case for CSS

Testing

Currently manual testing. Automated testing framework planned for future releases.

Roadmap

Phase 1: Core Calendar βœ…

  • βœ… Basic project structure
  • βœ… Calendar grid layout and navigation
  • βœ… Date selection and interaction
  • βœ… Event data modeling

Phase 2: Event Management 🚧

  • πŸ”„ Local storage integration
  • πŸ“‹ Event creation modal and forms
  • πŸ“‹ Event display on calendar
  • πŸ“‹ Event editing and deletion

Phase 3: Enhanced Features πŸ“…

  • πŸ“… Form validation and error handling
  • πŸ“… Event categories and colors
  • πŸ“… Search and filter functionality
  • πŸ“… Export/import capabilities

Phase 4: Polish & Optimization 🎯

  • 🎯 Performance optimization
  • 🎯 Advanced accessibility features
  • 🎯 Keyboard shortcuts
  • 🎯 Theme customization

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style and patterns
  • Add comments for complex logic
  • Test on multiple browsers and screen sizes
  • Update documentation for new features

Browser Support

  • βœ… Chrome 70+
  • βœ… Firefox 65+
  • βœ… Safari 12+
  • βœ… Edge 79+

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with modern web standards and best practices
  • Inspired by contemporary calendar applications
  • Developed using Task Master AI for structured project management

Status: Active Development | Version: 0.1.0 | Last Updated: January 2025

About

A modern, interactive JavaScript calendar application with event management capabilities

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages