- A fully-featured online shop built with Django that implements essential e-commerce functionalities.
- Customers can browse products, add them to carts, apply discounts, checkout securely, and receive invoices.
- A recommendation engine suggests relevant products, and internationalization enables multi-language support
- Create and manage a comprehensive product catalog with rich details.
- Utilize Django sessions for a seamless shopping cart experience.
- Implement a custom context processor for convenient cart access across views.
- Allow customers to finalize purchases and track order history.
- Asynchronous Tasks with Celery and RabbitMQ:
- Configure Celery for background tasks like sending notifications.
- Leverage RabbitMQ as a message broker for efficient task management.
- Send automated email or SMS notifications to customers about orders, discounts, etc. (Integration with a notification service would be needed)
- Monitor Celery task execution and performance using Flower's web interface.
- Integrate the Stripe payment gateway for secure credit card processing.
- Handle payment notifications for seamless transaction confirmation.
- Export orders to CSV files for easy data analysis and management.
- Create custom views for a user-friendly admin interface.
- Generate PDF invoices with essential order details.
- Create and manage coupons for discounts.
- Apply coupons to shopping carts and orders for flexible promotions.
- Support coupon creation for Stripe Checkout (if needed)
- Build a product recommendation engine with Redis to enhance customer engagement.
-
Prerequisites
- Python (https://www.python.org/downloads/)
- RabbitMQ (https://www.rabbitmq.com/)
- Celery (https://docs.celeryq.dev/)
- Flower (https://flower.readthedocs.io/)
- Stripe account (https://stripe.com/) (for payment processing)
-
Clone Repository:
git clone https://github.com/omarraafat14/myshop.git
-
Set Up Environment:
cd myshop source env/bin/activate pip install -r requirements.txt python manage.py migrate
- Note: Create a .env file to store sensitive information like Stripe API keys and database credentials (refer to Django documentation for details).
-
Run RabbitMQ:
- (Optional for asynchronous tasks with Celery)
docker pull rabbitmq docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
-
Start Celery Worker:
celery -A <project-name> worker -l info
-
Monitor Celery (optional):
celery -A myshop flower
- This opens Flower's web interface (usually at http://localhost:5555) for monitoring Celery tasks.
-
Run Redis for product recommendation:
docker run -it --rm --name redis -p 6379:6379 redis
-
Start the Django development server:
python manage.py runserver
-
Explore the app's functionalities using the admin panel and frontend.