Spaces:
Running
Running
Update README
Browse files- README.md +17 -45
- src/components/ConferenceDialog.tsx +56 -42
- src/data/conferences.yml +19 -1
- src/types/conference.ts +7 -0
README.md
CHANGED
|
@@ -7,23 +7,17 @@ sdk: docker
|
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
|
| 10 |
-
#
|
| 11 |
|
| 12 |
## Project info
|
| 13 |
|
| 14 |
-
|
| 15 |
|
| 16 |
-
|
| 17 |
|
| 18 |
-
|
| 19 |
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
Simply visit the [Lovable Project](https://lovable.dev/projects/5c0b5f16-c917-4e43-9d0c-03c32081e407) and start prompting.
|
| 23 |
-
|
| 24 |
-
Changes made via Lovable will be committed automatically to this repo.
|
| 25 |
-
|
| 26 |
-
**Use your preferred IDE**
|
| 27 |
|
| 28 |
If you want to work locally using your own IDE, you can clone this repo and push changes. Pushed changes will also be reflected in Lovable.
|
| 29 |
|
|
@@ -33,10 +27,10 @@ Follow these steps:
|
|
| 33 |
|
| 34 |
```sh
|
| 35 |
# Step 1: Clone the repository using the project's Git URL.
|
| 36 |
-
git clone
|
| 37 |
|
| 38 |
# Step 2: Navigate to the project directory.
|
| 39 |
-
cd
|
| 40 |
|
| 41 |
# Step 3: Install the necessary dependencies.
|
| 42 |
npm i
|
|
@@ -45,38 +39,6 @@ npm i
|
|
| 45 |
npm run dev
|
| 46 |
```
|
| 47 |
|
| 48 |
-
**Edit a file directly in GitHub**
|
| 49 |
-
|
| 50 |
-
- Navigate to the desired file(s).
|
| 51 |
-
- Click the "Edit" button (pencil icon) at the top right of the file view.
|
| 52 |
-
- Make your changes and commit the changes.
|
| 53 |
-
|
| 54 |
-
**Use GitHub Codespaces**
|
| 55 |
-
|
| 56 |
-
- Navigate to the main page of your repository.
|
| 57 |
-
- Click on the "Code" button (green button) near the top right.
|
| 58 |
-
- Select the "Codespaces" tab.
|
| 59 |
-
- Click on "New codespace" to launch a new Codespace environment.
|
| 60 |
-
- Edit files directly within the Codespace and commit and push your changes once you're done.
|
| 61 |
-
|
| 62 |
-
## What technologies are used for this project?
|
| 63 |
-
|
| 64 |
-
This project is built with .
|
| 65 |
-
|
| 66 |
-
- Vite
|
| 67 |
-
- TypeScript
|
| 68 |
-
- React
|
| 69 |
-
- shadcn-ui
|
| 70 |
-
- Tailwind CSS
|
| 71 |
-
|
| 72 |
-
## How can I deploy this project?
|
| 73 |
-
|
| 74 |
-
Simply open [Lovable](https://lovable.dev/projects/5c0b5f16-c917-4e43-9d0c-03c32081e407) and click on Share -> Publish.
|
| 75 |
-
|
| 76 |
-
## I want to use a custom domain - is that possible?
|
| 77 |
-
|
| 78 |
-
We don't support custom domains (yet). If you want to deploy your project under your own domain then we recommend using Netlify. Visit our docs for more details: [Custom domains](https://docs.lovable.dev/tips-tricks/custom-domain/)
|
| 79 |
-
|
| 80 |
## Deploy with Docker
|
| 81 |
|
| 82 |
First build the Docker image as follows:
|
|
@@ -90,3 +52,13 @@ Next it can be run as follows:
|
|
| 90 |
```bash
|
| 91 |
docker run -it -p 7860:7860 ai-deadlines
|
| 92 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
|
| 10 |
+
# AI Conference Deadlines
|
| 11 |
|
| 12 |
## Project info
|
| 13 |
|
| 14 |
+
This project is entirely based on the awesome http://aideadlines.org/. It's an up-to-date version along with a new UI.
|
| 15 |
|
| 16 |
+
It was bootstrapped using [Lovable](https://lovable.dev/) and [Cursor](https://www.cursor.com/).
|
| 17 |
|
| 18 |
+
**URL**: https://huggingface.co/spaces/huggingface/ai-deadlines
|
| 19 |
|
| 20 |
+
## How to run locally
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
If you want to work locally using your own IDE, you can clone this repo and push changes. Pushed changes will also be reflected in Lovable.
|
| 23 |
|
|
|
|
| 27 |
|
| 28 |
```sh
|
| 29 |
# Step 1: Clone the repository using the project's Git URL.
|
| 30 |
+
git clone https://github.com/NielsRogge/ai-deadlines-hub
|
| 31 |
|
| 32 |
# Step 2: Navigate to the project directory.
|
| 33 |
+
cd ai-deadlines-hub
|
| 34 |
|
| 35 |
# Step 3: Install the necessary dependencies.
|
| 36 |
npm i
|
|
|
|
| 39 |
npm run dev
|
| 40 |
```
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
## Deploy with Docker
|
| 43 |
|
| 44 |
First build the Docker image as follows:
|
|
|
|
| 52 |
```bash
|
| 53 |
docker run -it -p 7860:7860 ai-deadlines
|
| 54 |
```
|
| 55 |
+
|
| 56 |
+
## Technologies used
|
| 57 |
+
|
| 58 |
+
This project is built with:
|
| 59 |
+
|
| 60 |
+
- Vite
|
| 61 |
+
- TypeScript
|
| 62 |
+
- React
|
| 63 |
+
- shadcn-ui
|
| 64 |
+
- Tailwind CSS
|
src/components/ConferenceDialog.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
| 3 |
DialogContent,
|
| 4 |
DialogHeader,
|
| 5 |
DialogTitle,
|
|
|
|
| 6 |
} from "@/components/ui/dialog";
|
| 7 |
import { CalendarDays, Globe, Tag, Clock, AlarmClock, CalendarPlus } from "lucide-react";
|
| 8 |
import { Conference } from "@/types/conference";
|
|
@@ -170,56 +171,65 @@ END:VCALENDAR`;
|
|
| 170 |
|
| 171 |
return (
|
| 172 |
<Dialog open={open} onOpenChange={onOpenChange}>
|
| 173 |
-
<DialogContent className="
|
| 174 |
<DialogHeader>
|
| 175 |
-
<DialogTitle
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
<p className="text-sm text-neutral-600">{conference.full_name}</p>
|
| 180 |
-
)}
|
| 181 |
</DialogHeader>
|
| 182 |
-
|
| 183 |
-
<div className="space-y-4
|
| 184 |
-
<div className="flex
|
| 185 |
-
<
|
| 186 |
-
|
| 187 |
-
<
|
| 188 |
-
|
| 189 |
-
<div className="flex items-center text-neutral">
|
| 190 |
-
<Globe className="h-5 w-5 mr-3 flex-shrink-0" />
|
| 191 |
-
<a
|
| 192 |
-
href={generateGoogleMapsUrl(conference.venue, conference.place)}
|
| 193 |
-
target="_blank"
|
| 194 |
-
rel="noopener noreferrer"
|
| 195 |
-
className="hover:text-primary hover:underline"
|
| 196 |
-
onClick={(e) => e.stopPropagation()}
|
| 197 |
-
>
|
| 198 |
-
{conference.place}
|
| 199 |
-
</a>
|
| 200 |
</div>
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 207 |
)}
|
| 208 |
</div>
|
| 209 |
</div>
|
| 210 |
-
<div className="flex items-center">
|
| 211 |
-
<AlarmClock className={`h-5 w-5 mr-3 flex-shrink-0 ${getCountdownColor()}`} />
|
| 212 |
-
<span className={`font-medium ${getCountdownColor()}`}>
|
| 213 |
-
{daysLeft}
|
| 214 |
-
</span>
|
| 215 |
-
</div>
|
| 216 |
</div>
|
| 217 |
|
| 218 |
-
|
| 219 |
-
<
|
| 220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
</div>
|
| 222 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 223 |
|
| 224 |
{Array.isArray(conference.tags) && conference.tags.length > 0 && (
|
| 225 |
<div className="flex flex-wrap gap-2">
|
|
@@ -259,7 +269,11 @@ END:VCALENDAR`;
|
|
| 259 |
|
| 260 |
<DropdownMenu>
|
| 261 |
<DropdownMenuTrigger asChild>
|
| 262 |
-
<Button
|
|
|
|
|
|
|
|
|
|
|
|
|
| 263 |
<CalendarPlus className="h-4 w-4 mr-2" />
|
| 264 |
Add to Calendar
|
| 265 |
</Button>
|
|
|
|
| 3 |
DialogContent,
|
| 4 |
DialogHeader,
|
| 5 |
DialogTitle,
|
| 6 |
+
DialogDescription,
|
| 7 |
} from "@/components/ui/dialog";
|
| 8 |
import { CalendarDays, Globe, Tag, Clock, AlarmClock, CalendarPlus } from "lucide-react";
|
| 9 |
import { Conference } from "@/types/conference";
|
|
|
|
| 171 |
|
| 172 |
return (
|
| 173 |
<Dialog open={open} onOpenChange={onOpenChange}>
|
| 174 |
+
<DialogContent className="max-w-2xl">
|
| 175 |
<DialogHeader>
|
| 176 |
+
<DialogTitle>{conference.title} {conference.year}</DialogTitle>
|
| 177 |
+
<DialogDescription>
|
| 178 |
+
{conference.full_name}
|
| 179 |
+
</DialogDescription>
|
|
|
|
|
|
|
| 180 |
</DialogHeader>
|
| 181 |
+
|
| 182 |
+
<div className="space-y-4">
|
| 183 |
+
<div className="flex items-start gap-2">
|
| 184 |
+
<CalendarDays className="h-5 w-5 mt-0.5 text-gray-500" />
|
| 185 |
+
<div>
|
| 186 |
+
<p className="font-medium">Conference Dates</p>
|
| 187 |
+
<p className="text-sm text-gray-500">{conference.date}</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
</div>
|
| 189 |
+
</div>
|
| 190 |
+
|
| 191 |
+
<div className="flex items-start gap-2">
|
| 192 |
+
<Clock className="h-5 w-5 mt-0.5 text-gray-500" />
|
| 193 |
+
<div className="space-y-2">
|
| 194 |
+
<p className="font-medium">Important Deadlines</p>
|
| 195 |
+
<div className="text-sm text-gray-500 space-y-1">
|
| 196 |
+
{conference.abstract_deadline && (
|
| 197 |
+
<p>Abstract: {conference.abstract_deadline}</p>
|
| 198 |
+
)}
|
| 199 |
+
<p>Submission: {conference.deadline}</p>
|
| 200 |
+
{conference.commitment_deadline && (
|
| 201 |
+
<p>Commitment: {conference.commitment_deadline}</p>
|
| 202 |
+
)}
|
| 203 |
+
{conference.review_release_date && (
|
| 204 |
+
<p>Reviews Released: {conference.review_release_date}</p>
|
| 205 |
+
)}
|
| 206 |
+
{(conference.rebuttal_period_start || conference.rebuttal_period_end) && (
|
| 207 |
+
<p>Rebuttal Period: {conference.rebuttal_period_start} - {conference.rebuttal_period_end}</p>
|
| 208 |
+
)}
|
| 209 |
+
{conference.final_decision_date && (
|
| 210 |
+
<p>Final Decision: {conference.final_decision_date}</p>
|
| 211 |
)}
|
| 212 |
</div>
|
| 213 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
</div>
|
| 215 |
|
| 216 |
+
<div className="flex items-start gap-2">
|
| 217 |
+
<Globe className="h-5 w-5 mt-0.5 text-gray-500" />
|
| 218 |
+
<div>
|
| 219 |
+
<p className="font-medium">Location</p>
|
| 220 |
+
<p className="text-sm text-gray-500">{conference.place}</p>
|
| 221 |
+
{conference.venue && (
|
| 222 |
+
<p className="text-sm text-gray-500">{conference.venue}</p>
|
| 223 |
+
)}
|
| 224 |
</div>
|
| 225 |
+
</div>
|
| 226 |
+
|
| 227 |
+
<div className="flex items-center">
|
| 228 |
+
<AlarmClock className={`h-5 w-5 mr-3 flex-shrink-0 ${getCountdownColor()}`} />
|
| 229 |
+
<span className={`font-medium ${getCountdownColor()}`}>
|
| 230 |
+
{daysLeft}
|
| 231 |
+
</span>
|
| 232 |
+
</div>
|
| 233 |
|
| 234 |
{Array.isArray(conference.tags) && conference.tags.length > 0 && (
|
| 235 |
<div className="flex flex-wrap gap-2">
|
|
|
|
| 269 |
|
| 270 |
<DropdownMenu>
|
| 271 |
<DropdownMenuTrigger asChild>
|
| 272 |
+
<Button
|
| 273 |
+
variant="ghost"
|
| 274 |
+
size="sm"
|
| 275 |
+
className="text-sm focus-visible:ring-0 focus:outline-none"
|
| 276 |
+
>
|
| 277 |
<CalendarPlus className="h-4 w-4 mr-2" />
|
| 278 |
Add to Calendar
|
| 279 |
</Button>
|
src/data/conferences.yml
CHANGED
|
@@ -313,6 +313,8 @@
|
|
| 313 |
tags:
|
| 314 |
- machine-learning
|
| 315 |
abstract_deadline: '2025-01-23 23:59:59'
|
|
|
|
|
|
|
| 316 |
|
| 317 |
- title: IJCNN
|
| 318 |
year: 2025
|
|
@@ -363,8 +365,12 @@
|
|
| 363 |
timezone: UTC-12
|
| 364 |
place: Vienna, Austria
|
| 365 |
date: July 27 - August 1, 2025
|
|
|
|
|
|
|
| 366 |
tags:
|
| 367 |
- natural-language-processing
|
|
|
|
|
|
|
| 368 |
|
| 369 |
- title: IROS
|
| 370 |
year: 2025
|
|
@@ -528,4 +534,16 @@
|
|
| 528 |
start: 2025-08-10
|
| 529 |
end: 2025-08-14
|
| 530 |
tags:
|
| 531 |
-
- computer-graphics
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 313 |
tags:
|
| 314 |
- machine-learning
|
| 315 |
abstract_deadline: '2025-01-23 23:59:59'
|
| 316 |
+
submission_deadline: '2025-01-31 03:59:59'
|
| 317 |
+
timezone_submission: PST
|
| 318 |
|
| 319 |
- title: IJCNN
|
| 320 |
year: 2025
|
|
|
|
| 365 |
timezone: UTC-12
|
| 366 |
place: Vienna, Austria
|
| 367 |
date: July 27 - August 1, 2025
|
| 368 |
+
start: 2025-07-27
|
| 369 |
+
end: 2025-08-01
|
| 370 |
tags:
|
| 371 |
- natural-language-processing
|
| 372 |
+
commitment_deadline: '2025-04-10 23:59:59'
|
| 373 |
+
note: 'ARR commitment deadline on April 10th, 2025. More info <a href="https://2025.aclweb.org/">here</a>.'
|
| 374 |
|
| 375 |
- title: IROS
|
| 376 |
year: 2025
|
|
|
|
| 534 |
start: 2025-08-10
|
| 535 |
end: 2025-08-14
|
| 536 |
tags:
|
| 537 |
+
- computer-graphics
|
| 538 |
+
|
| 539 |
+
- title: KDD
|
| 540 |
+
year: 2025
|
| 541 |
+
id: kdd25
|
| 542 |
+
full_name: ACM SIGKDD Conference on Knowledge Discovery and Data Mining
|
| 543 |
+
deadline: '2025-02-10 23:59:59'
|
| 544 |
+
abstract_deadline: '2025-02-03 23:59:59'
|
| 545 |
+
timezone: AoE
|
| 546 |
+
tags:
|
| 547 |
+
- data-mining
|
| 548 |
+
- machine-learning
|
| 549 |
+
note: 'Abstract deadline on February 3rd, 2025. Paper submission deadline February 10th, 2025 AoE.'
|
src/types/conference.ts
CHANGED
|
@@ -14,4 +14,11 @@ export interface Conference {
|
|
| 14 |
abstract_deadline?: string;
|
| 15 |
note?: string;
|
| 16 |
hindex?: number;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
}
|
|
|
|
| 14 |
abstract_deadline?: string;
|
| 15 |
note?: string;
|
| 16 |
hindex?: number;
|
| 17 |
+
commitment_deadline?: string;
|
| 18 |
+
submission_deadline?: string;
|
| 19 |
+
timezone_submission?: string;
|
| 20 |
+
rebuttal_period_start?: string;
|
| 21 |
+
rebuttal_period_end?: string;
|
| 22 |
+
review_release_date?: string;
|
| 23 |
+
final_decision_date?: string;
|
| 24 |
}
|