orarend.com is a simple website for displaying school timetables (Hungarian: órarend). It was made as a fun project to share and view timetables with friends.
- Display weekly school timetable from a JSON file
- Support for multiple people’s schedules
- Color-coded courses by status (mandatory / optional / completed)
- Highlights upcoming exams automatically
- Minimal and lightweight (just static HTML + JS)
- Frontend: HTML, JavaScript, Tailwind CSS
- Hosting: Cloudflare Workers Static Assets
Each person’s timetable is defined in a .json file.
The site loads the file from the URL:
orarend.com/<display_name>
The Site Owner also can access their timetable just by going to orarend.com.
- This is the name shown in the UI and used in the URL.
- Matching is case-insensitive, using JS
.toLowerCase(). - Example: if
display_name=JohnDoe, the file must be namedjohndoe.json.- Visiting
/JohnDoe→ site fetches/johndoe.jsonand the path remains/JohnDoe. - Visiting
/johndoe→ site still works, but path is corrected to/JohnDoe.
- Visiting
- Object where each key is a short identifier (used in timetable & exams).
- Each course contains:
hu_name: full Hungarian course nameteacher: instructor’s namelocation: classroom / lecture hallstatus: one of:mandatory: must attend, skipping is bad newsoptional: free to skip as much as you wantcompleted: already finished, no longer relevant (cannot have exams)
Note
The status field (mandatory, optional, completed) has nothing to do
with how Neptun classifies a subject ("Kötelező", "Szabadon választható", "Kötelezően választott").
In this project, mandatory only means the teacher actually tracks attendance (e.g. via a catalog).
If attendance is not tracked, the course is considered optional here, regardless of what Neptun says.
- Object with weekdays (
monday,tuesday,wednesday,thursday,friday). - Each is an array of strings in the format:
<course_id>!<start_time>!<end_time> - Example:
web!10:00!11:30
- Array of strings in the format:
<course_id>!<date>!<what> dateisYYYY-MM-DD.<what>is free text (e.g.ZH,Beadandó,Vizsga), but must not contain!.- Note:
completedcourses cannot have exams.
| Status | Color | Description |
|---|---|---|
| Mandatory course | 🔵 Indigo | Must attend / teacher tracks attendance |
| Optional course | 🟢 Green | Can skip freely |
| Completed course | 🟣 Violet | Finished, no further action needed |
| Exam next week | 🟡 Amber | Upcoming exam in the next week |
| Exam this week | 🔴 Crimson | Exam scheduled for this week |