Welcome to Chill out, your destination for premium, high-end furniture. We offer a curated selection of luxurious pieces designed to enhance the elegance and comfort of your home. Enjoy a seamless shopping experience with our exquisite collection.
URL: Final Advanced Project ChillOut
This project contains the backend (Laravel with PostgreSQL) and frontend (Nuxt 3) for the Final Advanced Project of the Chillout team.
- Laravel: A robust PHP framework for building scalable, secure, and high-performance web applications, offering tools for routing, database migrations, and templating.
- Eloquent ORM: Laravel's built-in Object-Relational Mapping (ORM) that provides an elegant and intuitive way to interact with the database, supporting relationships, query building, and model management.
- Sanctum: A Laravel package for managing API authentication and single-page application (SPA) tokens with simplicity and security.
- Pulse: A Laravel tool for monitoring application health and performance, providing insights into metrics, errors, and system statuses.
- Scout: A Laravel package for adding full-text search functionality to models, supporting integration with search engines like Algolia or Elasticsearch.
- Sentry: A real-time error tracking and monitoring tool that helps developers identify and fix issues in applications, integrated seamlessly with Laravel.
- Scramble: A Laravel utility for generating API documentation dynamically, helping developers create clear and structured documentation directly from their codebase.
- Meilisearch: A fast and modern search engine that integrates easily with Laravel through Scout, providing features like typo tolerance, relevance ranking, and instant search capabilities.
- Telescope: A debugging and monitoring tool for Laravel applications, providing insights into requests, jobs, exceptions, logs, and more, tailored for developers to enhance productivity.
- Slack Webhook: A Laravel feature for sending notifications and alerts to Slack channels, enabling real-time communication about application events, errors, or system updates.
- Laravel Dusk: A browser automation testing tool for simulating user interactions and performing end-to-end tests in a Laravel application.
- Laravel Sail:A lightweight command-line interface for interacting with Docker, providing a simple way to set up and manage a development environment for Laravel applications using Docker containers.
- Nuxt.js: A framework for building server-side rendered Vue.js applications.
- Vue.js: The progressive JavaScript framework for building user interfaces.
- Pinia: A state management library for Vue.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- PrimeVue: A rich set of UI components for Vue.
- Material Design Icons: A collection of free-to-use, community-driven icons.
- SweetAlert2: A beautiful, responsive, customizable, and accessible replacement for JavaScript's popup boxes.
- Lodash: A modern JavaScript utility library delivering modularity, performance, and extras.
- Axios: A JavaScript library for making HTTP requests, offering a simple API with support for Promises, JSON data handling, request cancellation, and easy configuration.
Before running this project, ensure you have the following installed:
Here is our Project Flow Chart:
Click here to download the Flow Chart
There are 2 ways to run the project, and there are 2 branches corresponding to these 2 ways:
We use Laravel Sail to Dockerize the entire Laravel backend, which isolates the development environment, independent of the local machine's environment. It integrates and communicates with other services (PgSQL, Redis, Meilisearch, etc.) through the Docker network, providing a standardized development environment for the entire backend.
Follow README.md in this branch main-backend-docker
-
Clone the repository:
git clone https://github.com/LeTiepTuyen/Final_Advanced_Project_ChillOut.git cd ./backend -
Create a .env file from the example:
cp .env.example .env
-
Install dependencies:
composer install
-
Generate the APP_KEY:
php artisan key:generate
-
Run migrations and seeders:
php artisan migrate --seed
-
Start the Meilisearch by docker: If you don'd have docker, please download on this link and open it.
docker-compose up -d
-
Run laravel queue:
php artisan queue:work
-
Import data to Meilisearch:
php artisan scout:import 'App\Models\Product' -
Start the Laravel Sever:
php artisan serve
-
Navigate to the frontend directory:
cd ./frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
Note: Resetting the database is generally not required unless specifically needed for development purposes.
