Page Analyzer is a full-fledged web application built with PHP and the Slim framework that analyzes specified web pages for SEO suitability. The service checks page availability and extracts critical SEO tags.
This application allows you to:
- Add new sites for monitoring via a user-friendly form on the main page.
- View a list of all added resources, including the results of their latest checks (status code, date).
- Run detailed SEO checks for a specific page.
- Maintain a check history, storing:
- HTTP response code.
- Page Title (from the
<title>tag). - Main heading (
<h1>). - Meta description (
description).
- Backend: PHP (Slim Framework).
- Database: PostgreSQL (using PDO library for queries).
- Frontend: Bootstrap for responsive design.
- Infrastructure: Makefile for task automation, deployed via Render.com.
- PHP: >= 8.1
- Composer: For dependency management.
- PostgreSQL: For data storage.
- Make: To execute build and run commands.
git clone https://github.com/ElenaManukyan/php-project-9.git
cd php-project-9Use Composer via the provided Makefile:
make installThe application requires PostgreSQL. Follow these steps to prepare your local environment:
-
Create the database:
createdb page_analyzer
or
1.1. Enter the standard PostgreSQL console
psql postgres
1.2. Execute the query inside the console:
CREATE DATABASE page_analyzer
1.3. Exit the console
\q -
Initialize the table structure using the provided SQL file:
psql -d page_analyzer -f database.sql
-
Set up your environment variables: Create a
.envfile in the root directory and add your connection string:DATABASE_URL=postgresql://<your_login>:<your_password>@localhost:<your_port>/<your_name_db>
Start the built-in PHP server:
make startBy default, the application will be available at: http://localhost:8000.
make start- Starts the web server on port 8000.make install- Installs all project dependencies via Composer.make lint- Runs the PHP linter (PHP_CodeSniffer) following the PSR12 standard.make stop- Stops the server running on the specified port.
The application features an intuitive interface divided into three main sections:


