Halum Hut is a comprehensive e-commerce platform built with Django and Django REST Framework. It provides a robust backend API for managing vendors, products, orders, payments, and user accounts.
- User Authentication: JWT-based authentication with email verification
- Vendor Management: Seller accounts, store profiles, and earnings tracking
- Product Catalog: Categories, brands, products with variants and attributes
- Shopping Cart: Cart management and wishlist functionality
- Order Processing: Order creation, tracking, and management
- Payment Integration: Support for Cash on Delivery (COD) with extensible payment methods
- Notifications: Real-time notifications using Django Channels and WebSockets
- Reviews: Product review and rating system
- Getting Started Guide - Setup instructions and environment configuration
- API Documentation:
- Accounts API - User registration, authentication, and profile management
- Vendors API - Seller account management and store operations
- Products API - Product catalog, categories, and inventory management
- Cart API - Shopping cart and wishlist functionality
- Orders API - Order creation, processing, and tracking
- Payments API - Payment processing and transaction management
- Reviews API - Product reviews and ratings
- Notifications API - Real-time notification system
- Admin API - Administrative operations and dashboard
- OpenAPI Specification - Complete API reference in OpenAPI 3.0 format
# Authentication - Get JWT token
curl -X POST http://localhost:8000/accounts/api/login/ \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "yourpassword"}'
# Response
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
# Get products
curl -X GET http://localhost:8000/products/api/products/ \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
halum_hut/ βββ accounts/ # User authentication and profile management βββ cart/ # Shopping cart and wishlist functionality βββ core/ # Core utilities and shared components βββ coupons/ # Discount coupons and promotions βββ docs/ # Documentation files βββ halum_hut/ # Project settings and configuration βββ inventory/ # Inventory management βββ notifications/ # Real-time notifications with WebSockets βββ orders/ # Order processing and management βββ products/ # Product catalog and management βββ reviews/ # Product reviews and ratings βββ vendors/ # Seller accounts and store management βββ .example.env # Example environment variables βββ docker-compose.yml # Docker configuration βββ Dockerfile # Docker build instructions βββ manage.py # Django management script βββ requirements.txt # Python dependencies
-
Clone the repository:
git clone https://github.com/yourusername/halum_hut.git cd halum_hut
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Copy
.example.env
to.env
and configure environment variables:cp .example.env .env # Edit .env with your settings
-
Run migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
-
For WebSocket support (notifications), run Daphne:
daphne -p 8001 halum_hut.asgi:application
For production deployment using Docker:
# Build and start containers
docker-compose up -d
# Create superuser
docker-compose exec web python manage.py createsuperuser
Run the test suite:
python manage.py test
For coverage report:
coverage run --source='.' manage.py test
coverage report
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please read CONTRIBUTING.md for detailed guidelines.
If you discover any security related issues, please email security@example.com instead of using the issue tracker.
This project is licensed under the MIT License - see the LICENSE file for details.
- Django and Django REST Framework communities
- All contributors who have helped shape this project