Portfolio

Project #2

Lazy News 365

Laravel-based news platform with a React admin, page builder, and modular widgets.

Lazy News 365 ships a public reader layout plus an admin panel to manage posts, menus, and custom page sections. This README focuses on what is implemented today.

Lazy News 365
Completed Features

Reader Experience

  • Newsfront layout with responsive header and menu (desktop dropdown + mobile drawer).
  • Locale switcher with per-locale persistence.
  • Page rendering with widget-based sections.
  • Category pages: renders matching category page widgets first, then a dynamic post list.
  • Mobile vs desktop visibility for slider/mobile_slider and single_banner/mobile_single_banner.
  • Cookie consent banner driven by settings.

Admin Panel

  • Dashboard, posts, comments, media library, categories, locales, menus, and pages.
  • Page Builder with sortable sections and per-locale translations.
  • Widget controls for structured widgets (sliders, banners, multi-column, line gaps).
  • HTML Block editor with separate HTML + JS fields.
  • Settings split into tabs: Application, Contact, Social API, SMTP, reCAPTCHA, Cookie consent.

Widgets (Public)

  • Slider + Mobile Slider with autoplay, dots, arrows, hover/touch pause.
  • Breaking News List vertical ticker slider.
  • Multi-column grid with responsive columns (min 2 on mobile, configured columns at lg).
  • Single banner + Mobile single banner.
  • Text editor rich HTML content widget.
  • Category Slider (new):
    • Single category: paged slider showing post grids (6 posts per slide).
    • Multiple categories: per-category cards with their own paged slider.
  • Featured post widget for curated layouts.

Caching

  • Category Slider uses cached data via CategorySliderService (5-minute TTL).
Technical Stack
  • Backend: Laravel (PHP 8+)
  • Frontend: Tailwind CSS + Vite
  • Admin: React + Tailwind
  • Database: MySQL/PostgreSQL compatible Eloquent models
Home
Media
Pages
Settings
News