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 | |
```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 |