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: Static YAML file (
src/data/conferences.yml
) 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.
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-fns
anddate-fns-tz
for timezone support