PHPackages                             evgip/w3a - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. evgip/w3a

ActiveProject[Framework](/categories/framework)

evgip/w3a
=========

A custom modular PHP MVC forum matching the HMVC pattern.

v0.1.0-alpha(yesterday)201MITPHPPHP &gt;=8.0

Since Jun 18Pushed todayCompare

[ Source](https://github.com/evgip/w3a)[ Packagist](https://packagist.org/packages/evgip/w3a)[ RSS](/packages/evgip-w3a/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

🌐 W3A - Hacker News and Lobster-style news aggregator
=====================================================

[](#-w3a---hacker-news-and-lobster-style-news-aggregator)

[🇷🇺 Русский](README.ru.md) | [🇬🇧 English](README.md)

A modern, lightweight news aggregator built with PHP 8.1+ and MySQL, inspired by Hacker News and Lobster. Features a modular HMVC architecture, real-time updates, and comprehensive moderation tools.

[![PHP Version](https://camo.githubusercontent.com/83dd395020c37276225039739320f6c8e7e99963ab21ee3d09282cb48dad2a60/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d626c7565)](https://camo.githubusercontent.com/83dd395020c37276225039739320f6c8e7e99963ab21ee3d09282cb48dad2a60/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d626c7565)[![MySQL](https://camo.githubusercontent.com/b0cbf97a279040a6199e9f3520d0194307dc8b5f2dfca0ed4681551564329ace/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d7953514c2d382e302532422d6f72616e6765)](https://camo.githubusercontent.com/b0cbf97a279040a6199e9f3520d0194307dc8b5f2dfca0ed4681551564329ace/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d7953514c2d382e302532422d6f72616e6765)[![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)

[![W3A home](https://raw.githubusercontent.com/evgip/soc/main/public/github-home.png)](https://raw.githubusercontent.com/evgip/soc/main/public/github-home.png)

[![W3A admin](https://raw.githubusercontent.com/evgip/soc/main/public/github-admin.png)](https://raw.githubusercontent.com/evgip/soc/main/public/github-admin.png)

[![W3A setting](https://raw.githubusercontent.com/evgip/soc/main/public/github-setting.png)](https://raw.githubusercontent.com/evgip/soc/main/public/github-setting.png)

🚀 Features
----------

[](#-features)

### Core Functionality

[](#core-functionality)

- **News Stories** - Submit and browse news stories with URL or text content
- **Comments** - Threaded comment system with nested replies
- **Voting System** - Upvote/downvote stories and comments with real-time updates
- **User Authentication** - Secure registration, login, and session management
- **User Profiles** - Activity tracking, submitted stories, and comment history

### Advanced Features

[](#advanced-features)

- **Real-time Updates** - AJAX-powered live updates for votes and comments
- **Moderation Tools** - Ban users, domains, and manage content
- **Audit Logging** - Comprehensive activity tracking for all administrative actions
- **Rate Limiting** - Protection against abuse with configurable limits
- **CSRF Protection** - Security tokens for all form submissions
- **Soft Deletes** - Recoverable content deletion
- **Search** - Full-text search across stories and comments

### User Experience

[](#user-experience)

- **Responsive Design** - Mobile-friendly interface
- **Dark Mode** - System-aware theme switching
- **Keyboard Shortcuts** - Power-user navigation
- **Markdown Support** - Rich text formatting in comments

🛠️ Technology Stack
-------------------

[](#️-technology-stack)

ComponentTechnology**Backend**PHP 8.1+ (no framework, custom HMVC)**Database**MySQL 8.0+ with PDO**Frontend**Vanilla JavaScript, CSS3**Architecture**Modular HMVC pattern**Security**CSRF tokens, rate limiting, password hashing (bcrypt)**Server**Apache/Nginx with mod\_rewrite📦 Installation
--------------

[](#-installation)

Install the package through [Composer](http://getcomposer.org/).

`composer create-project evgip/w3a`

### Requirements

[](#requirements)

- PHP 8.1 or higher
- MySQL 8.0 or higher
- Apache/Nginx with URL rewriting enabled
- Composer (optional, for development)

### Step 1: Clone Repository

[](#step-1-clone-repository)

```
git clone https://github.com/evgip/w3a.git
cd w3a
```

### Step 2: Configure Database

[](#step-2-configure-database)

1. Create a MySQL database:

```
CREATE DATABASE w3a CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

2. Import the schema:

```
mysql -u your_username -p w3a  [
	'host' => 'MySQL-8.2',
	'port' => '3306',
	'dbname' => 'soc',
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8mb4',
]
```

### Step 3: Configure Application

[](#step-3-configure-application)

Edit `app/Config/config.php`:

```
'app' => [
	'name' => 'w3a',
	'url' => 'http://soc.local',
	'lang' => en',
```

### Step 4: Set Permissions

[](#step-4-set-permissions)

```
chmod -R 755 storage/
chmod -R 755 public/
```

### Step 5: Configure Web Server

[](#step-5-configure-web-server)

**Apache** (`.htaccess` already included):

```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
```

**Nginx**:

```
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
```

### Step 6: Login information

[](#step-6-login-information)

- Admin:  / password
- User:  / password

📁 Project Structure
-------------------

[](#-project-structure)

```
w3a/
├── app/
│	├── Config/                 # Configuration
│   │	└── config.php          # App settings
│   ├── Core/                   # Core framework classes
│   │   ├── Router.php          # URL routing
│   │   ├── Controller.php      # Base controller
│   │   ├── Model.php           # Base model
│   │   ├── Database.php        # PDO wrapper
│   │   ├── Auth.php            # Authentication
│   │   ├── Session.php         # Session management
│   │   ├── Request.php         # HTTP request handling
│   │   ├── Response.php        # HTTP responses
│   │   ├── View.php            # Template rendering
│   │   ├── Audit.php           # Audit logging
│   │   └── Validator.php       # Input validation
│   │
│   └── Modules/                 # Feature modules (HMVC)
│       ├── Auth/               # Authentication module
│       │   ├── Controllers/
│       │   ├── Models/
│       │   ├── Views/
│       │   └── routes.php
│       ├── Stories/            # News stories module
│       ├── Comments/           # Comments module
│       ├── Votes/              # Voting system
│       ├── Users/              # User profiles
│       ├── Moderation/         # Moderation tools
│       ├── Origins/            # Domain management
│       └── Api/                # REST API
├── public/                      # Public assets
│   ├── index.php              # Entry point
│   ├── css/                   # Stylesheets
│   ├── js/                    # JavaScript files
│   └── images/                # Images
│
├── storage/                     # Writable storage
│   ├── logs/                  # Application logs
│   └── cache/                 # Cache files
│
├── db/                          # Database
│   └── schema.sql             # Database schema
│
└── README.md                    # This file

```

🔒 Security Features
-------------------

[](#-security-features)

- **Password Hashing** - bcrypt with automatic salt
- **CSRF Protection** - Token validation on all forms
- **SQL Injection Prevention** - Prepared statements (PDO)
- **XSS Protection** - Output escaping with `htmlspecialchars()`
- **Rate Limiting** - Configurable per-action limits
- **Session Security** - HTTP-only cookies, regeneration
- **Input Validation** - Server-side validation for all inputs

🧪 Development
-------------

[](#-development)

### Debug Mode

[](#debug-mode)

Enable in `app/Config/config.php`:

```
'env' => 'development', // development или production
```

📊 Database Schema
-----------------

[](#-database-schema)

### Core Tables

[](#core-tables)

- `users` - User accounts and profiles
- `stories` - News stories (URL or text)
- `comments` - Threaded comments
- `votes` - Upvotes/downvotes
- `sessions` - Active user sessions
- `audit_logs` - Administrative activity log
- `domains` - Banned domains list
- `flags` - Complaint log

See `db/schema.sql` for complete schema.

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please follow these steps:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

📝 License
---------

[](#-license)

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

🙏 Acknowledgments
-----------------

[](#-acknowledgments)

- Inspired by the functionality of [Hacker News](https://news.ycombinator.com/) and [Lobster](https://lobste.rs/)
- Speed and simplicity of the [HLEB](https://hleb2framework.ru/) framework
- Built with vanilla PHP (no frameworks)
- Modular HMVC architecture

📧 Contact
---------

[](#-contact)

- **Author**: Evg
- **Repository**:
- **Issues**:

---

**⭐ If you find this project useful, please consider giving it a star on GitHub!**

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance100

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6613623?v=4)[Evg](/maintainers/evgip)[@evgip](https://github.com/evgip)

---

Top Contributors

[![evgip](https://avatars.githubusercontent.com/u/6613623?v=4)](https://github.com/evgip "evgip (54 commits)")

---

Tags

forumminimalphp

### Embed Badge

![Health badge](/badges/evgip-w3a/health.svg)

```
[![Health](https://phpackages.com/badges/evgip-w3a/health.svg)](https://phpackages.com/packages/evgip-w3a)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[getkirby/cms

The Kirby core

1.5k567.4k431](/packages/getkirby-cms)[pods-framework/pods

Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress.

1.1k1.7k](/packages/pods-framework-pods)[jelix/jelix

Jelix PHP framework

84109.7k5](/packages/jelix-jelix)[chameleon-system/chameleon-base

The Chameleon System core.

1027.9k4](/packages/chameleon-system-chameleon-base)[doppar/framework

The Doppar Framework

4011.2k14](/packages/doppar-framework)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
