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.