This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is an AI Conference Deadlines web application that displays submission deadlines for top AI conferences like NeurIPS and ICLR. It's a React/TypeScript web app built with Vite, using shadcn-ui components and Tailwind CSS.
# Install dependencies
npm i
# Start development server (runs on http://localhost:8080)
npm run dev
# Build for production
npm run build
# Build for development
npm run build:dev
# Lint code
npm run lint
# Preview production build
npm preview- Frontend: React 18 + TypeScript + Vite
- UI Framework: shadcn-ui components with Radix UI primitives
- Styling: Tailwind CSS with custom animations
- Data Source: Individual YAML files per conference (
src/data/conferences/) updated via GitHub Actions - State Management: React hooks, no external state management library
src/components/- React components (UI components inui/subdirectory)src/pages/- Route components (Index, Calendar, NotFound)src/data/- Conference data in YAML formatsrc/types/- TypeScript type definitionssrc/utils/- Utility functions for date handling and conference processingsrc/hooks/- Custom React hooks
ConferenceList- Primary list view of conferencesConferenceCard- Individual conference display cardConferenceDialog- Detailed conference information modalFilterBar- Conference filtering and search functionalityConferenceCalendar- Calendar view of conferencesHeader- Navigation and app header
Conferences are defined by the Conference interface in src/types/conference.ts with properties including:
- Basic info:
title,year,id,full_name,link - Dates:
deadline,abstract_deadline,date,start,end - Location:
city,country,venue - Metadata:
tags,hindex,note
vite.config.ts- Vite configuration with YAML plugin for loading conference datatailwind.config.ts- Tailwind CSS configuration with custom themecomponents.json- shadcn-ui component configurationtsconfig.json- TypeScript configuration
Conference data is automatically updated via GitHub Actions workflow (.github/workflows/update-conferences.yml) that fetches from ccfddl repository and creates pull requests with updates to individual conference files.
@/*maps tosrc/*for cleaner imports
- Timezone for deadlines: Always use
AoE(Anywhere on Earth, equivalent to UTC-12) for conference deadline timezones. Never useUTC-12— useAoEfor consistency and clarity. - Supported timezone formats in YAML:
AoE, IANA names (e.g.Asia/Seoul),UTC±X,GMT±X
- The app uses a YAML plugin to import conference data directly in components
- All UI components follow shadcn-ui patterns and conventions
- The project uses React Router for client-side routing
- Date handling uses
date-fnsanddate-fns-tzfor timezone support