Spaces:
Running
Running
File size: 2,890 Bytes
0fc7363 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# 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
```bash
# 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 in `ui/` subdirectory)
- `src/pages/` - Route components (Index, Calendar, NotFound)
- `src/data/` - Conference data in YAML format
- `src/types/` - TypeScript type definitions
- `src/utils/` - Utility functions for date handling and conference processing
- `src/hooks/` - Custom React hooks
### Main Components
- `ConferenceList` - Primary list view of conferences
- `ConferenceCard` - Individual conference display card
- `ConferenceDialog` - Detailed conference information modal
- `FilterBar` - Conference filtering and search functionality
- `ConferenceCalendar` - Calendar view of conferences
- `Header` - 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 data
- `tailwind.config.ts` - Tailwind CSS configuration with custom theme
- `components.json` - shadcn-ui component configuration
- `tsconfig.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 to `src/*` 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` and `date-fns-tz` for timezone support |