SchoolersEngineering documentation
How the alumni directory is built, deployed, and changed safely.
How the alumni directory is built, deployed, and changed safely.
Schoolers is an alumni directory and digital yearbook for the School of Mathematical Sciences and Informatics at the University of Khartoum. Alumni find each other by batch year, specialization, and country, and follow announcements from the community.
These pages describe the system as it exists today. They are written for someone who will change the code: what the pieces are, how they fit together, where the rules that protect member data actually live, and what to be careful about.
If you are setting up to work on the project, read Getting started first, then Running it locally.
If you are trying to understand an existing part of the system, the System overview explains the shape of it in one page, and the sections below it go deeper.
If you are about to change anything that touches the database, read Reviewing database changes before you write the migration. That page exists because two separate bugs in this project were caused by not knowing what it says.
Access control in this application is enforced by PostgreSQL, not by the frontend.
Every check you see in a React component, every admin-only tab, every hidden button, is there to make the interface make sense. None of it is a security boundary. The real boundary is a set of row-level security policies defined in SQL, and a request that bypasses the frontend entirely is still subject to them.
This means a change that looks purely visual can still be a security change, and a new query will silently return nothing unless a policy allows it. How access control works covers this properly.