A news website built with PHP following the MVC architecture pattern. Features both traditional multi-page (MPA) and single-page application (SPA) modes using AJAX.
| Feature | Description |
|---|---|
| 📰 Article Management | Browse recent news articles with reading time estimates |
| 🔐 User Authentication | Login system with session management |
| ⭐ Favorites | Save articles for later (async, no page reload) |
| 🔍 Advanced Search | Filter by keywords, category, date range (slider) |
| 🎨 Themes | Light, dark, and grey themes |
| 🔤 Font Options | 3 different font styles |
| ⚡ SPA Mode | AJAX-powered navigation without full page reloads |
This project was built with specific constraints that shaped the architecture:
- Dual rendering: Support both MPA (traditional) and SPA (AJAX) modes, switchable via config variable
- No page refresh: Favorites and search must work asynchronously using AJAX/jQuery
- Article details: Display on click as an overlay (no navigation)
- Session-based favorites: Persist user selections across navigation
- Dynamic menu: Load pages without full refresh
- No form tags with AJAX: Handle submissions via JavaScript only
actuscope/
├── app/
│ ├── controller/ # Request handlers
│ ├── model/ # Data access & business logic
│ └── view/ # HTML templates
├── asset/ # Static files (CSS, JS, images)
├── public/
│ └── media/
│ └── sql/ # Database schema
└── index.php # Entry point & router
- Backend: PHP 8+ with custom MVC framework
- Database: MySQL
- Frontend: HTML5, CSS3, Bootstrap, JavaScript, jQuery
- Data: JSON files + MySQL database
- Clone the repository
git clone https://github.com/ludvdber/4ipw3_projet.git- Import the database
mysql -u your_user -p your_database < public/media/sql/database.sql-
Configure database connection in the config file
-
Run with a local PHP server or XAMPP/WAMP
MIT License
- Ludovic — @ludvdber
- Chaimaa — @ChaimaaBEI
Built as part of the Bachelor in Application Development at ISFCE Brussels.