Skip to content

smlrods/CRM

Repository files navigation

Laravel CRM Project

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.

Table of Contents

Project Overview

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.

Requirements

  • PHP >= 8.1
  • Composer
  • MySQL
  • Node.js and npm

Installation

  1. Clone the project repository:
git clone https://github.com/smlrods/CRM.git
  1. Enter the project directory:
cd CRM
  1. Install the Composer dependencies:
composer install
  1. Install the npm dependencies:
npm install
  1. Create a .env file from the provided .env.example file:
cp .env.example .env
  1. Generate the application key:
php artisan key:generate
  1. Migrate the database:
php artisan migrate
  1. Seed the database with sample data (optional):
php artisan db:seed

Getting Started

  1. Start the development server:
php artisan serve
  1. Start the Vite dev server:
npm run dev
  1. The application will be available at http://localhost:8000

Project Structure

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.

Dependencies

This project relies on several dependencies for its functionality:

PHP and Composer Dependencies

  • 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.

JavaScript and Node.js 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.

Database Schema

Database Schema

MVC Pattern

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.

Testing

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

Purpose of the Project

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.

Contributing

We welcome contributions to this project.

License

This project is licensed under the MIT License. Please see the LICENSE file for more information.

About

Customer Relationship Management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published