nielsr HF staff commited on
Commit
000c282
·
1 Parent(s): 29c2130

Update README

Browse files
README.md CHANGED
@@ -7,23 +7,17 @@ sdk: docker
7
  pinned: false
8
  ---
9
 
10
- # Welcome to your Lovable project
11
 
12
  ## Project info
13
 
14
- **URL**: https://lovable.dev/projects/5c0b5f16-c917-4e43-9d0c-03c32081e407
15
 
16
- ## How can I edit this code?
17
 
18
- There are several ways of editing your application.
19
 
20
- **Use Lovable**
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 <YOUR_GIT_URL>
37
 
38
  # Step 2: Navigate to the project directory.
39
- cd <YOUR_PROJECT_NAME>
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="dialog-content max-w-md">
174
  <DialogHeader>
175
- <DialogTitle className="text-xl font-bold">
176
- {conference.title}
177
- </DialogTitle>
178
- {conference.full_name && (
179
- <p className="text-sm text-neutral-600">{conference.full_name}</p>
180
- )}
181
  </DialogHeader>
182
-
183
- <div className="space-y-4 py-4">
184
- <div className="flex flex-col gap-3">
185
- <div className="flex items-center text-neutral">
186
- <CalendarDays className="h-5 w-5 mr-3 flex-shrink-0" />
187
- <span>{conference.date}</span>
188
- </div>
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
- <div className="flex items-center text-neutral">
202
- <Clock className="h-5 w-5 mr-3 flex-shrink-0" />
203
- <div className="flex flex-col">
204
- <span>Deadline: {conference.deadline === 'TBD' ? 'TBD' : conference.deadline}</span>
205
- {conference.timezone && (
206
- <span className="text-sm text-neutral-500">Timezone: {conference.timezone}</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- {conference.abstract_deadline && (
219
- <div className="text-sm text-neutral-600">
220
- Abstract Deadline: {conference.abstract_deadline}
 
 
 
 
 
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 variant="ghost" size="sm" className="text-sm">
 
 
 
 
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
  }