Bu proyekt Django, Django REST Framework, Celery va Django Unfold orqali qurilgan portfolio backend tizimidir.
- Admin Panel - Django Unfold yordamida chiroyli admin panel
- Blog - Blog postlar (markdown formati qo'llanilgan)
- Proyektlar - Ko'rsatilgan proyektlar
- Ko'nikmalar - Qobiliyatlar ro'yxati
- API - REST API barcha ma'lumotlarga kirish uchun
- Background Tasks - Celery tasklari orqali avtomatlashtirish
- Repositoryni klonlash:
git clone <repository-url>
cd portfolio- Virtual muhit yaratish va faollashtirish:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows- Kerakli paketlarni o'rnatish:
pip install -r requirements.txt- Ma'lumotlar bazasini tayyorlash:
python manage.py migrate- Admin foydalanuvchi yaratish:
python manage.py createsuperuser- Statik fayllarni to'plash:
python manage.py collectstatic- Django serverni ishga tushirish:
python manage.py runserver- Redis serverini ishga tushirish (Celery uchun):
redis-server- Celery worker ishga tushirish:
celery -A portfolio worker -l info- Celery beat ishga tushirish:
celery -A portfolio beat -l info- Blog postlar:
/api/posts/ - Alohida blog post:
/api/posts/<slug>/ - Proyektlar:
/api/projects/ - Alohida proyekt:
/api/projects/<slug>/ - Ko'nikmalar:
/api/skills/
Admin panelga /admin/ orqali kirishingiz mumkin. U yerda:
- Blog postlarini boshqarish
- Proyektlarni boshqarish
- Ko'nikmalarni boshqarish
blog.tasks.cleanup_old_posts: Eski blog postlarini o'chirish (default: 1 yildan eski)projects.tasks.cleanup_unused_images: Ishlatilmayotgan rasm fayllarini o'chirib tashlash
Bu loyiha Telegraph API bilan chuqur integratsiya qilingan. Barcha ma'lumotlar Telegraph-da saqlanadi va boshqariladi.
- Rasmlar Telegraphda saqlanadi, mahalliy serverga yuklash o'rniga
- Blog postlari va loyihalar telegraphda jsonlashtiriladi va avtomatik ravishda sinxronlashtiriladi
- Skill ikonkalari ham Telegraphda saqlanadi
- Ma'lumotlar o'qish/yozish faqat Telegraph API orqali amalga oshiriladi
- Real-time sinxronizatsiya - o'zgarishlar Telegraph-da va backend bazada sinxronlashtirilgan
POST /api/telegraph/token/- Yangi Telegraph token olish (admin huquqi bilan)POST /api/telegraph/upload-image/- Rasmni Telegraphga yuklashGET /api/telegraph/page-info/?path=XXX- Telegraph sahifasi haqida ma'lumot olish
POST /api/posts/{slug}/sync_from_telegraph/- Blog postni Telegraphdan sinxronlashPOST /api/projects/{slug}/sync_from_telegraph/- Loyihani Telegraphdan sinxronlash
- Telegraph sahifasiga tashrif buyuring
- "..." menyusini bosib, hisob yarating
- "Your account" bo'limiga o'ting va
access_tokenqiymatini nusxalash - Yoki Telegraph API orqali token olish:
https://api.telegra.ph/createAccount?short_name=YourName&author_name=YourName - Yoki backendning
/api/telegraph/token/endpointini ishlatish - Tokenni
.envfayliga qo'shing:
TELEGRAPH_TOKEN=your-token-here
- Blog va loyihalar uchun ko'rishlar hisobi
- Blogga sharhlar qo'shish imkoniyati
- Loyihalarni tanlangan qilish va saralash
- Ma'lumotlarni samarali qilish uchun optimallashtirilgan so'rovlar
- Telegraph bilan avtomatik sinxronizatsiya