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.
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).
- Backend: Laravel (PHP 8+)
- Frontend: Tailwind CSS + Vite
- Admin: React + Tailwind
- Database: MySQL/PostgreSQL compatible Eloquent models