Sadra Institute of Higher Education Sadra University Website
Project Showcase

Sadra University Website

A substantial university web platform built around a custom MVC architecture, PHP 8.x, MySQL 8 and PDO. The project brings together a server-rendered public website, a Persian RTL administration system and a dedicated English CMS, while keeping routing, controllers, models, views, middleware, security, storage and site settings explicit and maintainable.

معرفی پروژه

وب‌سایت دانشگاه صدرا

یک سامانه دانشگاهی گسترده بر پایه معماری MVC اختصاصی، PHP 8.x، MySQL 8 و PDO. این پروژه وب‌سایت عمومی، پنل مدیریت فارسی و راست‌چین، و سیستم مدیریت محتوای مستقل انگلیسی را در کنار یکدیگر قرار می‌دهد؛ در حالی که Routing، Controller، Model، View، Middleware، امنیت، Storage و تنظیمات سایت ساختاری شفاف و قابل نگهداری دارند.

PHP 8.xMySQL 8PDOCustom MVCServer RenderedRTLEnglish CMSResponsive
Multi-Layer Public website · Admin CMS · Content models · Security · Media · Settings وب‌سایت عمومی · پنل مدیریت · مدل‌های محتوا · امنیت · رسانه · تنظیمات
01 · Overview

Not just a website. A real content platform.

The project is structured to support a university as an organization, not merely as a collection of web pages. Public content is presented cleanly to visitors while administrators can maintain the underlying data through reusable, predictable workflows. The core philosophy is simple: keep responsibilities separated, reuse existing infrastructure, and make the codebase understandable enough to evolve safely.

۰۱ · نمای کلی

فقط یک وب‌سایت نیست؛ یک سامانه مدیریت محتوای واقعی است.

این پروژه برای پشتیبانی از یک مجموعه دانشگاهی طراحی شده، نه صرفاً برای نمایش چند صفحه وب. محتوای عمومی برای بازدیدکننده‌ها ارائه می‌شود و مدیران می‌توانند داده‌های زیرساختی را از طریق گردش‌کارهای قابل استفاده مجدد و قابل پیش‌بینی مدیریت کنند. فلسفه اصلی پروژه این است که مسئولیت‌ها از هم جدا بمانند، زیرساخت‌های موجود دوباره استفاده شوند و کد به اندازه‌ای شفاف باشد که توسعه آینده بدون به‌هم‌ریختن سیستم انجام شود.

2Public languages · Persian + Englishزبان عمومی · فارسی + انگلیسی
MVCExplicit custom architectureمعماری MVC اختصاصی و شفاف
PDODatabase access through existing conventionsدسترسی به دیتابیس بر پایه PDO
RTLPersian-first administration interfaceپنل مدیریت فارسی و راست‌چین
02 · Architecture

Clear layers. Fewer surprises.

The project deliberately avoids introducing Laravel or another large framework. Instead, it uses the existing custom MVC stack and extends it with focused controllers, models, views, middleware and utilities. That keeps architectural decisions visible instead of hiding them behind a framework convention.

۰۲ · معماری

لایه‌های شفاف؛ غافلگیری کمتر.

پروژه عمداً به سمت Laravel یا یک فریم‌ورک بزرگ دیگر نرفته است. به‌جای آن، همان ساختار MVC اختصاصی موجود توسعه داده شده و امکانات جدید در قالب Controller، Model، View، Middleware و Utilityهای مشخص اضافه می‌شوند. نتیجه این است که تصمیم‌های معماری قابل مشاهده و قابل کنترل باقی می‌مانند.

Request
   │
   ▼
Router
   │
   ├── Middleware
   │     ├── Authentication
   │     └── Role / Access Control
   │
   ▼
Controller
   │
   ├── validation
   ├── session / flash state
   ├── redirects
   └── view data
   │
   ▼
Model
   │
   └── PDO / MySQL
   │
   ▼
View
   │
   ├── shared layout
   ├── page template
   └── scoped CSS / JS
   │
   ▼
Rendered HTML

Core responsibilities

مسئولیت‌های اصلی

Router Resolves requests and invokes the correct action through the existing route and middleware system. درخواست را به Action صحیح می‌رساند و زنجیره Middlewareهای موجود را حفظ می‌کند.
Controllers Coordinate input, validation, business flow, sessions, redirects and rendering. ورودی، Validation، گردش‌کار، Session، Redirect و Rendering را هماهنگ می‌کنند.
Models Own database operations and keep SQL close to the data domain it represents. عملیات دیتابیس را برعهده دارند و SQL را نزدیک به دامنه داده نگه می‌دارند.
Views Render server-side HTML while shared layouts provide consistent site chrome. HTML را سمت سرور تولید می‌کنند و Layoutهای مشترک Shell یکپارچه سایت را فراهم می‌کنند.
Utilities CSRF, storage, sessions, settings, dates and other cross-cutting behaviors stay reusable. ابزارهایی مانند CSRF، Storage، Session، Settings و تاریخ قابل استفاده مجدد باقی می‌مانند.
03 · Modules

A broad university domain model.

The platform contains multiple content domains that are connected through relationships rather than isolated static pages. This lets the site grow naturally as academic and institutional information becomes richer.

۰۳ · ماژول‌ها

یک مدل دامنه گسترده برای وب‌سایت دانشگاهی.

پلتفرم چندین حوزه محتوایی مرتبط با یکدیگر دارد؛ داده‌ها به‌صورت موجودیت‌های جدا اما مرتبط مدیریت می‌شوند، نه به شکل صفحات استاتیک جداگانه. به این ترتیب هرچه اطلاعات دانشگاه کامل‌تر شود، ساختار سایت نیز می‌تواند به‌صورت طبیعی رشد کند.

01

Homepage

Hero fallback content, quick-access services, announcements, faculties, research centers, people, about content and contact CTA.

محتوای Hero، خدمات دسترسی سریع، اطلاعیه‌ها، دانشکده‌ها، مراکز پژوهشی، افراد، معرفی و CTA تماس.

02

Faculties

Faculty records include names, descriptions, images, dean relationships, contact details, ordering and activation state.

اطلاعات دانشکده شامل نام، توضیحات، تصویر، رابطه با رئیس، اطلاعات تماس، ترتیب و وضعیت فعال بودن است.

03

Academic Programs

Programs connect back to faculties and can store degree, field, description, duration, admission information and curriculum.

رشته‌ها به دانشکده متصل‌اند و مدرک، گرایش، توضیح، مدت تحصیل، اطلاعات پذیرش و برنامه درسی را نگه می‌دارند.

04

Research Centers

Research centers support director relationships, contact information, descriptions, imagery, ordering and visibility.

مراکز پژوهشی دارای رابطه با مدیر، اطلاعات تماس، توضیحات، تصویر، ترتیب و وضعیت نمایش هستند.

05

People

English people records can represent leadership, faculty and institutional personnel with roles, biographies and faculty relationships.

افراد انگلیسی می‌توانند مدیران، اعضای هیئت علمی و کارکنان را با سمت، سوابق، ارتباط دانشکده و اطلاعات تماس نمایش دهند.

06

Announcements

Announcements include status, publication scheduling, priorities, slugs, excerpts, content, imagery and sitemap-ready data.

اطلاعیه‌ها شامل وضعیت، زمان انتشار، اولویت، Slug، خلاصه، محتوا، تصویر و داده‌های مناسب Sitemap هستند.

04 · English CMS

The English website has its own management layer.

English content is not treated as a thin translation layer. It has dedicated models and controllers for faculties, academic programs, people, research centers, announcements, homepage services and homepage slides, plus reusable static-page editing.

۰۴ · CMS انگلیسی

وب‌سایت انگلیسی لایه مدیریت مستقل خودش را دارد.

محتوای انگلیسی صرفاً یک لایه ترجمه نیست. برای دانشکده‌ها، رشته‌ها، افراد، مراکز پژوهشی، اطلاعیه‌ها، خدمات و اسلایدهای صفحه اصلی، Model و Controllerهای مستقل وجود دارد و برای صفحات ثابت نیز ویرایشگر قابل استفاده مجدد در نظر گرفته شده است.

English Admin

One control center, many content domains.

یک مرکز مدیریت برای چندین حوزه محتوایی.

The English admin area provides a dedicated dashboard, homepage editor, slider settings, static-page editor and CRUD screens for the academic content model.

پنل انگلیسی شامل Dashboard اختصاصی، ویرایش صفحه اصلی، تنظیمات Slider، ویرایشگر صفحات ثابت و صفحات CRUD برای مدل آکادمیک است.

Contact Page

Contact details are stored as settings.

اطلاعات تماس به‌صورت Setting ذخیره می‌شود.

Email, phone, fax, address and a Google Maps embed URL can be managed from the English Contact page instead of being hard-coded into the public template.

ایمیل، تلفن، فکس، آدرس و URL مربوط به Google Maps از طریق پنل مدیریت قابل تغییر هستند و دیگر لازم نیست داخل Template عمومی Hard-code شوند.

Slider settings

Autoplay, interval, arrows, dots, background mode, background color, gradients, image fit and position are configurable.

Autoplay، فاصله زمانی، فلش‌ها، Dots، حالت پس‌زمینه، رنگ، Gradient، نحوه قرارگیری و Fit تصویر قابل تنظیم‌اند.

Static page editor

Reusable settings for About, Presidency, Faculties, Programs, Research, Announcements and Contact pages keep copy editable.

برای صفحات About، Presidency، Faculties، Programs، Research، Announcements و Contact ویرایش محتوای متنی به‌صورت متمرکز انجام می‌شود.

Dedicated models

EnglishAnnouncement, EnglishFaculty, EnglishProgram, EnglishPeople, EnglishResearchCenter and homepage-specific models keep domains separated.

برای هر حوزه Modelهای مستقل مانند EnglishAnnouncement، EnglishFaculty، EnglishProgram، EnglishPeople و EnglishResearchCenter وجود دارد.

05 · Security & Reliability

The boring parts are treated as first-class features.

A university CMS needs more than attractive pages. Authentication, role checks, CSRF protection, validation, safe redirects, predictable flash messages and defensive settings handling all matter when administrators are modifying real content.

۰۵ · امنیت و پایداری

بخش‌های «حوصله‌سربر» هم جزو قابلیت‌های اصلی هستند.

یک پنل مدیریت دانشگاهی فقط به ظاهر زیبا نیاز ندارد. احراز هویت، کنترل نقش، CSRF، Validation، Redirect امن، پیام‌های Flash قابل پیش‌بینی و مدیریت دفاعی تنظیمات برای ویرایش محتوای واقعی ضروری هستند.

✓
Authentication & roles Admin actions are protected through the existing authentication and role middleware. Actionهای مدیریتی از طریق Authentication و Middleware مربوط به Role محافظت می‌شوند.
✓
CSRF POST operations use CSRF protection before mutating content. عملیات POST قبل از تغییر داده‌ها CSRF را بررسی می‌کنند.
✓
Input validation Controllers validate required fields, lengths, IDs, URLs, slugs, dates and relationships. Controllerها فیلدهای اجباری، طول، ID، URL، Slug، تاریخ و روابط را بررسی می‌کنند.
✓
Defensive settings Settings are normalized, typed or allow-listed before they influence public rendering. Settingها قبل از ورود به خروجی عمومی Normalize، Type-check یا Allow-list می‌شوند.
Data flow

From an admin click to persistent content.

از کلیک مدیر تا داده ذخیره‌شده.

01
Request

The admin submits a form through an existing route.

مدیر فرم را از طریق Route موجود ارسال می‌کند.

02
Guard

Authentication, role and CSRF protections run before mutation.

احراز هویت، نقش و CSRF پیش از تغییر داده بررسی می‌شوند.

03
Validate

The controller normalizes and validates input against the domain rules.

Controller ورودی را Normalize و بر اساس قواعد دامنه Validate می‌کند.

04
Persist

The model writes to MySQL using the project's existing database layer.

Model با لایه دیتابیس موجود در MySQL ذخیره می‌کند.

06 · Design

Institutional, not “startup dashboard”.

The visual language aims for formal, calm, editorial and information-focused presentation. Persian administration is RTL and uses readable typography, while the public English site has its own visual system. Components are scoped by page and responsibility so styling conflicts are minimized.

۰۶ · طراحی

دانشگاهی و رسمی؛ نه یک داشبورد استارتاپی.

زبان بصری پروژه رسمی، آرام، ادیتوریال و اطلاعات‌محور است. پنل مدیریت فارسی و راست‌چین با تایپوگرافی خوانا طراحی شده و وب‌سایت انگلیسی نیز سیستم بصری جداگانه خود را دارد. Selectorها تا جای ممکن بر اساس صفحه و مسئولیت Scope شده‌اند تا درگیری CSS کمتر شود.

Typography

English uses modern UI typography while the Persian side uses Vazirmatn for readable RTL presentation.

برای انگلیسی از Typography مدرن استفاده شده و در بخش فارسی Vazirmatn برای نمایش طبیعی و خوانا به کار می‌رود.

Responsive behavior

Grids collapse progressively, cards remain touch-friendly, controls stay compact on smaller screens, and long text is constrained without breaking layout.

Gridها به‌صورت تدریجی جمع می‌شوند، کنترل‌ها در نمایشگرهای کوچک فشرده می‌شوند و متن‌های طولانی بدون شکستن Layout کنترل می‌شوند.

Accessibility details

Focus states, large hit areas, reduced-motion support, semantic structure and predictable visual states are part of the system.

Focus state، Hit area مناسب، پشتیبانی از Reduced Motion، ساختار Semantic و وضعیت‌های قابل پیش‌بینی بخشی از سیستم هستند.

The design rule is simple: decoration should support the institution's information, not compete with it.
قانون طراحی ساده است: تزئینات باید به اطلاعات و هویت دانشگاه کمک کنند، نه اینکه با آن‌ها رقابت کنند.
07 · Development Workflow

Extend the system without losing the system.

New work follows existing conventions first. The preferred approach is to search for reusable utilities, patterns, components and configs before introducing something new. Architecture decisions remain explicit and human-reviewed; implementation stays inside the project's established structure.

۰۷ · گردش‌کار توسعه

سیستم را توسعه بده؛ بدون اینکه خود سیستم را از دست بدهی.

توسعه قابلیت‌های جدید ابتدا با بررسی الگوها، Utilityها، Componentها و Configهای موجود انجام می‌شود. قبل از ساخت راه‌حل جدید، راه‌حل فعلی بررسی و در صورت امکان دوباره استفاده می‌شود. تصمیم‌های معماری شفاف و قابل بازبینی باقی می‌مانند و پیاده‌سازی داخل ساختار فعلی پروژه انجام می‌شود.

01
Understand

Identify the existing route, controller, model, view and CSS conventions before touching the code.

ابتدا Route، Controller، Model، View و Conventionهای CSS موجود بررسی می‌شوند.

02
Reuse

Prefer existing utilities, shared layouts, validation behavior and asset patterns over parallel implementations.

Utility، Layout، Validation و Assetهای موجود بر راه‌حل‌های موازی ترجیح داده می‌شوند.

03
Change narrowly

Make the smallest change that satisfies the requirement while preserving unrelated behavior.

تغییر تا حد ممکن محدود است تا قابلیت‌های نامرتبط آسیب نبینند.

04
Verify

Check rendering, redirects, persistence, responsive behavior, empty states and error paths.

Rendering، Redirect، ذخیره داده، Responsive، Empty state و مسیرهای خطا بررسی می‌شوند.

08 · Project Shape

A codebase organized around responsibility.

Representative structure of the system's custom MVC organization.

۰۸ · ساختار پروژه

کدبیس بر اساس مسئولیت‌ها سازمان‌دهی شده است.

نمونه‌ای از ساختار معماری MVC اختصاصی پروژه.

app/ ├── Controllers/ │ ├── EnglishAdminController.php │ ├── EnglishAnnouncementController.php │ ├── EnglishFacultyController.php │ ├── EnglishPeopleController.php │ ├── EnglishProgramController.php │ └── EnglishResearchCenterController.php ├── Models/ │ ├── EnglishAnnouncement.php │ ├── EnglishFaculty.php │ ├── EnglishHomepageSlide.php │ ├── EnglishHomepageService.php │ ├── EnglishPeople.php │ ├── EnglishProgram.php │ └── EnglishResearchCenter.php ├── Core/ │ ├── Router.php │ ├── View.php │ ├── Database.php │ ├── Session.php │ ├── Csrf.php │ └── Storage.php ├── Middleware/ │ ├── RequireAuth.php │ └── RequireRole.php └── Views/ ├── layouts/ ├── admin/english/ └── english/ assets/ └── css/english/ ├── main.css ├── base.css ├── typography.css ├── layout.css ├── header.css ├── footer.css ├── buttons.css ├── slider.css ├── home.css ├── about.css ├── presidency.css ├── faculties.css ├── faculty.css ├── programs.css ├── program.css ├── research.css ├── announcements.css ├── contact.css └── responsive.css
09 · Public Surface

The public site mirrors the domain model.

Representative English routes exposed by the project.

۰۹ · بخش عمومی

ساختار وب‌سایت عمومی با مدل دامنه هماهنگ است.

نمونه‌ای از Routeهای انگلیسی در پروژه.

/englishHomepageصفحه اصلی انگلیسی
/english/aboutInstitutional introductionمعرفی دانشگاه
/english/presidencyLeadershipریاست
/english/facultiesFaculty listingفهرست دانشکده‌ها
/english/faculty/{slug}Faculty detailجزئیات دانشکده
/english/programsAcademic programsبرنامه‌های آموزشی
/english/program/{slug}Program detailجزئیات رشته
/english/researchResearch centersمراکز پژوهشی
/english/announcementsAnnouncementsاطلاعیه‌ها
/english/announcement/{slug}Announcement detailجزئیات اطلاعیه
/english/contactContact & mapتماس و نقشه
10 · Bilingual

Two languages, two presentation contexts, one system.

The public English experience and the Persian management experience are intentionally different, but they share the same domain and data foundations.

۱۰ · دوزبانه

دو زبان و دو فضای ارائه؛ یک سیستم مشترک.

تجربه عمومی انگلیسی و تجربه مدیریت فارسی از نظر ظاهر و زبان متفاوت‌اند، اما بر روی یک منطق داده و دامنه مشترک کار می‌کنند.

ENGLISH

A university-facing public experience.

Visitors can explore the institution through the homepage, academic faculties, programs, research centers, leadership, announcements and contact information. English content is served through its own routes, templates and styling system.

The result is a consistent institutional experience while still allowing individual domains to carry their own page-specific presentation.

فارسی

یک تجربه مدیریتی فارسی و راست‌چین.

مدیر می‌تواند اطلاعات دانشگاه، محتوای صفحات، دانشکده‌ها، رشته‌ها، افراد، مراکز پژوهشی، اطلاعیه‌ها، اسلایدر و تنظیمات سایت را از طریق پنل مدیریت کنترل کند.

ساختار پنل بر پایه الگوهای مشترک پروژه طراحی شده تا فرم‌ها، پیام‌ها، وضعیت‌ها، ذخیره‌سازی و دسترسی‌ها رفتاری قابل پیش‌بینی داشته باشند.

11 · What this foundation enables

The important part is what can be built next.

Because the system already has explicit content models, reusable layouts, settings storage and an admin workflow, future additions can stay within the same architecture instead of creating a second system beside the first one.

۱۱ · این زیرساخت چه چیزی ممکن می‌کند؟

مهم‌تر از همه، چیزهایی است که بعداً می‌توان ساخت.

چون سیستم از قبل Modelهای مشخص، Layoutهای قابل استفاده مجدد، ذخیره‌سازی Settingها و گردش‌کار مدیریتی دارد، قابلیت‌های آینده می‌توانند در همان معماری ساخته شوند و لازم نیست سیستم دومی کنار سیستم اول ایجاد شود.

Richer academic content

محتوای آکادمیک غنی‌تر

More detailed curriculum, admissions, faculty profiles, research outputs and institutional information can grow from the existing models.

اطلاعات بیشتر درباره برنامه درسی، پذیرش، پروفایل اعضا، خروجی‌های پژوهشی و ساختار دانشگاه می‌تواند بر پایه Modelهای فعلی توسعه پیدا کند.

More granular administration

مدیریت جزئی‌تر

Existing CRUD patterns can support additional domains without changing the overall request → controller → model → view flow.

الگوهای CRUD موجود اجازه می‌دهند دامنه‌های جدید بدون تغییر در جریان اصلی Request → Controller → Model → View اضافه شوند.

A stronger institutional web presence

حضور حرفه‌ای‌تر دانشگاه در وب

The combination of structured content and dedicated page styling provides room for the site to become deeper without becoming structurally chaotic.

ترکیب داده ساخت‌یافته با طراحی اختصاصی صفحات اجازه می‌دهد سایت گسترده‌تر شود، بدون اینکه از نظر ساختاری آشفته شود.

Sadra University Website

A custom university platform built with control in mind.

یک سامانه دانشگاهی اختصاصی، با تمرکز بر کنترل و توسعه‌پذیری.

The project's strength is not one flashy feature. It is the accumulation of many small engineering decisions: explicit architecture, reusable patterns, structured content, defensive validation, separated language experiences, responsive interfaces and a willingness to keep the system understandable.

قدرت پروژه در یک قابلیت نمایشی خلاصه نمی‌شود؛ بلکه در جمع شدن تعداد زیادی تصمیم مهندسی کوچک است: معماری شفاف، الگوهای قابل استفاده مجدد، محتوای ساخت‌یافته، Validation دفاعی، جداسازی تجربه زبان‌ها، رابط‌های واکنش‌گرا و تلاش برای قابل فهم ماندن سیستم.