-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_test_data.py
189 lines (173 loc) · 11 KB
/
create_test_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
import os
import django
import datetime
# تنظیم محیط جنگو
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from classes.models import Category, Class
from django.contrib.auth import get_user_model
from django.utils.text import slugify
User = get_user_model()
def create_categories():
"""ایجاد دستهبندیهای آزمایشی"""
categories = [
'برنامهنویسی',
'هوش مصنوعی',
'طراحی وب',
'تحلیل داده',
'مهارتهای نرم',
]
created_categories = []
for cat_name in categories:
category, created = Category.objects.get_or_create(name=cat_name)
if created:
print(f"دستهبندی '{cat_name}' ایجاد شد.")
else:
print(f"دستهبندی '{cat_name}' از قبل وجود داشت.")
created_categories.append(category)
return created_categories
def create_classes(categories):
"""ایجاد کلاسهای آزمایشی"""
classes_data = [
{
'title': 'کلاس پیشرفته هوش مصنوعی',
'category': categories[1], # هوش مصنوعی
'description': """در این دوره پیشرفته، شما با مفاهیم عمیق هوش مصنوعی آشنا خواهید شد؛ از شبکههای عصبی عمیق، الگوریتمهای ژنتیک، یادگیری تقویتی، تا کاربردهای عملی در پروژههای واقعی. این دوره برای دانشجویان با پیشزمینه اولیه در AI طراحی شده است.
سرفصلهای کلیدی:
- شبکههای عصبی پیشرفته
- یادگیری عمیق و مدلهای مختلف
- پردازش تصویر و متن با هوش مصنوعی
- پروژههای کاربردی""",
'instructor': 'دکتر فاطمه حسینی',
'instructor_bio': 'دکترای هوش مصنوعی از دانشگاه تهران با بیش از ۱۰ سال تجربه در تدریس، پژوهش و مشاوره پروژههای صنعتی. دارای مقالات بینالمللی و نویسنده کتابهای معتبر در حوزه یادگیری ماشین.',
'start_date': datetime.date(2024, 5, 20),
'end_date': datetime.date(2024, 8, 20),
'schedule': 'یکشنبهها ساعت ۱۶ الی ۱۸',
'location': 'دانشکده مهندسی کامپیوتر - کلاس ۲۰۴',
'capacity': 30,
'price': 350000,
'status': 'upcoming',
'prerequisites': 'آشنایی مقدماتی با پایتون و مفاهیم اولیه یادگیری ماشین',
},
{
'title': 'دوره طراحی وب با React',
'category': categories[2], # طراحی وب
'description': """این دوره به شما آموزش میدهد چگونه با استفاده از کتابخانه React و Tailwind CSS، وبسایتهای مدرن و واکنشگرا طراحی کنید. مناسب برای افرادی که با HTML، CSS و JavaScript آشنایی دارند.
در این دوره:
- اصول اولیه React و مفهوم Component
- مدیریت state و props
- استفاده از hooks
- ارتباط با API و مدیریت دادهها
- استفاده از Tailwind برای طراحی رابط کاربری زیبا
- پروژههای عملی و کاربردی""",
'instructor': 'مهندس علی احمدی',
'instructor_bio': 'کارشناس ارشد مهندسی نرمافزار و توسعهدهنده ارشد فرانتاند با بیش از ۷ سال سابقه در شرکتهای معتبر. مدرس دورههای متعدد برنامهنویسی وب و مشاور استارتاپهای حوزه فناوری.',
'start_date': datetime.date(2024, 5, 28),
'end_date': datetime.date(2024, 7, 28),
'schedule': 'سهشنبهها و پنجشنبهها ساعت ۱۴ الی ۱۶',
'location': 'آنلاین - از طریق اسکای روم',
'capacity': 40,
'price': 420000,
'status': 'upcoming',
'prerequisites': 'آشنایی با HTML، CSS و JavaScript',
},
{
'title': 'دوره مقدماتی تحلیل داده',
'category': categories[3], # تحلیل داده
'description': """در این دوره، شما با اصول و ابزارهای اولیه تحلیل داده با استفاده از پایتون آشنا میشوید. یادگیری از پایهایترین مفاهیم آغاز میشود و به تدریج به سمت تکنیکهای پیشرفتهتر حرکت میکند.
سرفصلها:
- مقدمات پایتون برای تحلیل داده
- کار با NumPy و Pandas
- پاکسازی و آمادهسازی دادهها
- تحلیل آماری دادهها
- مصورسازی با Matplotlib و Seaborn
- پروژه عملی تحلیل دادههای واقعی""",
'instructor': 'دکتر امیر مجیدی',
'instructor_bio': 'دکترای علوم کامپیوتر با گرایش دادهکاوی از دانشگاه شریف. محقق حوزه یادگیری ماشین و تحلیل داده با بیش از ۱۵ سال سابقه آموزش و پژوهش. مولف چندین کتاب و مقاله در زمینه تحلیل داده.',
'start_date': datetime.date(2024, 6, 1),
'end_date': datetime.date(2024, 8, 1),
'schedule': 'دوشنبهها ساعت ۱۰ الی ۱۲',
'location': 'دانشکده علوم پایه - آزمایشگاه کامپیوتر',
'capacity': 25,
'price': 300000,
'status': 'upcoming',
'prerequisites': 'آشنایی مقدماتی با مفاهیم برنامهنویسی',
},
{
'title': 'برنامهنویسی پایتون از صفر تا صد',
'category': categories[0], # برنامهنویسی
'description': """این دوره برای افرادی طراحی شده که هیچ سابقه برنامهنویسی ندارند و میخواهند پایتون را از ابتدا یاد بگیرند. از مفاهیم پایه شروع کرده و تا پروژههای عملی ادامه مییابد.
سرفصلها:
- آشنایی با محیط برنامهنویسی پایتون
- متغیرها، انواع داده و عملگرها
- ساختارهای کنترلی (شرطها و حلقهها)
- توابع و ماژولها
- کار با فایلها و استثناها
- برنامهنویسی شیگرا
- کار با کتابخانههای محبوب پایتون
- پروژههای عملی""",
'instructor': 'مهندس محمد رضایی',
'instructor_bio': 'کارشناس ارشد مهندسی نرمافزار و مدرس برنامهنویسی با بیش از ۸ سال سابقه تدریس. متخصص در آموزش مفاهیم برنامهنویسی به مبتدیان با روشهای ساده و کاربردی.',
'start_date': datetime.date(2024, 5, 15),
'end_date': datetime.date(2024, 8, 15),
'schedule': 'شنبهها و چهارشنبهها ساعت ۱۶ الی ۱۸',
'location': 'ساختمان انجمنهای علمی - کلاس ۳',
'capacity': 35,
'price': 380000,
'status': 'ongoing',
'prerequisites': 'نیازی به پیشنیاز خاصی ندارد',
},
{
'title': 'کارگاه مهارتهای ارائه مؤثر',
'category': categories[4], # مهارتهای نرم
'description': """در این کارگاه، دانشجویان با مهارتهای ارائه مؤثر و سخنرانی حرفهای آشنا میشوند. از نحوه آمادهسازی محتوا تا تکنیکهای صحبت در جمع و استفاده مؤثر از ابزارهای ارائه.
محتوای کارگاه:
- اصول طراحی اسلاید و محتوای ارائه
- زبان بدن و تکنیکهای صحبت در جمع
- مدیریت استرس و اضطراب حین ارائه
- پاسخ به سؤالات و مدیریت جلسات
- تمرینهای عملی و بازخورد""",
'instructor': 'دکتر نگار کریمی',
'instructor_bio': 'دکتری علوم ارتباطات و مدرس دانشگاه در حوزه مهارتهای ارتباطی. مشاور سخنرانی و ارائه برای مدیران ارشد و کارآفرینان. نویسنده کتاب "هنر ارائه موثر" و برگزارکننده کارگاههای متعدد در سطح ملی.',
'start_date': datetime.date(2024, 7, 10),
'end_date': datetime.date(2024, 7, 12),
'schedule': 'پنجشنبه و جمعه ساعت ۹ الی ۱۷',
'location': 'تالار اجتماعات دانشکده مدیریت',
'capacity': 50,
'price': 200000,
'status': 'upcoming',
'prerequisites': 'نیازی به پیشنیاز خاصی ندارد',
},
]
for class_data in classes_data:
title = class_data['title']
# اگر اسلاگ از قبل ایجاد نشده باشد، آن را بسازیم
slug = slugify(title, allow_unicode=True)
# بررسی اینکه آیا این کلاس قبلاً ایجاد شده است یا خیر
class_exists = Class.objects.filter(slug=slug).exists()
if not class_exists:
new_class = Class(
title=title,
slug=slug,
category=class_data['category'],
description=class_data['description'],
instructor=class_data['instructor'],
instructor_bio=class_data['instructor_bio'],
start_date=class_data['start_date'],
end_date=class_data['end_date'],
schedule=class_data['schedule'],
location=class_data['location'],
capacity=class_data['capacity'],
price=class_data['price'],
status=class_data['status'],
prerequisites=class_data['prerequisites'],
)
new_class.save()
print(f"کلاس '{title}' با موفقیت ایجاد شد.")
else:
print(f"کلاس '{title}' از قبل وجود داشت.")
if __name__ == "__main__":
print("ایجاد دادههای آزمایشی برای برنامه...")
categories = create_categories()
create_classes(categories)
print("پایان فرایند ایجاد دادههای آزمایشی.")