Candleaf-clone is an online shop selling exquisite soy candles inspired by the original Candleaf website. The backend is built with Django and the frontend is built with React and Typescript.
- User authentication: Users can create accounts, log in, and log out to access personalized features.
- Product listing: Display a wide range of soy candle products with details such as title, price, and description.
- Product search and filtering: Easily search for specific products and filter them based on various criteria.
- Cart functionality: Users can add products to their cart, update quantities, and proceed to checkout.
- Order management: Admins can manage and process customer orders, update order statuses, and generate invoices.
- Payment integration: Seamlessly integrate payment processing for a smooth checkout experience.
- User reviews and ratings: Users can leave reviews and ratings for products they have purchased.
- Responsive design: Ensure optimal user experience across devices, from desktop to mobile.
You can check the live preview here.
(The preview uses mock server instead of a live Django server,
so some functionalities are limited)
- Clone the repository.
git clone https://github.com/stevelukis/candleaf
- Navigate to the backend directory.
cd candleaf/backend
- Create a Python virtual environment for the backend.
python -m venv venv
- Activate the virtual environment.
cd venv/Scripts
activate
cd ../..
- Install the dependencies for the backend.
pip install -r requirements.txt
- Create an environment file
.env
for the Stripe keys.
STRIPE_PUBLISHABLE_KEY=***your stripe publishable key***
STRIPE_SECRET_KEY=***your secret key***
STRIPE_WEBHOOK_SECRET=***your webhook secret***
- Run the migrations
python manage.py migrate
- Populate the products
python dev/populate_products.py
- Start the backend server
python manage.py runserver
- In a separate terminal, navigate to the frontend directory.
cd candleaf/frontend
- Install frontend dependencies.
pnpm install
Start the frontend server
npm run start
- Django
- Django REST framework
- social-auth-app-django
- pytest
- Stripe
- React
- Typescript
- Axios
- React Query
- Chakra-UI
- Mock Service Worker
Contributions to this project are welcome! If you find any issues or have suggestions for improvements, feel free to open a new issue or submit a pull request. License
This project is licensed under the MIT License.