Passwords and sessions
Passwords are stored using one-way password hashing. Session identifiers are regenerated around sensitive authentication changes, with Secure, HttpOnly and SameSite cookie controls in production.
Independent software project · university study platform
A subject-aware study workspace built around how a degree actually accumulates: modules, reading, concepts, research papers, statistics, assignments, revision and dissertation work, all kept in one connected notebook.
The platform began with psychology, then developed into a common application that can support different UK degree subjects without cloning the system for each discipline.
Start with the research question, identify the variables, then check what the design actually permits.
Within-subject? Repeated observations change the model.
Link the method page to the lecture, paper, dataset and assessment it belongs to.
Degree Margins is designed as an academic working environment rather than a library of generic course notes. The organising idea is that the pieces of university work should remain connected to one another instead of being spread across unrelated folders, browser tabs and apps.
Modules, weeks, lectures, assessments, tasks, marks and deadlines provide the structure around day-to-day study.
Concepts, studies, researchers, papers, glossary terms and notes can be linked rather than stored as isolated fragments.
Reading, revision, statistics, methods, assignment planning and dissertation tools turn stored information into an active workspace.
The application deliberately uses a comparatively small production stack. Public pages are server-rendered, the study workspace runs as a browser application, PHP owns the application boundary, and relational data lives in MariaDB/MySQL.
The account represents the person; the workspace represents that person's notebook for a particular subject. Study records carry the workspace identifier so modules, notes, readings, revision material, assignments, books and dissertation records stay within that subject context.
A single account can move between the platform's controlled subject areas without creating separate credentials for each notebook.
Data helpers attach the active workspace to new study records and constrain reads, updates and deletions to that workspace.
Workspace data can be exported and backed up independently rather than being conceptually locked to one screen or tool.
Security is layered rather than delegated to a single control. The hosting perimeter provides HTTPS/TLS and server-level protections; the application adds its own authentication, request, storage and tenancy controls.
Passwords are stored using one-way password hashing. Session identifiers are regenerated around sensitive authentication changes, with Secure, HttpOnly and SameSite cookie controls in production.
State-changing browser requests use per-session CSRF protection, and host-aware routing prevents one controlled subject context from silently writing into another.
PDO prepared statements and bound parameters are used for values. Dynamic identifiers are separately validated instead of accepting arbitrary user-supplied SQL fragments.
Study data is explicitly workspace-scoped. Data-layer helpers constrain updates and deletes so one workspace cannot operate on another workspace's records.
Environment configuration, logs, backups, SQL data and other private directories are kept outside normal public routes and blocked from direct HTTP access.
Authentication attempts are throttled and recorded, reducing the usefulness of rapid repeated login attempts.
Payment-card information is handled by Stripe. Subscription events arrive through a dedicated webhook and are verified using the webhook signing secret.
The application assumes HTTPS-only production delivery, managed DNS and certificate handling, restricted server administration and provider-level infrastructure controls around the PHP and database environment.
Current project
Psychology is the most mature subject implementation, while the same architecture is being extended across additional degree subjects. The platform itself lives separately from this portfolio site.
Open degreemargins.com ↗