Skip to content

UniMart by EvoQ API is a tool that allows developers to integrate e-commerce features like product management, inventory control, order processing, and customer data management into their applications or websites, making it easier to run online stores.

License

Notifications You must be signed in to change notification settings

tigran-saatchyan/UniMart_by_EvoQ

Repository files navigation

UniMart by EvoQ
Your Personal Shopping Companion

E-Commerce API MVP

License Telegram Support me on Paypal Support me on Paypal

Table of Contents

Background / Overview

UniMart by EvoQ API is a tool that allows developers to integrate e-commerce features like product management, inventory control, order processing, and customer data management into their applications or websites, making it easier to run online stores.

Features

Effortless Registration, Exclusive Access

  • Swift Onboarding:

    • Join UniMart with a breeze using your Full Name, Email, and Phone – setting up your account in moments.
  • Exclusive Shopping Experience:

    • Gain access to a world of curated products tailor-made for our authorized users.

Smart Shopping with UniMart Basket

  • Intelligent Cart Management:

    • UniMart Basket, your intelligent shopping companion, adapts to your preferences seamlessly.
  • Quick Checkout:

    • Add, remove, or clear items with a single click – making your shopping journey smooth and enjoyable.

Real-Time Product Discovery

  • Diverse Product Range:

    • Explore a diverse range of products that cater to your unique tastes and needs.
  • Stay Informed:

    • Receive real-time updates on product additions and updates, ensuring you never miss out.

Secure and User-Friendly Authentication

  • Effortless Login:

    • Swiftly access UniMart using your Email or Phone, accompanied by a secure password.
  • Authenticated Perks:

    • Unlock a world of benefits with exclusive access to our curated product list.

Technical Brilliance for a Seamless Experience

  • Blazing-Fast Speed:

    • UniMart leverages asynchronous processes, ensuring a swift and responsive shopping experience.
  • Secure Identity Handling:

    • Your identity is protected with robust Bearer Tokens or JWT authentication.

UniMart by EvoQ - Elevating Your Shopping Experience to New Heights!

Prerequisites

You will need the following installed on your computer.

Installation

Let's go through the steps to run the project "UniMart_by_EvoQ".

  1. Clone the Repository:

    git clone [email protected]:tigran-saatchyan/UniMart_by_EvoQ.git
  2. Navigate to Project Directory:

    cd UniMart_by_EvoQ
  3. Install Poetry:

    • If you haven't installed Poetry yet, please follow the instructions on the official website: https://python-poetry.org/docs/#installation
    • If you have Poetry installed, you can use the following command to activate Python 3.12 for the project:
      poetry env use python3.12
  4. Install Project Dependencies:

    poetry install
  5. Activate Virtual Environment:

    poetry shell
  6. Create Database:

     createdb --host=POSTGRES_HOST --port=POSTGRES_PORT --username=POSTGRES_USER POSTGRES_DB
    • Note: Don't forget to rename .env.sample and replace the values with your own.
    • Note: If you are using the default PostgreSQL settings, you can use the following command:
      createdb --host=localhost --port=5432 --username=postgres unimart_db
  7. Run Migrations:

    alembic upgrade head
  8. Run the Project:

    uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
  9. Testing:

    • Create a test database:

      createdb --host=TEST_POSTGRES_HOST --port=TEST_POSTGRES_PORT --username=TEST_POSTGRES_USER TEST_POSTGRES_DB
      • Note: Don't forget to replace the values with your own and put them in the .env.test file.
    • You can run tests by using the following command:

      poetry run pytest
    • If you want to run the tests with coverage, you can use:

      poetry run pytest --cov=app tests/
    • If you want to run the tests with coverage and generate a report, you can use:

      poetry run pytest --cov=app tests/ --cov-report=html && open htmlcov/index.html

Please note that the success of these steps depends on the project's structure and requirements. If there are additional steps or specific configurations needed, consult the project's documentation or README.

Structure / Scaffolding

               =========                  Tigran Saatchyan ~ git version 2.34.1
            ===============               -------------------------------------
           =================              Project: UniMart_by_EvoQ (2 branches)
          ===  ==============
          ===================             Created: 5 days ago
                   ==========             Language:
   ========================== =======               ● Python (100.0 %)
 ============================ ========    Authors: 100% Tigran Saatchyan
============================= =========   URL: [email protected]:tigran-saatchyan/UniMart_by_EvoQ.git
============================ ==========
========== ============================
========= =============================   Lines of code: 1369
 ======== ============================    Size: 244.97 KiB (60 files)
  ======= ==========================      License: MIT
          ==========
          ===================
          ==============  ===
           =================
            ===============
               =========


Project Structure
UniMart_by_EvoQ
app
├── __init__.py
├── api
│  ├── __init__.py
│  └── v1
│     ├── __init__.py
│     ├── auth.py
│     ├── cart.py
│     ├── dependencies.py
│     ├── products.py
│     └── routers.py
├── db
│  ├── __init__.py
│  └── db.py
├── main.py
├── migrations
│  ├── env.py
│  ├── README
│  ├── script.py.mako
│  └── versions
├── models
│  ├── __init__.py
│  ├── base_model.py
│  ├── cart.py
│  ├── products.py
│  └── users.py
├── repositories
│  ├── __init__.py
│  ├── cart.py
│  ├── products.py
│  ├── repository.py
│  └── users.py
├── schemas
│  ├── __init__.py
│  ├── cart.py
│  ├── products.py
│  └── users.py
├── services
│  ├── __init__.py
│  ├── cart.py
│  ├── managers.py
│  ├── products.py
│  └── validators.py
├── settings
│  ├── __init__.py
│  ├── auth.py
│  └── config.py
└── utils
   ├── __init__.py
   ├── factories.py
   ├── unitofwork.py
   └── utils.py


Note: The scaffolding was generated with tree.

Documentation

Dependencies

List of dependencies used in the project

Main Libraries Other Libraries
Python Badge Alembic
FastAPI asyncpg
SQLAlchemy pytest
Alembic pytest
pytest
pytest
pytest
pytest

Release History

Actual version: Dynamic TOML Badge

Changelog

Detailed changes for each release will be documented in the release notes.

Issues

open close

Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately.

Bugs

If you have questions, feature requests or a bug you want to report, please click here to file an issue.

Translations

  • 🇷🇺 Russian/Русский

Authors

See also the list of contributors who participated in this project.

Acknowledgments

This project would not have been possible without the help and advice of many contributors and the tremendous support of each of you.

Contact Us:

  • Discord: Discord

Support

Like what you see? Keep me awake at night by buying me a coffee or two.

Buy Me A Book

License

Copyright (c) 2023 Tigran Saatchyan.

Usage is provided under the MIT License. See LICENSE for the full details.

About

UniMart by EvoQ API is a tool that allows developers to integrate e-commerce features like product management, inventory control, order processing, and customer data management into their applications or websites, making it easier to run online stores.

Topics

Resources

License

Stars

Watchers

Forks