Skip to content

TudorGR/CalendarIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CalendarIQ - AI-Powered Calendar

An intelligent calendar application that combines traditional calendar functionality with cutting-edge AI capabilities to revolutionize personal scheduling and event management.

calendariq

🎯 Overview

CalendarIQ is a comprehensive web application built as a university thesis project at Universitatea β€žAlexandru Ioan Cuza" din IaΘ™i (UAIC). It features an intuitive calendar interface enhanced by an AI assistant that helps users manage their schedules more efficiently through natural language interactions.

✨ Key Features

πŸ€– AI-Powered Assistant

  • Natural Language Processing: Create, modify, and search events using conversational commands
  • Voice Recognition: Speak your calendar requests directly to the AI assistant
  • Smart Time Suggestions: AI analyzes your patterns to suggest optimal scheduling times
  • Event Overlap Detection: Automatically detects and resolves scheduling conflicts
  • Personalized Recommendations: Context-aware suggestions based on your event history

πŸ“… Advanced Calendar Management

  • Multiple View Modes: Month, week, and day views for comprehensive schedule visualization
  • Event Categories: Organized categorization (Work, Health, Social, Travel, Education, etc.)
  • Smart Event Creation: AI-powered event suggestions with location and category recommendations

🌍 Local Events Integration

  • Real-time Local Events: Discover events happening in your city (focused on IaΘ™i, Romania)
  • Intelligent Filtering: Events filtered by timeframe (today, this week, this month)
  • Seamless Integration: Add local events directly to your personal calendar

πŸŽ™οΈ Voice Interface

  • Speech-to-Text: Create events and interact with the AI using voice commands
  • Real-time Audio Visualization: Visual feedback during voice input
  • Cross-platform Compatibility: Works on both desktop and mobile devices

πŸ“Š Smart Analytics

  • Event Pattern Analysis: Understand your scheduling habits and productivity patterns
  • Category Statistics: Visual breakdown of how you spend your time

πŸ” Secure User Management

  • User Authentication: Secure login and registration system
  • Personal Data Protection: Each user's events and preferences are privately stored
  • Persistent Sessions: Seamless experience across browser sessions

πŸ› οΈ Technology Stack

Frontend

  • React 19: Modern UI library with hooks and context
  • Tailwind CSS 4: Utility-first CSS framework for responsive design
  • Chart.js: Interactive charts and data visualizations
  • React Speech Recognition: Voice input functionality
  • React Router: Client-side routing
  • Day.js: Lightweight date manipulation
  • Axios: HTTP client for API communication

Backend

  • Node.js: JavaScript runtime environment
  • Express.js: Web application framework
  • MySQL: Popular open source database
  • Sequelize: ORM for database operations
  • JWT: JSON Web Tokens for authentication
  • bcrypt: Password hashing and security

AI & External Services

  • Groq SDK: Fast AI inference for natural language processing
  • Google Generative AI: Advanced AI capabilities for event suggestions
  • Speech Recognition API: Browser-based voice input
  • Local Events API: Real-time local event discovery

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/licenta-project.git
    cd licenta-project
  2. Install backend dependencies

    cd backend
    npm install
  3. Install frontend dependencies

    cd ../frontend
    npm install
  4. Environment Setup

    Create a .env file in the backend directory:

    PORT=5000
    JWT_SECRET=your_jwt_secret_here
    GROQ_API_KEY=your_groq_api_key
    GEMINI_API_KEY=your_gemini_api_key
  5. Start the application

    Backend server:

    cd backend
    npm start

    Frontend development server:

    cd frontend
    npm run dev
  6. Access the application

    Open your browser and navigate to http://localhost:5173

πŸ“– Usage Guide

Basic Calendar Operations

  • Navigation: Use the header controls to switch between month, week, and day views
  • Create Events: Click on any date/time slot or use the "+" button
  • Edit Events: Click on existing events to modify details
  • Categories: Organize events with color-coded categories

AI Assistant Commands

The AI assistant understands natural language commands such as:

  • Creating Events:

    • "Schedule a meeting tomorrow at 2 PM"
    • "Add gym session on Friday morning"
    • "Put dentist appointment next week"
  • Finding Events:

    • "When is my next meeting?"
    • "When was my last doctor appointment?"
    • "Find my workout sessions this week"
  • Time Suggestions:

    • "When should I schedule a team meeting?"
    • "Find the best time for a dentist visit"
    • "Suggest time slots for studying"
  • Local Events:

    • "What events are happening today?"
    • "Show me local events this weekend"
    • "Any concerts this month?"

Voice Commands

  • Press and hold the microphone button to record voice commands
  • Speak naturally - the AI will process your request
  • Audio visualization provides real-time feedback

πŸ“ Project Structure

licenta-project/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── database.js          # Database configuration
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── auth.js              # Authentication middleware
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ Event.js             # Event data model
β”‚   β”‚   β”œβ”€β”€ User.js              # User data model
β”‚   β”‚   └── associations.js      # Model relationships
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.js              # Authentication routes
β”‚   β”‚   β”œβ”€β”€ chat.js              # AI chat functionality
β”‚   β”‚   β”œβ”€β”€ events.js            # Event CRUD operations
β”‚   β”‚   β”œβ”€β”€ localEvents.js       # Local events discovery
β”‚   β”‚   β”œβ”€β”€ suggestions.js       # AI suggestions engine
β”‚   β”‚   └── travel.js            # Location and travel utilities
β”‚   β”œβ”€β”€ database.sqlite          # SQLite database file
β”‚   β”œβ”€β”€ server.js                # Main server file
β”‚   └── package.json
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ context/             # React context providers
β”‚   β”‚   β”œβ”€β”€ services/            # API service functions
β”‚   β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   β”‚   β”œβ”€β”€ assets/              # Static assets (icons, images)
β”‚   β”‚   β”œβ”€β”€ App.jsx              # Main application component
β”‚   β”‚   └── main.jsx             # Application entry point
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
└── README.md

🎨 Features in Detail

AI-Powered Event Creation

The system analyzes your past events to suggest:

  • Event Titles: Based on similar past events
  • Categories: Intelligent categorization
  • Locations: Frequently used venues
  • Time Slots: Optimal scheduling based on your patterns

Smart Conflict Resolution

When scheduling conflicts arise, the AI:

  • Detects overlapping events
  • Suggests alternative time slots
  • Provides interactive resolution options

Local Events Discovery

  • Real-time integration with local event sources
  • Intelligent filtering by timeframe and relevance
  • Location-aware suggestions

πŸ”’ Privacy & Security

  • Data Encryption: All passwords are hashed using bcrypt
  • JWT Authentication: Secure token-based authentication
  • User Isolation: Each user's data is completely private
  • No Data Sharing: Personal calendar data never leaves the secure environment

πŸŽ“ Academic Context

This project was developed as a bachelor's thesis at Universitatea β€žAlexandru Ioan Cuza" din IaΘ™i (UAIC), focusing on the integration of artificial intelligence with traditional calendar management systems. The research explores how AI can enhance user productivity and scheduling efficiency through natural language processing and pattern recognition.

πŸ“„ Copyright & License

Β© 2025 Universitatea β€žAlexandru Ioan Cuza" din IaΘ™i (UAIC)

This project was developed as part of academic research at UAIC. All rights reserved.

Note: This software is the intellectual property of the university and the student developer. Please contact the institution for licensing inquiries.

🀝 Contributing

This is an academic project developed for thesis purposes. While the code is available for educational reference, please respect the academic nature of this work.

πŸ™ Acknowledgments

  • UAIC Faculty for providing guidance and resources
  • Groq for providing fast AI inference capabilities
  • Google for Generative AI services
  • Open Source Community for the various libraries and frameworks used

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published