MyPortal

Contributing

How to propose work on MyPortal, and where contributions are most useful.

Issues, discussions, and pull requests are all welcome.

Agree the direction first

Open an issue or a discussion before starting anything non-trivial. MyPortal models a domain with a lot of statutory detail in it, and a change that looks obvious in isolation often has consequences elsewhere in the system. Agreeing an approach first saves rework.

Small fixes — typos, obvious bugs, documentation corrections — don’t need this. Just open a pull request.

Where help is most useful

  • UK education domain modelling. Knowing how attendance codes, SEND provisions, admissions rounds or exam entries actually work in a school is worth more here than general software experience.
  • Backend services. Extending the API and the service layer across modules.
  • Frontend UI and UX. The Angular SPA covers staff, student and parent journeys.
  • Deployment tooling. Making MyPortal straightforward for a school IT team to host, back up, and upgrade.
  • Documentation. Including these pages.

Before opening a pull request

dotnet build MyPortal.sln
dotnet test
npm test --prefix MyPortal.Frontend/myportal-spa

If your change adds SQL, register the new file as an EmbeddedResource in the relevant .csproj — see Architecture.

Licensing

MyPortal is licensed under the GNU Affero General Public License v3.0. Contributions are accepted under the same licence. In practice this means anyone who deploys a modified MyPortal over a network has to make their modifications available too.

Code of conduct

The project follows a code of conduct. It applies to issues, discussions, and pull requests alike.