An interactive map of courses, prerequisites, study programs and grades for all of Tel Aviv University.
- Prerequisite graph. Courses are grouped by study year. Edges show required courses, alternatives ("one of") and co-requisites. Click a course to highlight its whole prerequisite chain and the courses it unlocks.
- Study programs. Choose a degree, then pick any first- or second-degree program in the official catalog, from every faculty, including joint programs, each research or coursework track and programs closed to new students. Its courses are laid out by year and semester, straight from the official catalog (ידיעון): credit requirements, official notes and rules for each part, the degree's credit quota, and links to the catalog and regulations. Click a year or semester band to see its rules.
- Grades. Each course card shows the average final grade (מועד קובע) over the years for which TAU Factor has grades, with the distribution and a per-semester breakdown.
- My degree. Pick a faculty and a program (and the catalog year you started in) to get your degree as a checklist, organized like the official catalog: years, their required and elective parts, and each part's courses.
- Mark courses as passed (a whole mandatory semester at once), add your grade, or plan a course for a semester. Requirements without a course list, such as "שאר רוח", take credits entered by hand.
- Progress is shown for the whole degree, each year and each part, in credit points (a course listed in several parts counts toward one), with your credit-weighted average.
- Each course shows what it still needs; the semesters view lays out your plan term by term (spread over extra years if you need them) and warns about missing prerequisites, unplanned co-requisites and courses not offered that semester. Planned courses count as done for later semesters.
- AND/OR prerequisite logic is taken into account. Prerequisites from other faculties can be marked as passed in the course card. Everything is saved in the browser.
- Map. The same program, or any academic unit's courses, as a prerequisite graph; passed and planned courses are marked on it. A program's map shows its required courses, plus electives on demand. Arrow keys move between courses.
- Details. Each course card lists lecturers, exam type, credit hours and the semesters it's offered, with links to the syllabus and to the official prerequisites page.
- Search by name or course number, forgiving of spelling (תוכנית/תכנית), word order, abbreviations (מדמ"ח, חדו"א), English names, typos and a keyboard left on the wrong language; shareable links (
#course=03661102), dark mode and a mobile layout.
scripts/update_data.py builds the data for the whole university using only the Python standard library. It draws on two sources:
- Arazim Project dumps: semester schedules and prerequisites, the all-time course index, study plans (for programs the catalog has no structure for, and credit points for courses outside the catalog programs) and TAU Factor grade distributions (format).
- TAU program catalog: program structure, credit requirements, official notes and course credit points. The data comes from the GraphQL API behind the catalog pages.
The output is split so the site loads only what it shows: data/index.json (every course's name, unit, prerequisites, semesters, credits and average grade, and the list of programs), data/courses/{unit}.json (lecturers, exams, grade distributions and syllabus links, by the course number's first four digits) and data/programs/{id}.json (one program each).
python3 scripts/update_data.py # fetch the latest data and rebuild data/ (about 20 minutes)
python3 -m http.server # then open http://localhost:8000A GitHub Actions workflow refreshes the data every week and deploys the site to GitHub Pages. While the catalog is down, the update keeps the published programs; if it fails partway, or many programs would disappear, the update stops and the current data stays.
Grade statistics use each semester's all-groups final-grade distribution, weighted by the number of students; where TAU Factor gives no mean for a semester, it is estimated from the distribution. Non-numeric grades are excluded. Always confirm requirements on the university website.
Progress is always saved in the browser. To also let students sign in with Google and sync their progress across devices, set up a Firebase project. The free tier is enough.
- Create a project at console.firebase.google.com and add a Web app.
- Authentication → Sign-in method: enable Google. Under Settings → Authorized domains, add
tom-bleher.github.io. - Firestore Database: create a database, then deploy the access rules with
npx firebase-tools deploy --only firestore:rules --project <project-id>. - Paste the web app's config object into
assets/firebase-config.js(window.FIREBASE_CONFIG = {...}). The web config is public by design; access is enforced by the rules.
Each user gets one document, users/{uid}, holding only their passed courses, grades, planned courses, credits entered by hand, chosen program, the catalog year they started in and a timestamp. Users can delete it from the account menu. After changing firestore.rules, deploy them again (step 3).
pip install pytest playwright && playwright install chromium-headless-shell
python3 -m pytest testsQuestions and suggestions are welcome as GitHub issues, or contact:
- Tom Bleher: tombleher@tauex.tau.ac.il
- Ilay Wischnevsky Shlush: ilayw1@mail.tau.ac.il
- Avshalom Bar-Nissan: barnissan@mail.tau.ac.il
Course, study-plan and grade data: Arazim Project and TAU Factor.
MIT. See LICENSE.