Skip to content

benjamimWalker/modqueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project logo

Overview

ModQueue is a Laravel-based, multi-service system that simulates scalable, asynchronous content moderation — just like you'd find in large social platforms.

ModQueue is split into two independent services:

  • Content API: Accepts and lists user-generated content.
  • Moderation Worker: Asynchronously processes moderation using an AI mock service.

Together, they form a production-grade simulation of a microservice architecture with job queues, separation of concerns, and automated testing.

Technology

Key Technologies used:

  • Laravel 12 (for both services)
  • MySQL
  • Nginx
  • RabbitMQ
  • Docker + Docker Compose
  • PestPHP

Getting started

Important

You must have Docker and Docker Compose installed on your machine.

  • Clone the repository:
git clone https://github.com/benjamimWalker/modqueue.git
  • Go to the project folder:
cd modqueue
  • Prepare environment files:
cp content-api/.env.example content-api/.env && cp moderation-worker/.env.example moderation-worker/.env
  • Build the containers:
docker compose up -d
  • Install composer dependencies:
docker compose exec content-api-php composer install && docker compose exec moderation-worker composer install
  • Run the migrations:
docker compose exec content-api-php php artisan migrate
  • You can now execute the tests:
docker compose exec content-api-php php artisan test
  • And access the documentation at:
http://localhost:8080/docs/api

And also access RabbitMQ dashboard (username guest, password guest) at:

http://localhost:15672
  • Ultimately, to execute the moderation worker, run:
docker compose exec moderation-worker php artisan queue:work

How to use

1 - Create your content

Content creation image

2 - Check your content

Content fetching image

3 - Check the moderation

Content fetching image

Features

The main features of the application are:

  • Real-time queue-based communication using Laravel Jobs + RabbitMQ.
  • Microservice-style separation between content handling and moderation logic.
  • Full test coverage with PestPHP.
  • Clean, maintainable Laravel 12 code with proper architecture.

[Benjamim] - [[email protected]] Github: @benjamimWalker

About

ModQueue Laravel project

Resources

Stars

Watchers

Forks

Contributors

Languages