Skip to content

yunkhngn/fptu-schedule

Repository files navigation

FPTU Schedule

Chrome extension (Manifest V3) for FPT University students: read exam and class schedules from FAP, view them in the popup, and export .ics calendar files.

Key features

Exam schedule

  • Tabs: Upcoming (Chưa thi) and completed (Đã thi) with counters
  • Countdown: Color hints for today, tomorrow, urgent (≤3 days), future, completed
  • Types: FE, PE, 2NDFE, 2NDPE
  • Filter: Modal with select all / none / apply; preference remembered
  • Time formats: Vietnamese (10h00), colon, dot, hour-only, mixed
  • Export: Upcoming exams with a confirmed room (skips TBA / no room); reminders 1 day and 1 hour before
  • Works offline popup data: After sync, export can work without staying on FAP (uses stored timetable JSON)

Class schedule (Lịch học)

  • Weekly view from FAP schedule pages (https://fap.fpt.edu.vn/Schedule/*)
  • Tải lịch / export class timetable to .ics
  • Multi-week sync: Background merge across a range of weeks (service worker + chrome.storage.local for progress and merged data)

Study suggestions (exam cards)

  • Ôn tập strip under each exam card: links by course code (from study-sources.json)
  • Fallback links: Quizlet search and Google search (HTTPS only; opens when you click)

Design

  • Clean popup UI, system light/dark aware
  • Tab navigation: exams + Lịch học

Installation

Chrome Web Store (recommended)

FPTU Schedule on Chrome Web Store — listing title may still show an older name until the next store update.

Manual (developer mode)

git clone https://github.com/yunkhngn/fptu-schedule.git
cd fptu-schedule
  1. Open chrome://extensions/
  2. Enable Developer mode
  3. Load unpacked → select the repo folder

Pack zip for upload

./zip-extension.sh

Produces fptu-schedule.zip (see manifest.json for current version).

Usage

Exams

  1. Open https://fap.fpt.edu.vn/Exam/ScheduleExams.aspx and sign in
  2. Open the extension popup → data syncs on the exam page (or use Đồng bộ)
  3. Use Chưa thi / Đã thi, Lọc, and Tải xuống lịch .ics (or equivalent) as needed

Class schedule

  1. Open a FAP Schedule week page (under https://fap.fpt.edu.vn/Schedule/)
  2. In the popup, open the Lịch học tab → Tải lịch / export as shown

Custom study links

Edit study-sources.json (keys = course codes like PRJ301). Only https: URLs are accepted for suggestions.

Tech stack

  • UI: HTML, CSS, vanilla JavaScript
  • Chrome: tabs, scripting, storage (chrome.storage.local for cached schedule JSON and sync flags — not website localStorage)
  • Background: Service worker (background.js)
  • Calendar: iCalendar (RFC 5545)

Project structure

fptu-schedule/
├── manifest.json
├── background.js
├── popup.html
├── popup.css
├── popup.js
├── content.js
├── sanitize-utils.js
├── study-sources.json          # Optional per-course study links
├── study-suggestions.js          # Resolve suggestions + fallbacks
├── icon-16.png / icon-48.png / icon-128.png
├── icon.png                    # Source asset (see scripts/build-icons.py)
├── zip-extension.sh
├── docs/                       # GitHub Pages site
├── scripts/build-icons.py
└── README.md

Contributing

  1. Fork the repo
  2. Branch → commit → push
  3. Open a Pull Request

Changelog

v3.2.0 (current)

  • Exam study splash: white CTA buttons on cards; primary actions use blue accent
  • Manifest 3.2.0; release zip fptu-schedule.zip

v3.x (high level)

  • Lịch học tab, class timetable extraction and .ics export
  • Multi-week background sync and merge
  • Study suggestions module + study-sources.json
  • MV3 service worker, narrowed permissions and safer study URLs (HTTPS-only)

v2.1.0

  • Richer time formats and exam typing
  • Tabs with counters, countdown styling, filter modal
  • Export rules for rooms / upcoming only

v2.0.0

  • Upcoming / completed tabs, countdown, filters, Material-style UI

v1.0.0

  • Initial exam export and type detection

Browser support

  • Chrome / Edge and other Chromium browsers with Manifest V3 support (roughly v88+)

Privacy

  • Timetable data is processed and cached locally in the browser (chrome.storage.local / popup flow).
  • Study links open only on click; suggested URLs are restricted to https.
  • No separate analytics server from this repo; FAP remains the source of truth for auth and pages.

Troubleshooting

Issue What to try
No exam data Open the official exam schedule FAP URL while logged in, then sync
Empty export Upcoming export skips exams without a room; check filters
Class schedule Use a Schedule week URL under fap.fpt.edu.vn/Schedule/
Multi-week sync stuck Log in again on FAP; reopen popup

Support: Issues · Docs site: yunkhngn.github.io/fptu-schedule

Author

I 💛 FPTU

License

MIT — see LICENSE.


If this helps your semester planning, a ⭐ on the repo is appreciated.

About

A modern Chrome extension that helps FPT University students easily extract and manage their exam schedules from the FAP system.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors