Schon — your store without the extra baggage. https://schon.io
Find a file
Egor fureunoir Gorbunov a2f9ae8693 Features: 1) Rename _BaseDoc to BaseDocument for clarity and consistency; 2) Expose _add_multilang_fields as add_multilang_fields for broader use;
Fixes: 1) Correct `name_ngram` search analyzer in `PostDocument` to `icu_query`;

Extra: 1) Update import paths and references following renaming of `BaseDocument` and `add_multilang_fields`.
2025-08-20 06:22:34 +03:00
.idea Features: 1) Replace email templates' header image from favicon.png to logo.png; 2) Add Django facet configuration in .idea/evibes.iml; 2025-07-23 07:39:24 +03:00
blog Features: 1) Rename _BaseDoc to BaseDocument for clarity and consistency; 2) Expose _add_multilang_fields as add_multilang_fields for broader use; 2025-08-20 06:22:34 +03:00
core Features: 1) Rename _BaseDoc to BaseDocument for clarity and consistency; 2) Expose _add_multilang_fields as add_multilang_fields for broader use; 2025-08-20 06:22:34 +03:00
Dockerfiles Features: 1) Add new make-messages.ps1 and compile-messages.ps1 scripts for Windows localization workflow; 2) Update Docker ENTRYPOINT scripts to use bash for app, worker, stock_updater, and beat containers; 3) Bump project version to 2.9.1 in pyproject.toml and settings; 2025-07-03 18:33:37 +03:00
evibes Features: 1) Add SEO meta utilities and builder functions for schemas; 2) Implement SEO-related APIs in viewsets for categories, brands, and products; 3) Add SeoMeta model and serializer to manage SEO metadata. 2025-08-18 14:26:09 +03:00
monitoring Fixes: 1) Correct metrics path in Prometheus configuration. 2025-06-22 15:09:36 +03:00
payments Features: 1) Add SEO meta utilities and builder functions for schemas; 2) Implement SEO-related APIs in viewsets for categories, brands, and products; 3) Add SeoMeta model and serializer to manage SEO metadata. 2025-08-18 14:26:09 +03:00
scripts Features: 1) Add brand_name and category_name fields to ProductDocument for enhanced search indexing; 2) Introduce expanded ICU-based analyzers for multi-language support, including Arabic, Indic, and CJK; 3) Enable search enhancements with revised weights in SMART_FIELDS and additional language-specific query mappings. 2025-08-20 05:36:55 +03:00
storefront Features: 1) Add .gitkeep file under storefront directory; 2025-06-27 04:28:58 +03:00
vibes_auth Features: 1) Add include_personal_ordered filter to handle personal orders; 2) Modify ordering filters to support annotation of price using Coalesce and Max; 2025-08-20 05:00:55 +03:00
.dockerignore Features: 1) Introduced AddressFilter and AddressType to enable filtering and querying addresses via GraphQL; 2) Added resolve_addresses method with permission check in GraphQL schema; 3) Updated DRF settings to improve API documentation structure. 2025-07-12 18:49:25 +03:00
.gitignore Features: 1) Add .idea/evibes.ico to version control; 2025-07-18 19:55:26 +03:00
CODEOWNERS Features: 1) Consolidated Dockerfile owners under @@maintainer for clarity; 2025-06-27 04:20:13 +03:00
docker-compose.yml Features: None; 2025-08-05 10:31:45 +03:00
LICENSE Initial Commit 2025-04-29 22:40:30 +03:00
manage.py Initial Commit 2025-04-29 22:40:30 +03:00
nginx Features: 1) Replace variables with static values for domain, backend, and frontend paths in Nginx configuration; 2) Update root paths for consistency with static and Nuxt frontend integration; 2025-06-19 12:19:09 +03:00
poetry.lock Features: 1) Update rpds-py package version from 0.25.1 to 0.26.0 for updated functionality; 2025-07-02 01:37:24 +03:00
pyproject.toml Features: 1) Add SEO meta utilities and builder functions for schemas; 2) Implement SEO-related APIs in viewsets for categories, brands, and products; 3) Add SeoMeta model and serializer to manage SEO metadata. 2025-08-18 14:26:09 +03:00
README.md Features: 1) Clarify README instructions on default storefront absence and customization options; 2025-06-27 04:38:25 +03:00

eVibes

LOGO

eVibes is an eCommerce backend service built with Django. Its designed for flexibility, making it ideal for various use cases and learning Django skills. The project is straightforward to customize, allowing for straightforward editing and extension.

Table of Contents

Features

  • Modular Architecture: Extend and customize the backend to fit your needs.
  • Dockerized Deployment: Quick setup and deployment using Docker and Docker Compose.
  • Asynchronous Task Processing: Integrated Celery workers and beat scheduler for background tasks.
  • GraphQL and REST APIs: Supports both GraphQL and RESTful API endpoints.
  • Internationalization: Multilingual support using modeltranslate.
  • Advanced Caching: Utilizes Redis for caching and task queuing.
  • Security: Implements JWT authentication and rate limiting.

Getting Started

Prerequisites

  • Docker and Docker Compose are installed on your machine.

Installation

  1. Clone the repository:

    git clone https://gitlab.com/wiseless.xyz/eVibes.git
    cd eVibes
    
  2. Choose the storefront. By default, main branch has no storefront included. Skip this step if you're OK with that and plan to only use API or develop your own storefront.

    git checkout storefront-<options: nuxt, next, sk, qwik >
    
  3. Generate your .env file. Check and confirm the contents afterward.

    • Windows
      scripts\Windows\generate-environment-file.ps1
      
    • Unix
      scripts/Unix/generate-environment-file.sh
      
  4. Install all the dependencies.

    • Windows
      scripts\Windows\install.ps1
      
    • Unix
      scripts/Unix/install.sh
      
  5. Spin it up.

    • Windows
      scripts\Windows\run.ps1
      
    • Unix
      scripts/Unix/run.sh
      
  6. Bring to production.

    Include nginx file to your nginx configuration, you really want to install and run Certbot afterward!

Configuration

Dockerfile

Remember to change the RUN sed -i 's|https://deb.debian.org/debian|https://ftp.<locale>.debian.org/debian|g' /etc/apt/sources.list.d/debian.sources before running installment scripts

nginx

Please comment-out SSL-related lines, then apply necessary configurations, run certbot --cert-only --nginx, decomment previously commented lines and enjoy eVibes over HTTPS!

.env

After .env file generation, you may want to edit some of its values, such as macroservices` API keys, database password, redis password, etc.

Usage

  • Add the necessary subdomains to DNS-settings of your domain, those are:
  1. @.your-domain.com
  2. www.your-domain.com
  3. api.your-domain.com
  4. b2b.your-domain.com
  5. prometheus.your-domain.com
  • Add these lines to your hosts-file to use django-hosts functionality on localhost(DEVELOPMENT ONLY):
127.0.0.1 api.localhost
127.0.0.1 b2b.localhost

Once the services are up and running, you can access the application at http://api.your-domain.com(http://api.localhost:8000).

  • Django Admin: http://api.your-domain.com/ (will redirect to admin)
  • API Docs:
    • REST API: http://api.localhost:8000/docs/swagger or http://api.localhost:8000/docs/redoc
    • GraphQL API: http://api.localhost:8000/graphql/

Uninstall eVibes

You are not planning to do that, aren't you?

  • Windows
    scripts\Windows\uninstall.ps1
    
  • Unix
    scripts/Unix/uninstall.sh
    

Contact

FAVICON