Nightingale Shop is a modern e-commerce platform built using Laravel PHP framework. This platform provides a seamless shopping experience for users and includes robust features for administrators and vendors to manage the online store efficiently.
- Features
- Requirements
- Installation
- Configuration
- Usage
- Technologies Used
- What I Learned - Challenging Aspects of the Project
- License
- Screenshots
- User Authentication: Secure registration and login for users.
- User Profile: Users can update their profile infos, can add, update, delete their addresses or can see roles given to them.
- Product Management: Add, edit, delete, and view products.
- Shopping Cart: Add products to the cart, update quantities, and proceed to checkout.
- Order Management: Users can view order history, and admins can manage orders.
- Review Management: Users can review products and edit reviews, admins can delete the reviews.
- Support Request: Users can create request and complaint about brand, product, order, another users review, site features etc.
- Search and Filter: Users can search for products and apply filters.
- Responsive Design: Mobile-friendly interface using Bootstrap.
- Payment Integration: Integrated with Iyzico for secure payments.
- Real-Time Notifications: Utilized php-flasher for toast notifications.
- User Observers: Laravel observes registeration process and when new user comes in to the shop, laravel automatically appends a customer role to the user, creates a notification for welcoming and gifts a welcome coupon that can used in later purchaces.
- PHP 8.2 or higher
- Composer
- Node.js and npm
- MySQL database
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/frknslck/ip-2.git cd ip-2 -
Install dependencies:
composer install npm install
-
Set up the environment file:
cp .env.example .env
Configure the
.envfile with your database, mail, and other settings. -
Generate the application key:
php artisan key:generate
-
Run migrations and seeders:
php artisan migrate --seed
-
Start the development server:
php artisan serve
Visit
http://127.0.0.1:8000in your browser.
- Environment Variables: Ensure all necessary variables in
.envare set correctly (e.g., database credentials, mail configurations). IYZICO CONFIGURATIONS ARE CRUCIAL FOR ONLINE PAYMENT SYSTEM so please create your iyzico shop and enter your api keys to the env file. - Storage Link: Create a symbolic link for file storage:
php artisan storage:link
If you forked/downloaded this project, firstly you may want to change the UserSeeder in database/seeders for changing the values to your comfy user login values and then you can do whatever you want, you can use this site like a regular customer, or can do your job as an admin and manipulate the shops database values in action page.
If you don't want to deal with that situation
Default Created Admin User:
email: admin@gmail.com
password: admin12345
Default Created Corporation User:
email: nike@gmail.com
password: nike12345
Default Created Blogger User:
email: blogger@gmail.com
password: blogger12345
- Backend: Laravel 11
- Frontend: Bootstrap 5, Blade Templates
- Database: MySQL
- Payment Gateway: Iyzico
- Notifications: php-flasher with toastr integration
- Authentication: Laravel Breeze
- Version Control: Git
- Mastered Laravel's ecosystem, including Eloquent ORM, MVC architecture, and database configurations.
- Designed and implemented a complete e-commerce platform from scratch.
- Integrated secure payment processing (using Iyzico's sandbox, with plans to explore other payment systems).
- Implemented robust user authentication, role-based access control, and permission management.
- Enhanced database design and optimization skills for improved performance.
- Gained practical experience in RESTful API development and consumption.
- Developed project management and planning skills for large-scale web applications.
- Learned to implement and customize third-party packages to extend functionality.
- Improved front-end skills, creating responsive designs with Bootstrap and dynamic UIs with JavaScript.
- Gained experience in handling complex business logic specific to e-commerce (inventory, orders, reviews).
- Understanding and implementing model relationships and their dynamic properties in Laravel:
- Grasping the concept of Eloquent relationships (One-to-Many, Many-to-Many, etc.)
- Learning the use of dynamic properties for accessing related data (e.g., $product->variants)
- Learning to efficiently query and eager load related data to avoid N+1 query problems
- Designing a scalable database schema that accommodates complex e-commerce requirements
- Implementing and managing state throughout the application, especially for the checkout process
- Ensuring data integrity and consistency across related models and database tables
This project is licensed under the MIT License. See the LICENSE file for more details.
This project is developed by Furkan Bülbül Github->.
























