Skip to content

szsolt0/orarend.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

orarend.com

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.

🚀 Features

  • 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)

🛠️ Tech Stack

📖 JSON Specification

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.

🔑 Rules

display_name

  • 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 named johndoe.json.
    • Visiting /JohnDoe → site fetches /johndoe.json and the path remains /JohnDoe.
    • Visiting /johndoe → site still works, but path is corrected to /JohnDoe.

courses

  • Object where each key is a short identifier (used in timetable & exams).
  • Each course contains:
    • hu_name: full Hungarian course name
    • teacher: instructor’s name
    • location: classroom / lecture hall
    • status: one of:
      • mandatory: must attend, skipping is bad news
      • optional: free to skip as much as you want
      • completed: 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.

timetable

  • 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

exams

  • Array of strings in the format:
    <course_id>!<date>!<what>
    
  • date is YYYY-MM-DD.
  • <what> is free text (e.g. ZH, Beadandó, Vizsga), but must not contain !.
  • Note: completed courses cannot have exams.

🎨 Display Rules

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