Metadata-Version: 2.4
Name: prima-principia
Version: 0.1.1
Summary: Prerequisite-aware university course schedule generator. Development in progress.
License: MIT
Project-URL: Homepage, https://github.com/ShadowStrike-CTF/prima-principia
Project-URL: Bug Tracker, https://github.com/ShadowStrike-CTF/prima-principia/issues
Classifier: Development Status :: 1 - Planning
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE-PROPRIETARY
Dynamic: license-file

# Prima Principia

Prerequisite-aware course planner for complex postgraduate programs.

Work out the fastest valid path through your degree — given which units you want, when you
can start, and how many units per trimester you can handle. Prima Principia works backwards
from your target units through the full prerequisite chain and outputs a
trimester-by-trimester schedule.

Built for Australian law students navigating JD, JD+MIP, and combined qualifications.

**Status: pre-alpha — design documentation only.** There is no working implementation in this
repository yet. The published `prima-principia` package on PyPI is a name-reservation stub.

---

## What it will do

- Take your target electives and start trimester as input
- Resolve the full prerequisite chain automatically
- Schedule units trimester-by-trimester, respecting offering constraints (T2-only, T3-only, etc.)
- Flag units offered only in specific years so you don't miss a narrow window
- Warn when prerequisite data is unverified
- Optimise across multiple goals (e.g. patent attorney + trade marks attorney + admission)
- Present the plan as a skill tree: prerequisites as unlock paths, credit points as XP,
  milestones as badges

## Course data

Course and prerequisite data is entered **manually** — via a web form, JSON import, or CSV
import. Automated handbook scraping is not used.

First target: Deakin JD (M729).

## Planned

- Multi-university support (UTS JD, UNSW JD, UNE LLB)
- Semester structure (not just trimesters)
- iOS / Android (React Native + Expo)
- User accounts — track completed units, update schedule live

---

## Install

```
pip install prima-principia
```

> Stub release only. Full implementation coming — star the repo to follow progress.

---

## Licence

Prima Principia is **open core**.

| Component | Licence |
|---|---|
| Core scheduler and planner | MIT — see [LICENSE](LICENSE) |
| Gamification layer (skill tree, XP, badges, quests, build comparison) | Proprietary — see [LICENSE-PROPRIETARY](LICENSE-PROPRIETARY) |
| Strategy engine (CSP optimisation, multi-goal analysis, out-of-the-box strategies) | Proprietary — see [LICENSE-PROPRIETARY](LICENSE-PROPRIETARY) |

---

© 2026 ShadowStrike. All rights reserved.
