Giter VIP home page Giter VIP logo

pbay's Introduction




Welcome to pBay: Your Ultimate Online Marketplace

Hey there, curious minds and tech enthusiasts! Get ready to explore pBay, a passion project that's a blend of innovation, self-challenge, and community spirit. ๐Ÿš€

A Personal Journey

At pBay, I've embarked on a thrilling journey of self-challenge and skill honing. This project isn't just an E-commerce Web App โ€“ it's a testament to my determination to push boundaries and explore the fascinating world of full-stack development.

Features

  • Based on Django 4
  • login / logout, register
  • Verify registration with OTP code
  • automatically remove expired OTP with Celery Beat
  • completely custom user model
  • Groups & Permissions
  • products show by category
  • media stored in Object Storage
  • Admin can see and delete or download items in object storage
  • actions on object storage items run asynchronously with celery
  • Cashing system with Redis
  • separate product details page
  • user can add product to cart
  • add/remove items from cart handled by Session
  • Bill and Checkout page
  • Orders model
  • discount feature based on coupon
  • ckeditor for product description
  • use environment variable to manage credentials
  • search mechanism
  • Dockerized whole project
  • manage celery and celery beat with supervisord
  • order manager page
  • add delivery methods
  • add seller role to add/remove new product
  • better bootstrap theme

Requirements

- python version > 3.8
- docker

Run Locally

Step 1 : create a new virtualenv and install requirements.

$ pip install -r requirements.txt

Step 2 : rename .env.example to .env

$ mv .env.example .env

Step 3 : to use OTP code verification create an account in kavenegar and put your API Key in .env.

you need some KYC verification to use API completely

KAVENEGAR_OTP_SECRET="put your secret here"

Step 4 : if you want to store your media files in object storages (like aws, ...) set USE_ARVAN_BUCKET in environment file to True and set other secret keys.

for this project i used Arvan Cloud object storage called bucket. since it uses boto3 you can use any other object storage you want without any changes.

USE_ARVAN_BUCKET="True"
ARVAN_ACCESS_KEY_ID='put your keys here'
ARVAN_SECRET_ACCESS_KEY='put your keys here'
ARVAN_ENDPOINT_URL='put your keys here'
ARVAN_STORAGE_BUCKET_NAME='put your keys here'

Step 5 : go to docker_compose_files directory and run Redis and RabbitMQ containers.

$ docker compose up -d

Step 6 : run celery and celery beat.

$ celery -A config worker -l info
$ celery -A config beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler

Step 7 : run django and reach whole project in http://localhost:8000/.

$ python manage.py runserver

you can use db.sqlite3 DB that is in this project. if you use it, the user and pass for admin test user is admin and 12345. some product are available within it.

NOTE : All credential in this project is for testing purpose DO NOT use it for production.

Screenshots

Home Page

home

Product Details

product

Cart

cart

Checkout & Bill

checkout

Order

order

Bucket Manager

bucket

Contribution

Give a โญ๏ธ if you find pBay intriguing, share your insights, and let's keep the conversation alive. Contributions are very welcome.

You can help this project by Donating

BuyMeACoffee

License

Made by โค๏ธ under MIT license.

pbay's People

Contributors

abysswarrior avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.