1. Home
  2. infinity_hub
  3. সেটআপ
  4. Part 1: Project Initialization & Unfold Setup

Part 1: Project Initialization & Unfold Setup

চল শুরু করি Part 1: Project Initialization & Unfold Setup — এখানে আমরা নিচের কাজগুলো করবো:

🎯 Step Checklist

  1. Create Django project: infinity_hub
  2. Create apps: accounts, core
  3. Setup custom User model with sponsor
  4. Install & configure Unfold Admin
  5. Register User model in Unfold

🛠 Step 1: Create Django Project & Apps

django-admin startproject infinity_hub .
django-admin startproject infinity_hub .
python manage.py startapp accounts
python manage.py startapp investment
python manage.py startapp referral
python manage.py startapp bonus
python manage.py startapp withdrawal
python manage.py startapp core


🛠 Step 2: Install Required Libraries

requirements.txt

    pip install Django django-unfold

Install them:

pip install -r requirements.txt

🛠 Step 3: Project Settings Update (settings.py)

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    'unfold',
    'unfold.contrib.forms',
    'unfold.contrib.filters',

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    # Local apps
    'accounts',
    'investment',
    'referral',
    'bonus',
    'withdrawal',
    'core',
]

Add Custom User Model:

AUTH_USER_MODEL = 'accounts.User'

Add Unfold Config:

UNFOLD = {
    "SITE_TITLE": "Infinity Trading Hub Admin",
    "SITE_HEADER": "Infinity Admin",
    "SHOW_HISTORY": True,
}

🛠 Step 4: Create Custom User Model (accounts/models.py)

from django.contrib.auth.models import User
from django.db import models

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    sponsor = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='referrals')
    is_entrepreneur = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username

🧠 Step 2: Create Profile Automatically with Signal

accounts/signals.py

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
from .models import Profile

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

apps.py inside accounts

from django.apps import AppConfig

class AccountsConfig(AppConfig):
    name = 'accounts'

    def ready(self):
        import accounts.signals

🛠 Step 5: Register User in Unfold Admin (accounts/admin.py)

from django.contrib import admin
from unfold.admin import ModelAdmin
from .models import Profile

@admin.register(Profile)
class ProfileAdmin(ModelAdmin):
    list_display = ['user', 'sponsor', 'is_entrepreneur']
    list_filter = ['is_entrepreneur']
    search_fields = ['user__username', 'user__email']

🛠 Step 6: Migrate & Run Server

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Now go to: http://127.0.0.1:8000/admin
You’ll see the beautiful Unfold Admin with custom User model.


✅ Done with Part 1.

তুমি চাও কি আমি Part 2: Investment Logic শুরু করি?
এখানে থাকবে: InvestmentPackage, UserInvestment, ROITransaction মডেল, ROI জেনারেটর লজিক। বলো শুরু করবো?

How can we help?