This is a Customer Relationship Management (CRM) application built using Laravel. It's designed to help businesses manage customer data, interactions, and more. This project serves as a practical application of Laravel's features and best practices, and was created to improve my Laravel skills.
- Project Overview
- Requirements
- Installation
- Getting Started
- Project Structure
- Dependencies
- Database Schema
- MVC Pattern
- Testing
- Purpose of the Project
- Contributing
- License
This Laravel project provides a foundation for building a CRM application. The project is designed to be modular and extensible, allowing you to easily add new features and functionality.
- PHP >= 8.1
- Composer
- MySQL
- Node.js and npm
- Clone the project repository:
git clone https://github.com/smlrods/CRM.git
- Enter the project directory:
cd CRM
- Install the Composer dependencies:
composer install
- Install the npm dependencies:
npm install
- Create a
.env
file from the provided.env.example
file:
cp .env.example .env
- Generate the application key:
php artisan key:generate
- Migrate the database:
php artisan migrate
- Seed the database with sample data (optional):
php artisan db:seed
- Start the development server:
php artisan serve
- Start the Vite dev server:
npm run dev
- The application will be available at
http://localhost:8000
The project is organized into the following directories:
app
: This directory contains the application logic, including models, controllers, and services.config
: This directory contains configuration files for the application.database
: This directory contains database migrations and seeds.public
: This directory contains the web server's public files, including the front-end assets.resources
: This directory contains resources used by the application, such as views and language files.routes
: This directory contains the routing definitions for the application.storage
: This directory contains application storage, such as logs and uploaded files.tests
: This directory contains unit and feature tests for the application.vendor
: This directory contains third-party dependencies managed by Composer.
This project relies on several dependencies for its functionality:
-
Laravel: This is the main framework used for this project. Laravel is a web application framework with expressive, elegant syntax.
-
PHPUnit: This is the testing framework used for writing unit tests in this project.
-
laravel-permission: This package allows you to manage user permissions and roles in a database.
Please refer to the composer.json
file for a full list of PHP and Composer dependencies.
-
Node.js and npm: These are used for managing JavaScript dependencies and running tasks. Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine, and npm is the package manager for Node.js.
-
Vite: This is a build tool that provides faster and leaner development experience for modern web projects. It is used in this project for managing and bundling the JavaScript resources.
-
Tailwind CSS: This is a utility-first CSS framework for rapidly building custom user interfaces.
-
Flowbite React: Flowbite is a set of utility classes for Tailwind CSS that helps you build web interfaces faster.
-
PostCSS: This is a tool for transforming CSS with JavaScript, and it is used in this project in conjunction with Tailwind CSS and Flowbite.
-
ReactJS: React is the library for web and native user interfaces. Build user interfaces out of individual pieces called components written in JavaScript.
-
InertiaJS: Inertia.js is a JavaScript tool that allows users to build modern single-page apps using classic server-side routing and controllers.
Please refer to the package.json
file for a full list of JavaScript and Node.js dependencies.
The project follows the MVC (Model-View-Controller) pattern. Models represent the data of the application, controllers handle user interaction and business logic, and views render the user interface.
The project includes unit and feature tests for the application logic. You can run the tests using the following command:
cp .env.testing.example .env.testing
npm run build
php artisan test
This project was created as a means to improve my Laravel skills. It serves as a practical application of Laravel's features and best practices. While building this CRM application, I've had the opportunity to explore various aspects of Laravel including routing, middleware, Eloquent ORM, Blade templates, and more. This hands-on experience has significantly contributed to my understanding and proficiency in Laravel.
We welcome contributions to this project.
This project is licensed under the MIT License. Please see the LICENSE file for more information.