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 |
| Gamification layer (skill tree, XP, badges, quests, build comparison) | Proprietary — see LICENSE-PROPRIETARY |
| Strategy engine (CSP optimisation, multi-goal analysis, out-of-the-box strategies) | Proprietary — see LICENSE-PROPRIETARY |
© 2026 ShadowStrike. All rights reserved.
Release files for prima-principia 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prima_principia-0.1.1.tar.gz | 3.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prima_principia-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.2 kB
Release files / prima_principia-0.1.1.tar.gz
| Download URL | prima_principia-0.1.1.tar.gz |
|---|---|
| Size | 3.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9c4c1a597044925f2c5366f29dc39391000c8811f1563764a91e5f67e49e220
|
|
BLAKE2b-256 checksum How to use checksums |
5f53a08732e8a8b11c3bd51e9a740858aac953ee5b517c5a1ee8b4b3b87379f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / prima_principia-0.1.1-py3-none-any.whl
| Download URL | prima_principia-0.1.1-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08f91ec92848442e567770ce2565629eb0341b689c97a985ea624de2bc533816
|
|
BLAKE2b-256 checksum How to use checksums |
691bab55f29694bcd41a9c375b5b29623972f1d4e892071389349f1adb6c4cb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|