Spaces:
Running
Running
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
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.
Development Commands
# 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
Architecture
Core Structure
- 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
Key Directories
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
Main Components
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
Data Model
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
Configuration Files
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
Data Updates
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.
Path Aliases
@/*maps tosrc/*for cleaner imports
Development Notes
- 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