TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Plan NTU timetables, compare indexes, check exams, and use free tools like the FGO optimiser and CGPA planner. Share and export your schedule.
ProductivityTypeScript · AstroGitHub @Dallas-NgOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
NTU timetable planner and module browser. Browse modules, compare indexes and plan clash-free timetables.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Quick links
Timetable planning
.ics with a preview, or save a screenshotModules and exams
Campus map
Tools (run in your browser; transcripts are not uploaded)
For developers and AI assistants
llms.txt for AI crawlersGuides and community
Astro and React, TypeScript, Tailwind CSS with shadcn/ui, and Zustand. Course data is scraped from NTU portals by a Python pipeline and served from static JSON plus Cloudflare D1. The site runs on Cloudflare Workers.
See docs/architecture.md for how the pieces fit together.
You need Node.js 22+ and pnpm.
git clone https://github.com/Dallas-Ng/ntu-mods.git
cd ntu-mods
pnpm install
pnpm db:seed-local # seeds the local database; takes about a minute
pnpm dev
Open http://localhost:4321. Re-run pnpm db:seed-local whenever src/data/api changes.
Useful commands:
| Command | What it does |
|---|---|
pnpm dev | Start the dev server |
pnpm lint | ESLint, astro check, and tsc |
pnpm test | Unit tests (Vitest) |
pnpm test:e2e | End-to-end tests (Playwright) |
pnpm build | Production build |
| Path | Contents | Docs |
|---|---|---|
src/ | Pages, components, hooks, and server helpers | src/README.md |
scraper/ | Python scrapers that produce the course data | scraper/README.md |
db/ | D1 schema and database tooling | db/README.md |
content/articles/ | Markdown articles | |
docs/ | Architecture, deployment, and maintenance guides | docs/ |
Contributions of every size are welcome, whether that is a typo fix, a bug report, or a new feature. You do not need to be an NTU student to help.
Ways to help
content/articles/How to contribute
feat/my-feature.pnpm lint and pnpm test.Setup steps and the full checklist are in CONTRIBUTING.md. Report security issues privately, see SECURITY.md. Participation is governed by the Code of Conduct. If you get stuck, open an issue or ask in your pull request; questions are welcome.
Maintainers: see docs/maintenance.md for the per-semester checklist and docs/deployment.md for releases.
NTUMods is free and maintained by one person. If it saved you time, you can buy me a coffee or sponsor on GitHub.
Released under the MIT License.