Git Product home page Git Product logo

cms-laravel's Introduction

Jetstream Socialite License: MIT

Install Tests Docker

Our Projects

Setup

  1. Ensure your environment is set up with PHP 8.3 and Composer installed.
  2. Download the project files from this GitHub repository.
  3. Open a terminal in the project folder. If you are on Windows and have Git Bash installed, you can use it for the following steps.
  4. Run the following command:
./setup.sh

and everything should be installed automatically if you are using Linux you just run the script as you normally run scripts in the terminal.

NOTE 1: The script will ask you if you want to have your .env be overwritten by .env.example, in case you have already an .env configuration available please answer with "n" (No).

NOTE 2: This script will run seeders, please make sure you are aware of this and don't run this script if you don't want this to happen.

composer install
php artisan key:generate
php artisan migrate --seed

This will install the necessary dependencies, generate an application key, and set up your database with initial data.

NOTE 3: Ensure your .env file is correctly configured with your database connection details before running migrations.

Building with Docker

Alternatively, you can build and run the project using Docker. To build the Dockerfile, follow these steps:

  1. Ensure you have Docker installed on your system.
  2. Open a terminal in the project folder.
  3. Run the following command to build the Docker image:
    docker build -t cms-laravel .
    
  4. Once the image is built, you can run the container with:
    docker run -p 8000:8000 cms-laravel
    

NOTE 3: Ensure your .env file is correctly configured with your database connection details before running migrations.

Using Laravel Sail

This project also includes support for Laravel Sail, which provides a Docker-based development environment. To use Laravel Sail, follow these steps:

  1. Ensure you have Docker installed on your system.
  2. Open a terminal in the project folder.
  3. Run the following command to start the Laravel Sail environment:
    ./vendor/bin/sail up
    
  4. Once the containers are running, you can access the application at http://localhost.
  5. To stop the Sail environment, press Ctrl+C in the terminal.

For more information on using Laravel Sail, refer to the official documentation.

Description

Welcome to Liberu CMS, our forward-thinking open-source project designed to empower content creators and administrators alike. Leveraging the dynamic capabilities of Laravel 11, PHP 8.3, Livewire 3, and Filament 3, Liberu CMS is not just a content management system โ€“ it's a versatile and intuitive platform crafted to elevate the creation, organization, and delivery of digital content.

Key Features:

  1. User-Friendly Content Creation: Liberu CMS provides an intuitive and user-friendly interface for content creation. From articles and multimedia to dynamic pages, our project ensures that content creators can bring their ideas to life with ease.

  2. Dynamic Livewire Interactions: Built on Laravel 11 and PHP 8.3, Liberu CMS integrates Livewire 3 to deliver dynamic and real-time interactions. Enjoy seamless and responsive user experiences as you edit, preview, and publish content without the need for page refreshes.

  3. Efficient Admin Panel: Filament 3, our admin panel built on Laravel, adds an extra layer of efficiency to Liberu CMS. Administrators can manage users, customize settings, and oversee the entire content ecosystem with a powerful and intuitive interface.

  4. Customizable Templates: Tailor your website's appearance with customizable templates. Liberu CMS offers flexibility in design, allowing users to create unique and visually appealing websites that align with their brand and vision.

  5. Scalability and Performance: Whether you're managing a personal blog or a large-scale enterprise website, Liberu CMS is built for scalability and optimized performance. The project adapts to your content needs, ensuring a seamless experience for both creators and visitors.

Liberu CMS is open source, released under the permissive MIT license. We invite developers, content creators, and organizations to contribute to the evolution of content management systems. Together, let's redefine the standards of digital content creation and management.

Welcome to Liberu CMS โ€“ where innovation meets simplicity, and the possibilities of digital content creation are limitless. Join us on this journey to transform the way we create, manage, and deliver content to the world.

Licensed under MIT, use for any personal or commercial project.

Contributions

We warmly welcome new contributions from the community! We believe in the power of collaboration and appreciate any involvement you'd like to have in improving our project. Whether you prefer submitting pull requests with code enhancements or raising issues to help us identify areas of improvement, we value your participation.

If you have code changes or feature enhancements to propose, pull requests are a fantastic way to share your ideas with us. We encourage you to fork the project, make the necessary modifications, and submit a pull request for our review. Our team will diligently review your changes and work together with you to ensure the highest quality outcome.

However, we understand that not everyone is comfortable with submitting code directly. If you come across any issues or have suggestions for improvement, we greatly appreciate your input. By raising an issue, you provide valuable insights that help us identify and address potential problems or opportunities for growth.

Whether through pull requests or issues, your contributions play a vital role in making our project even better. We believe in fostering an inclusive and collaborative environment where everyone's ideas are valued and respected.

We look forward to your involvement, and together, we can create a vibrant and thriving project. Thank you for considering contributing to our community!

License

This project is licensed under the MIT license, granting you the freedom to utilize it for both personal and commercial projects. The MIT license ensures that you have the flexibility to adapt, modify, and distribute the project as per your needs. Feel free to incorporate it into your own ventures, whether they are personal endeavors or part of a larger commercial undertaking. The permissive nature of the MIT license empowers you to leverage this project without any unnecessary restrictions. Enjoy the benefits of this open and accessible license as you embark on your creative and entrepreneurial pursuits.

Contributors

cms-laravel's People

Contributors

alain-kay avatar curtisdelicata avatar dependabot[bot] avatar raza9798 avatar sweep-ai[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cms-laravel's Issues

Bug: Address Performance Issues with Content Publishing

Description:

  • Optimize performance bottlenecks during content publishing to reduce latency and ensure efficient delivery of published content.

Tasks:

  • Profile and identify performance issues during the publishing process.
  • Implement caching strategies and optimize database queries.
  • Test publishing performance under load to verify improvements.

Acceptance Criteria:

  • Content publishing processes are fast and reliable, even during peak usage periods.

Comment System with Moderation

Description: Implement a flexible comment system with moderation capabilities.

Tasks to Accomplish:

Create a Comment model and associated database table
Develop comment submission and display functionality
Implement a comment moderation system
Create notification system for new comments
Acceptance Criteria:

Users can submit comments on applicable content
Comments can be moderated (approved, rejected, or marked as spam)
Nested comments (replies) are supported
Administrators receive notifications for new comments requiring moderation

issues with fresh install erroring out

Details

When running setup.sh, it errors out. Here is the output from the run.

===== [PHP 8.3.9]

==================================
===== PREPARING YOUR PROJECT...

๐ŸŽฌ DEV ---> DID YOU WANT TO COPY THE .ENV.EXAMPLE TO .ENV? (y/n) y
Copying .env.example to .env

==================================

๐ŸŽฌ DEV ---> DID YOU SETUP YOUR DATABASE CREDENTIALS IN THE .ENV FILE? (y/n) y
Perfect let's continue with the setup

==================================

๐ŸŽฌ DEV ---> COMPOSER INSTALL
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 175 installs, 0 updates, 0 removals

  • Installing voku/portable-ascii (2.0.1): Extracting archive

  • Installing symfony/polyfill-php80 (v1.30.0): Extracting archive

  • Installing symfony/polyfill-mbstring (v1.30.0): Extracting archive

  • Installing symfony/polyfill-ctype (v1.30.0): Extracting archive

  • Installing phpoption/phpoption (1.9.2): Extracting archive

  • Installing graham-campbell/result-type (v1.1.2): Extracting archive

  • Installing vlucas/phpdotenv (v5.6.0): Extracting archive

  • Installing symfony/css-selector (v7.1.1): Extracting archive

  • Installing tijsverkoyen/css-to-inline-styles (v2.2.7): Extracting archive

  • Installing symfony/var-dumper (v7.1.2): Extracting archive

  • Installing symfony/polyfill-uuid (v1.30.0): Extracting archive

  • Installing symfony/uid (v7.1.1): Extracting archive

  • Installing symfony/deprecation-contracts (v3.5.0): Extracting archive

  • Installing symfony/routing (v7.1.1): Extracting archive

  • Installing symfony/process (v7.1.1): Extracting archive

  • Installing symfony/polyfill-php83 (v1.30.0): Extracting archive
    .......

  • Installing spiral/roadrunner-cli (v2.6.0): Extracting archive

  • Installing roadrunner-php/roadrunner-api-dto (v1.8.0): Extracting archive

  • Installing spiral/roadrunner-http (v3.5.1): Extracting archive

  • Installing laravel/jetstream (v5.1.3): Extracting archive

  • Installing stephenjude/filament-jetstream (0.0.12): Extracting archive
    Generating optimized autoload files

Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover --ansi

In ProviderRepository.php line 206:

Class "App\Providers\FortifyServiceProvider" not found

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

==================================

๐ŸŽฌ DEV ---> PHP ARTISAN KEY:GENERATE

In ProviderRepository.php line 206:

Class "App\Providers\FortifyServiceProvider" not found

==================================

๐ŸŽฌ DEV ---> php artisan migrate:fresh

In ProviderRepository.php line 206:

Class "App\Providers\FortifyServiceProvider" not found

==================================

๐ŸŽฌ DEV ---> php artisan db:seed

In ProviderRepository.php line 206:

Class "App\Providers\FortifyServiceProvider" not found

Database seeding failed.

Content Scheduling

Description: Enable users to schedule content for future publication.

Tasks:
Add a scheduling option to the content creation form.
Implement a background task to publish scheduled content at the specified time.
Provide an overview of scheduled posts in the admin panel.
Acceptance Criteria:
Users can select a date and time for content publication.
Scheduled content is automatically published at the set time.

Content Scheduling and Publishing Workflow

Description: Implement a robust content scheduling and publishing workflow system.

Tasks to Accomplish:

Extend the Content model to include scheduling information
Create a publishing workflow with draft, review, and published states
Implement a scheduling system for automatic content publishing
Develop notifications for content status changes
Acceptance Criteria:

Users can schedule content for future publication
Content goes through a defined workflow (draft, review, published)
Scheduled content is automatically published at the specified time
Users receive notifications about content status changes

Bug: Address Performance Issues with Content Publishing

Description

  • Optimize performance bottlenecks during content publishing to reduce latency and ensure efficient delivery of published content.

Tasks

  • Profile and identify performance issues during the publishing process.
  • Implement caching strategies and optimize database queries.
  • Test publishing performance under load to verify improvements.

Acceptance Criteria

  • Content publishing processes are fast and reliable, even during peak usage periods.

Improvement: Enhance SEO Optimization Tools

Description:

  • Improve SEO tools within Liberu CMS to enable better management of meta tags, URL structures, and sitemaps for improved search engine visibility.
    Tasks:

  • Enhance UI for managing meta tags, URLs, and generating sitemaps.

  • Implement SEO best practices for content structure and metadata management.

  • Test SEO tools to ensure they effectively enhance search engine visibility and indexing.

Acceptance Criteria:

  • Users can optimize content for SEO with intuitive tools that improve search engine rankings.

Customizable Content Blocks

Description: Allow users to create and customize content blocks for more flexible page layouts.

Tasks:
Develop a drag-and-drop interface for creating content blocks.
Allow customization of content blocks, including text, images, and multimedia.
Enable reusability of content blocks across different pages.
Acceptance Criteria:
Users can create, customize, and reuse content blocks.
Blocks are draggable and configurable to build complex page layouts.

Analytics Dashboard

Description: Create a comprehensive analytics dashboard for content performance.

Tasks to Accomplish:

Integrate with an analytics service (e.g., Google Analytics)
Develop custom analytics tracking for content views and interactions
Create visualizations for key performance metrics
Implement filters and date range selections for analytics data
Acceptance Criteria:

Users can view key performance metrics for their content
The dashboard provides visualizations of important analytics data
Custom events and interactions are tracked and displayed
Users can filter and select date ranges for analytics data

User Role Management

Description: Implement a robust user role management system to control access levels and permissions.

Tasks:
Create role-based access controls (RBAC) in the admin panel using Filament 3.
Define and assign roles such as Admin, Editor, and Viewer.
Integrate role-based content visibility.
Acceptance Criteria:
Admins can create, edit, and delete user roles.
Users can be assigned specific roles that control their access and capabilities within the CMS.

BadMethodCallException Method App\Filament\Resources\PageResource::register does not exist. at vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php:115 111โ–• */ 112โ–• public function __call($method, $parameters) 113โ–• { 114โ–• if (! static::hasMacro($method)) { โžœ 115โ–• throw new BadMethodCallException(sprintf( 116โ–• 'Method %s::%s does not exist.', static::class, $method 117โ–• )); 118โ–• } 119โ–• i Bad Method Call: Did you mean App\Filament\Resources\PageResource::registerRoutes() ? +7 vendor frames 8 artisan:35 Illuminate\Foundation\Console\Kernel::handle() Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

Error when running composer the first time.

Details

When running composer for the first time to update all the dependencies, I get the following error:

In Macroable.php line 115:

Method App\Filament\Resources\PageResource::isDeferred does not exist.

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

image

API for Headless CMS Functionality

Description: Implement a RESTful API for accessing CMS content and functionality.

Tasks to Accomplish:

Design and implement RESTful API endpoints for content access
Create authentication and authorization system for API access
Implement rate limiting and security measures
Develop comprehensive API documentation
Acceptance Criteria:

A RESTful API provides access to CMS content and functionality
API endpoints are secured with proper authentication and authorization
Rate limiting and security measures are in place to prevent abuse
Comprehensive API documentation is available for developers

Bug: Fix Content Creation Interface for Media Upload

Description:

  • Resolve issues related to uploading and managing media files within the content creation interface to ensure smooth integration and display of multimedia content.

Tasks:

  • Identify and address errors or inconsistencies in media upload functionality.
  • Implement improvements to handle various file types and sizes effectively.
  • Test media uploading across different scenarios and ensure compatibility with all supported formats.

Acceptance Criteria:

  • Users can upload, manage, and display media files seamlessly within the content creation interface.

Sweep: finish cms

Details

Finish cms features such as page creation as a filament 3 resource.

Checklist
  • Create app/Models/Page.php โœ“ 1b4b01a Edit
  • Running GitHub Actions for app/Models/Page.php โœ“ Edit
  • Create app/Filament/Resources/PageResource.php โœ“ 8037b29 Edit
  • Running GitHub Actions for app/Filament/Resources/PageResource.php โœ“ Edit
  • Modify config/app.php โœ“ b5d14b0 Edit
  • Running GitHub Actions for config/app.php โœ“ Edit
  • Create database/migrations/xxxx_xx_xx_xxxxxx_create_pages_table.php โœ“ 24b3cbc Edit
  • Running GitHub Actions for database/migrations/xxxx_xx_xx_xxxxxx_create_pages_table.php โœ“ Edit
  • Modify app/Providers/AppServiceProvider.php โœ“ b9b3d71 Edit
  • Running GitHub Actions for app/Providers/AppServiceProvider.php โœ“ Edit

Feature: Implement Real-Time Content Preview with Livewire

Description

  • Introduce real-time content preview capabilities using Livewire to allow creators to preview changes dynamically before publishing.

Tasks

  • Develop Livewire components to provide instant previews of content edits.
  • Ensure synchronization between the preview and actual content display.
  • Test real-time preview functionality across different content types and editing scenarios.

Acceptance Criteria

  • Content creators can see immediate, accurate previews of their edits before finalizing content updates.

Customizable Themes and Templates

Description: Implement a theming system with customizable templates.

Tasks to Accomplish:

Develop a theme structure and management system
Create a set of default, customizable templates
Implement a theme options panel in the admin area
Allow for easy switching between themes
Acceptance Criteria:

Users can create and manage custom themes
A set of default, customizable templates is available
The admin panel includes a theme options interface
Themes can be easily switched without affecting content

Sweep: ParseError

Details

/www/Projekt-Seiten/ProjectX/CMS$ php /usr/local/bin/composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating optimized autoload files
Class App\Filament\Admin\Resources\ContentResource located in ./app/Filament/App/Resources/ContentResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentCategoryResource located in ./app/Filament/App/Resources/ContentCategoryResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ActivationResource\Pages\ListActivations located in ./app/Filament/App/Resources/ActivationResource/Pages/ListActivations.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ActivationResource\Pages\CreateActivation located in ./app/Filament/App/Resources/ActivationResource/Pages/CreateActivation.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ActivationResource\Pages\EditActivation located in ./app/Filament/App/Resources/ActivationResource/Pages/EditActivation.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentCategoryResource\Pages\CreateContentCategory located in ./app/Filament/App/Resources/ContentCategoryResource/Pages/CreateContentCategory.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentCategoryResource\Pages\ListContentCategories located in ./app/Filament/App/Resources/ContentCategoryResource/Pages/ListContentCategories.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentCategoryResource\Pages\EditContentCategory located in ./app/Filament/App/Resources/ContentCategoryResource/Pages/EditContentCategory.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ActivationResource located in ./app/Filament/App/Resources/ActivationResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentResource\Pages\EditContent located in ./app/Filament/App/Resources/ContentResource/Pages/EditContent.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentResource\Pages\CreateContent located in ./app/Filament/App/Resources/ContentResource/Pages/CreateContent.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\ContentResource\Pages\ListContents located in ./app/Filament/App/Resources/ContentResource/Pages/ListContents.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CommentResource\Pages\ListComments located in ./app/Filament/App/Resources/CommentResource/Pages/ListComments.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CommentResource\Pages\CreateComment located in ./app/Filament/App/Resources/CommentResource/Pages/CreateComment.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CommentResource\Pages\EditComment located in ./app/Filament/App/Resources/CommentResource/Pages/EditComment.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CommentResource located in ./app/Filament/App/Resources/CommentResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\TagResource\Pages\CreateTag located in ./app/Filament/App/Resources/TagResource/Pages/CreateTag.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\TagResource\Pages\ListTags located in ./app/Filament/App/Resources/TagResource/Pages/ListTags.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\TagResource\Pages\EditTag located in ./app/Filament/App/Resources/TagResource/Pages/EditTag.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CompanyResource\Pages\CreateCompany located in ./app/Filament/App/Resources/CompanyResource/Pages/CreateCompany.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CompanyResource\Pages\EditCompany located in ./app/Filament/App/Resources/CompanyResource/Pages/EditCompany.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CompanyResource\Pages\ListCompanies located in ./app/Filament/App/Resources/CompanyResource/Pages/ListCompanies.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\CompanyResource located in ./app/Filament/App/Resources/CompanyResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Resources\PageResource located in ./app/Filament/App/Resources/Resources/PageResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\AuthorResource located in ./app/Filament/App/Resources/AuthorResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\TagResource located in ./app/Filament/App/Resources/TagResource.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\AuthorResource\Pages\ListAuthors located in ./app/Filament/App/Resources/AuthorResource/Pages/ListAuthors.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\AuthorResource\Pages\CreateAuthor located in ./app/Filament/App/Resources/AuthorResource/Pages/CreateAuthor.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Filament\Admin\Resources\AuthorResource\Pages\EditAuthor located in ./app/Filament/App/Resources/AuthorResource/Pages/EditAuthor.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Http\Controllers\AdminForgotPasswordController located in ./app/Http/Controllers/ForgotPasswordController.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Http\Controllers\AdminResetPasswordController located in ./app/Http/Controllers/ResetPasswordController.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Http\Controllers\AdminLoginController located in ./app/Http/Controllers/LoginController.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Actions\Jetstream\DeleteUser located in ./app/Actions/Jetstream/DeleteUserWithTeams.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Actions\Socialstream\CreateUserFromProvider located in ./app/Actions/Socialstream/CreateUserWithTeamsFromProvider.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
Class App\Actions\Fortify\CreateNewUser located in ./app/Actions/Fortify/CreateNewUserWithTeams.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.

Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover --ansi

ParseError

syntax error, unexpected token "public", expecting end of file

at app/Models/Page.php:37
33โ–• {
34โ–• return $this->belongsTo(User::class);
35โ–• }
36โ–• }
โžœ 37โ–• public function user()
38โ–• {
39โ–• return $this->belongsTo(User::class);
40โ–• }
41โ–• }

  +1 vendor frames

2 app/Providers/AppServiceProvider.php:29
Composer\Autoload\ClassLoader::loadClass()
+7 vendor frames

10 [internal]:0
Illuminate\Foundation\Application::Illuminate\Foundation{closure}()

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

Please Help me..

Improvement: Refactor Admin Panel for Improved User Management

Description:

  • Enhance the Filament admin panel to streamline user management tasks, including user roles, permissions, and access controls.

Tasks:

  • Review current admin panel functionality and user interface.
  • Implement UI/UX improvements to simplify user management workflows.
  • Enhance backend logic for efficient user role assignment and permission management.

Acceptance Criteria:

  • Admins can manage user roles, permissions, and access settings intuitively from the Filament admin panel.

Media Library with Tagging

Description: Develop a media library where users can upload, organize, and tag multimedia content.

Tasks:
Create a media library interface with upload and organization features.
Implement a tagging system for easy search and categorization of media.
Allow media files to be attached to content directly from the library.
Acceptance Criteria:
Users can upload and manage media files in a centralized library.
Tags can be added to media files, and users can search by tags.

Media Library Management

Description: Implement a robust media library for managing and organizing digital assets.

Tasks to Accomplish:

Create a Media model and associated database table
Implement file upload and storage functionality
Develop an interface for browsing, searching, and managing media files
Integrate media library with the content editor
Acceptance Criteria:

Users can upload, organize, and manage media files
The media library provides search and filtering capabilities
Media files can be easily inserted into content through the editor
The system supports various file types (images, videos, documents, etc.)

Content Revision History and Comparison

Description: Implement a detailed revision history system with content comparison.

Tasks to Accomplish:

Extend the Content model to store revision history
Implement a system for creating and managing content revisions
Develop an interface for viewing revision history
Create a visual diff tool for comparing content versions
Acceptance Criteria:

The system automatically creates revisions when content is edited
Users can view a detailed revision history for each piece of content
A visual diff tool allows for easy comparison between versions
Users can revert to previous versions of content

PHPUnit testing issue

Details

The Unit Tests that are run during the installation process fail due to them not using the DB configuration from the .env file.

Here is 2 errors from the laravel.log file right after installing.

[2024-07-24 00:00:03] testing.ERROR: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (Connection: mysql, SQL: select * from posts where is_featured = 1) {"exception":"[object] (Illuminate\Database\QueryException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (Connection: mysql, SQL: select * from posts where is_featured = 1) at /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php:813)
[stacktrace]
#0 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(767): Illuminate\Database\Connection->runQueryCallback()
#1 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\Database\Connection->run()
#2 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2996): Illuminate\Database\Connection->select()
#3 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2981): Illuminate\Database\Query\Builder->runSelect()
#4 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3569): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#5 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2980): Illuminate\Database\Query\Builder->onceWithColumns()
#6 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(759): Illuminate\Database\Query\Builder->get()
#7 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(741): Illuminate\Database\Eloquent\Builder->getModels()
#8 /var/www/html/cms-laravel/app/Http/Livewire/Homepage.php(19): Illuminate\Database\Eloquent\Builder->get()
#9 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Http\Livewire\Homepage->mount()
#10 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#11 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#12 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#13 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Wrapped.php(23): Illuminate\Container\BoundMethod::call()
#14 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php(134): Livewire\Wrapped->__call()
#15 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php(20): Livewire\Features\SupportLifecycleHooks\SupportLifecycleHooks->callHook()
#16 /var/www/html/cms-laravel/vendor/livewire/livewire/src/ComponentHook.php(19): Livewire\Features\SupportLifecycleHooks\SupportLifecycleHooks->mount()
#17 /var/www/html/cms-laravel/vendor/livewire/livewire/src/ComponentHookRegistry.php(45): Livewire\ComponentHook->callMount()
#18 /var/www/html/cms-laravel/vendor/livewire/livewire/src/EventBus.php(60): Livewire\ComponentHookRegistry::Livewire\{closure}()
#19 /var/www/html/cms-laravel/vendor/livewire/livewire/src/helpers.php(98): Livewire\EventBus->trigger()
#20 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Mechanisms/HandleComponents/HandleComponents.php(50): Livewire\trigger()
#21 /var/www/html/cms-laravel/vendor/livewire/livewire/src/LivewireManager.php(73): Livewire\Mechanisms\HandleComponents\HandleComponents->mount()
#22 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php(17): Livewire\LivewireManager->mount()
#23 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php(117): Livewire\Component->Livewire\Features\SupportPageComponents\{closure}()
#24 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php(14): Livewire\Features\SupportPageComponents\SupportPageComponents::interceptTheRenderOfTheComponentAndRetreiveTheLayoutConfiguration()
#25 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): Livewire\Component->__invoke()
#26 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\ControllerDispatcher->dispatch()
#27 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(206): Illuminate\Routing\Route->runController()
#28 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\Routing\Route->run()
#29 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#30 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#32 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(88): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#34 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#36 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#38 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Session\Middleware\StartSession->handle()
#39 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#41 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#43 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\Pipeline\Pipeline->then()
#45 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\Routing\Router->runRouteWithinStack()
#46 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\Routing\Router->runRoute()
#47 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\Routing\Router->dispatchToRoute()
#48 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch()
#49 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#50 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle()
#52 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#53 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#54 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#55 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#56 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#57 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#58 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#59 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\ValidatePostSize->handle()
#60 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#62 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#63 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\HandleCors->handle()
#64 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#65 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\TrustProxies->handle()
#66 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#67 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then()
#68 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#69 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(578): Illuminate\Foundation\Http\Kernel->handle()
#70 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(339): Illuminate\Foundation\Testing\TestCase->call()
#71 /var/www/html/cms-laravel/tests/Feature/ExampleTest.php(15): Illuminate\Foundation\Testing\TestCase->get()
#72 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(1201): Tests\Feature\ExampleTest->test_the_application_returns_a_successful_response()
#73 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(498): PHPUnit\Framework\TestCase->runTest()
#74 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(84): PHPUnit\Framework\TestCase->runBare()
#75 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(349): PHPUnit\Framework\TestRunner->run()
#76 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestCase->run()
#77 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestSuite->run()
#78 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestSuite->run()
#79 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(62): PHPUnit\Framework\TestSuite->run()
#80 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/TextUI/Application.php(201): PHPUnit\TextUI\TestRunner->run()
#81 /var/www/html/cms-laravel/vendor/phpunit/phpunit/phpunit(104): PHPUnit\TextUI\Application->run()
#82 /var/www/html/cms-laravel/vendor/bin/phpunit(122): include('...')
#83 {main}

[previous exception] [object] (PDOException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) at /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65)
[stacktrace]
#0 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(65): PDO->__construct()
#1 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\Database\Connectors\Connector->createPdoConnection()
#2 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\Database\Connectors\Connector->createConnection()
#3 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(185): Illuminate\Database\Connectors\MySqlConnector->connect()
#4 [internal function]: Illuminate\Database\Connectors\ConnectionFactory->Illuminate\Database\Connectors\{closure}()
#5 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1219): call_user_func()
#6 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1255): Illuminate\Database\Connection->getPdo()
#7 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(512): Illuminate\Database\Connection->getReadPdo()
#8 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(407): Illuminate\Database\Connection->getPdoForSelect()
#9 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(800): Illuminate\Database\Connection->Illuminate\Database\{closure}()
#10 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(767): Illuminate\Database\Connection->runQueryCallback()
#11 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\Database\Connection->run()
#12 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2996): Illuminate\Database\Connection->select()
#13 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2981): Illuminate\Database\Query\Builder->runSelect()
#14 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3569): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#15 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2980): Illuminate\Database\Query\Builder->onceWithColumns()
#16 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(759): Illuminate\Database\Query\Builder->get()
#17 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(741): Illuminate\Database\Eloquent\Builder->getModels()
#18 /var/www/html/cms-laravel/app/Http/Livewire/Homepage.php(19): Illuminate\Database\Eloquent\Builder->get()
#19 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Http\Livewire\Homepage->mount()
#20 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#21 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#22 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#23 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Wrapped.php(23): Illuminate\Container\BoundMethod::call()
#24 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php(134): Livewire\Wrapped->__call()
#25 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php(20): Livewire\Features\SupportLifecycleHooks\SupportLifecycleHooks->callHook()
#26 /var/www/html/cms-laravel/vendor/livewire/livewire/src/ComponentHook.php(19): Livewire\Features\SupportLifecycleHooks\SupportLifecycleHooks->mount()
#27 /var/www/html/cms-laravel/vendor/livewire/livewire/src/ComponentHookRegistry.php(45): Livewire\ComponentHook->callMount()
#28 /var/www/html/cms-laravel/vendor/livewire/livewire/src/EventBus.php(60): Livewire\ComponentHookRegistry::Livewire\{closure}()
#29 /var/www/html/cms-laravel/vendor/livewire/livewire/src/helpers.php(98): Livewire\EventBus->trigger()
#30 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Mechanisms/HandleComponents/HandleComponents.php(50): Livewire\trigger()
#31 /var/www/html/cms-laravel/vendor/livewire/livewire/src/LivewireManager.php(73): Livewire\Mechanisms\HandleComponents\HandleComponents->mount()
#32 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php(17): Livewire\LivewireManager->mount()
#33 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php(117): Livewire\Component->Livewire\Features\SupportPageComponents\{closure}()
#34 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php(14): Livewire\Features\SupportPageComponents\SupportPageComponents::interceptTheRenderOfTheComponentAndRetreiveTheLayoutConfiguration()
#35 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): Livewire\Component->__invoke()
#36 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\ControllerDispatcher->dispatch()
#37 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(206): Illuminate\Routing\Route->runController()
#38 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\Routing\Route->run()
#39 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#40 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#42 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(88): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#44 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#46 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#48 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Session\Middleware\StartSession->handle()
#49 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#50 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#51 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#52 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#53 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#54 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\Pipeline\Pipeline->then()
#55 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\Routing\Router->runRouteWithinStack()
#56 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\Routing\Router->runRoute()
#57 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\Routing\Router->dispatchToRoute()
#58 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch()
#59 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#60 /var/www/html/cms-laravel/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle()
#62 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#63 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#64 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#65 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#66 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#67 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#68 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#69 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\ValidatePostSize->handle()
#70 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#71 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#72 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#73 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\HandleCors->handle()
#74 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#75 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\TrustProxies->handle()
#76 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#77 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then()
#78 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#79 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(578): Illuminate\Foundation\Http\Kernel->handle()
#80 /var/www/html/cms-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(339): Illuminate\Foundation\Testing\TestCase->call()
#81 /var/www/html/cms-laravel/tests/Feature/ExampleTest.php(15): Illuminate\Foundation\Testing\TestCase->get()
#82 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(1201): Tests\Feature\ExampleTest->test_the_application_returns_a_successful_response()
#83 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(498): PHPUnit\Framework\TestCase->runTest()
#84 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(84): PHPUnit\Framework\TestCase->runBare()
#85 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(349): PHPUnit\Framework\TestRunner->run()
#86 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestCase->run()
#87 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestSuite->run()
#88 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/Framework/TestSuite.php(408): PHPUnit\Framework\TestSuite->run()
#89 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(62): PHPUnit\Framework\TestSuite->run()
#90 /var/www/html/cms-laravel/vendor/phpunit/phpunit/src/TextUI/Application.php(201): PHPUnit\TextUI\TestRunner->run()
#91 /var/www/html/cms-laravel/vendor/phpunit/phpunit/phpunit(104): PHPUnit\TextUI\Application->run()
#92 /var/www/html/cms-laravel/vendor/bin/phpunit(122): include('...')
#93 {main}
"}

SEO Tools Integration

Description: Integrate SEO tools to help content creators optimize their content for search engines.

Tasks:
Develop an SEO settings panel within the content editor.
Include fields for meta titles, descriptions, and keywords.
Provide real-time SEO analysis and suggestions.
Acceptance Criteria:
Users can add and edit SEO metadata for each content piece.
Real-time feedback on SEO performance is provided during content creation.

Social Media Integration

Description: Implement comprehensive social media integration for content sharing and analytics.

Tasks to Accomplish:

Add social media sharing buttons to content pages
Implement automatic social media posting for new content
Create a social media dashboard for tracking shares and engagement
Develop a system for pulling social media feeds into the website
Acceptance Criteria:

Content pages include easy-to-use social media sharing buttons
New content can be automatically shared on connected social media accounts
A dashboard displays social media engagement metrics
Social media feeds can be displayed on the website

Feature: Introduce Multi-Language Support

Description:

  • Enable multi-language support within Liberu CMS to cater to international audiences and facilitate content localization.

Tasks:

  • Implement language management features to support content translation.
  • Develop UI components for selecting and displaying content in different languages.
  • Test multi-language support to ensure seamless integration and functionality.

Acceptance Criteria:

  • Users can create and manage content in multiple languages, with language-specific content displayed correctly.

Feature: Implement Real-Time Content Preview with Livewire

Description:

  • Introduce real-time content preview capabilities using Livewire to allow creators to preview changes dynamically before publishing.

Tasks:

  • Develop Livewire components to provide instant previews of content edits.
  • Ensure synchronization between the preview and actual content display.
  • Test real-time preview functionality across different content types and editing scenarios.

Acceptance Criteria:

  • Content creators can see immediate, accurate previews of their edits before finalizing content updates.

Newsletter and Email Campaign Management

Description: Implement a newsletter system with email campaign management.

Tasks to Accomplish:

Create models for managing subscribers and email campaigns
Implement a subscription system for website visitors
Develop an interface for creating and sending email campaigns
Integrate with an email delivery service (e.g., Mailgun, SendGrid)
Acceptance Criteria:

Website visitors can subscribe to newsletters
Administrators can create and manage email campaigns
Emails can be scheduled for future sending
The system provides basic analytics for email campaigns (open rates, click rates)

Bug: Resolve Cross-Browser Compatibility Issues

Description:

  • Fix layout and functionality issues across different web browsers to ensure consistent user experience and accessibility.

Tasks:

  • Identify CSS and JavaScript conflicts causing browser-specific issues.
  • Apply fixes and adjustments to ensure compatibility with major web browsers.
  • Test across browsers and devices to confirm consistent functionality and appearance.

Acceptance Criteria:

  • Liberu CMS functions correctly and displays consistently across Chrome, Firefox, Safari, and Edge.

Feature: Integrate Content Versioning and Revision History

Description:

  • Develop a version control system to track changes and revisions made to content, allowing users to revert to previous versions if needed.

Tasks:

  • Implement versioning logic to store and retrieve content revisions.
  • Design UI components to display revision history and enable rollback functionality.
  • Test versioning system to ensure accuracy and reliability of content history tracking.

Acceptance Criteria:

  • Users can view, compare, and restore previous versions of content as necessary.

Sweep: create a home page

Details

Create a responsive blog style home page with separate header, navigation and footer blade components sections. Show featured posts. Make use of livewire 3

Checklist
  • Create app/Http/Livewire/Homepage.php โœ“ f4eafed Edit
  • Running GitHub Actions for app/Http/Livewire/Homepage.php โœ“ Edit
  • Create resources/views/livewire/homepage.blade.php โœ“ 01f84a8 Edit
  • Running GitHub Actions for resources/views/livewire/homepage.blade.php โœ“ Edit
  • Create app/Http/Livewire/Header.php โœ“ 5562315 Edit
  • Running GitHub Actions for app/Http/Livewire/Header.php โœ“ Edit
  • Create resources/views/livewire/header.blade.php โœ“ e0ca2dd Edit
  • Running GitHub Actions for resources/views/livewire/header.blade.php โœ“ Edit
  • Create app/Http/Livewire/Navigation.php โœ“ 0407ffd Edit
  • Running GitHub Actions for app/Http/Livewire/Navigation.php โœ“ Edit
  • Create resources/views/livewire/navigation.blade.php โœ“ ed8274b Edit
  • Running GitHub Actions for resources/views/livewire/navigation.blade.php โœ“ Edit
  • Create app/Http/Livewire/Footer.php โœ“ 4a4fd2b Edit
  • Running GitHub Actions for app/Http/Livewire/Footer.php โœ“ Edit
  • Create resources/views/livewire/footer.blade.php โœ“ fc3bf21 Edit
  • Running GitHub Actions for resources/views/livewire/footer.blade.php โœ“ Edit
  • Modify routes/web.php โœ“ 0df5f5a Edit
  • Running GitHub Actions for routes/web.php โœ“ Edit

Custom Forms Builder

Description: Implement a drag-and-drop form builder for creating custom forms.

Tasks to Accomplish:

Develop a library of form elements (text fields, checkboxes, dropdowns, etc.)
Implement drag-and-drop functionality for form creation
Create a system for form submission and data storage
Implement form analytics and reporting
Acceptance Criteria:

Users can create custom forms using a drag-and-drop interface
A variety of form elements are available for use
Form submissions are stored and can be exported
Basic analytics are provided for form submissions

Content Drafts and Autosave

Description: Allow users to save content as drafts with an autosave feature to prevent data loss.

Tasks:
Develop a draft-saving mechanism in the content creation interface.
Implement an autosave feature using Livewire 3 for real-time data saving.
Provide a "Save as Draft" and "Publish" button.
Acceptance Criteria:
Users can save content as drafts and revisit them later.
Autosave occurs automatically at regular intervals, preserving content progress.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.