NU Map home

NU Map Privacy Policy

Last updated: August 9, 2026

NU Map (numap.app) is an unofficial, open-source degree planner for Northeastern University. It is built around a simple principle: your plan lives in your browser, not on our servers.

The planner itself

The optional Claude AI integration

Status, August 2026: this is still in development. Setup instructions are not currently shown in NU Map's settings, so if you are using NU Map today you do not have this — nothing in this section applies to you, and nothing leaves your browser. It is written out in full because the terms below bind us for the test connections made while it was being built, and for whenever setup is offered again.

Read the full terms

NU Map can optionally connect to Claude (Anthropic's AI assistant) so it can help you plan. This is off by default and only activates after you explicitly approve the connection inside NU Map — either by entering a pairing code, or by approving the request that appears when you connect from Claude. If you never link Claude, nothing in this section applies to you and no connection to our server is ever made.

Course ratings you contribute

Status, August 2026: this is still being built. Nothing is sent anywhere today — if you enter hours or a difficulty now, it stays in your browser like a grade does. It is written out in full because these terms bind us for whenever sharing is switched on, and because you should be able to read them before deciding, not after.

Read the full terms

NU Map can ask what a course actually cost you — roughly how many hours a week it took, and how hard it felt — so that the next student can see it before they register. This is the only part of NU Map where something you write is pooled with other people's answers rather than sent somewhere you chose. It is off until you turn it on, you are asked once before anything is ever sent, and you can stop at any time in settings.

Every claim above is a property of code you can read: the rules live in src/core/courseRatings.js and src/core/ratingStore.js, and they are enforced by tests that deliberately try to break them.

Course translation

NU Map's interface is translated into eight languages, and those translations ship with the app — using them sends nothing anywhere. Course titles and descriptions come from Northeastern's catalog in English only, so translating those requires a translation service. When course translation is on, NU Map first tries your browser's built-in translator, which runs on your device. If your browser has none, the title and description of the course you are viewing are sent to an external translation service (Google Translate, or MyMemory where Google is unavailable). Only that public catalog text is sent — never your plan, your grades, or anything you have entered. Results are cached in your browser so each course is translated at most once. You can turn course translation off in settings, which stops all such requests.

Whether the app started

Status, August 2026: switched off. Nothing is sent until a receiving server exists and is configured into a build; today no NU Map build has one, so this describes what will happen when it is switched on, not what happens now.

Read the full terms

NU Map has no accounts and no analytics, which means that when it breaks for everybody, nobody finds out. That is not hypothetical: on 20 August 2026 a bug made the app fail to start for every visitor, every automated test passed, every page still answered normally, and it was noticed only because somebody happened to open it. As more people rely on NU Map, "we find out by accident" stops being good enough.

So NU Map may send one tiny message per page load saying whether it managed to start. It is not analytics and it cannot be turned into analytics: it carries no identifier of any kind — no account, no session, no cookie, no random id — so two of these messages cannot be recognised as coming from the same browser, or the same person, by us or by anyone reading the logs. We deliberately give up being able to count how many people use NU Map in exchange for that.

A message carries six things and nothing else:

There is no plan, no course, no grade, no program, no page address, no language, no screen size, no location and no clock reading from your device.

At NU Map's current size every page load sends one of these. As more people use it that will change to a sample — a fraction of loads chosen at random — because the server that receives them has a daily limit. Either way it makes no difference to what a message contains or to whether it can be traced to you: it cannot, because there is nothing in it to trace.

Like the course-ratings rules, every claim here is a property of code you can read — src/core/healthBeacon.js — and is enforced by tests that deliberately try to smuggle a plan, a file path, an email address and a session id through it (test/contract/health-beacon-privacy.test.js).

What we don't do

Retention

Plan data in your browser stays until you clear it. On the connector server, your plan snapshot is retained only while your Claude link exists and is deleted when you disconnect. Server logs are Cloudflare's standard operational logs.

Open source

All of the above is verifiable: NU Map and its connector server are open source at github.com/nayugu/nu-map.

Contact

Questions or requests: open an issue at github.com/nayugu/nu-map/issues or use the feedback link in the app.

← Back to NU Map