Base URL: /courses/
Authentication: Required for most endpoints (JWT / Session)
POST /courses/courses{
"title": "Django Mastery", "description": "Deep dive into Django",
"teacher": 3, "category": 1, "published": true,
"image_url":"https://example.com/images/django.png",
"language": "english","level": "intermediate", "price": "49.99"
}
**Response (200 OK): **
{
"id": 12, "title": "Django Mastery",
"description": "Deep dive into Django", "teacher": 3,
"category": 1, "created_at": "2025-09-16T09:00:00Z",
"updated_at": "2025-09-16T09:00:00Z", "published": true,
"image_url": "https://example.com/images/django.png",
"enroll_count": 0, "lesson_count": 15, "language": "english",
"level": "intermediate", "price": "49.99"
}
GET /courses/{id}Response (200 OK)
{
"id": 5, "title": "Machine Learning",
"description": "Intro to ML concepts", "teacher": 4, "category": 3,
"created_at": "2025-09-01T10:00:00Z",
"updated_at": "2025-09-12T10:00:00Z", "published": true,
"image_url": "https://example.com/images/ml.png", "enroll_count": 85,
"lesson_count": 20, "language": "english",
"level": "advanced", "price": "79.99"
}
PUT /courses/{id}Request body:
{
"title": "Updated ML Course", "description": "Updated description",
"teacher": 4, "category": 3, "published": true,
"image_url": "https://example.com/images/ml_new.png",
"language": "english", "level": "advanced", "price": "89.99"
}
Response (200 OK):
{
"id": 5, "title": "Updated ML Course",
"description": "Updated description", "teacher": 4, "category": 3,
"created_at": "2025-09-01T10:00:00Z",
"updated_at": "2025-09-16T11:00:00Z", "published": true,
"image_url": "https://example.com/images/ml_new.png",
"enroll_count": 85, "lesson_count": 20, "language": "english",
"level": "advanced", "price": "89.99"
}
PATCH /courses/{id}Request body:
{
"title": "Quick ML Update"
}
Response (200 OK):
{
"id": 5, "title": "Quick ML Update",
"description": "Updated description", "teacher": 4, "category": 3,
"created_at": "2025-09-01T10:00:00Z",
"updated_at": "2025-09-16T11:10:00Z", "published": true,
"image_url": "https://example.com/images/ml_new.png",
"enroll_count": 85, "lesson_count": 20, "language": "english",
"level": "advanced", "price": "89.99"
}
DELETE /courses/{id}/**Response (200 OK):
{
"detail": "Course deleted successfully."
}
GET /courses/courses/{id}/with_lessons/Response (200 OK)
{
"id": 1,
"title": "Python Programming",
"description": "Learn Python from scratch",
"lessons": [
{"id": 1, "title": "Introduction to Python", "order": 1},
{"id": 2, "title": "Variables and Data Types", "order": 2}
]
}
GET /courses/courses/popular_courses/Response (200 OK)
[{ "id": 3,
"title": "Machine Learning",
"enroll_count": 120
},
{ "id": 7,
"title": "Data Science",
"enroll_count": 100
},
{ "id": 2,
"title": "Python Basics",
"enroll_count": 80
}]
GET /courses/courses/{course_id}/lessons/{lesson_id}/Response (200 OK)
{
"id": 1,
"title": "Introduction to Python",
"content": "Lesson content here...",
"is_last_lesson": false
}
GET /courses/courses/get_teacher_courses/{
"id": 8,
"title": "Web Development",
"published": true,
"level": "beginner",
"language": "english",
"price": "0.00"
}
GET /courses/courses/get_user_courses/Response (200 OK)
[
{ "course":
{ "id": 5, "title": "Python Basics", "level": "beginner", "language": "english" },
"progress":
{ "completed_lessons": 3, "course_completed": false, "total_score": 45, "streak": 2, "points_earned": 150, "got_certificate": false }
}
]
GET /courses/courses/get_all_courses/**Response (200 OK) :
[
{
"id": 3,
"title": "web",
"description": "nothing",
"created_at": "2025-08-12T10:37:42.391041+03:30",
"updated_at": "2025-08-18T13:09:02.721619+03:30",
"published": false,
"image_url": "data:image",
"enroll_count": 1,
"lesson_count": 10,
"language": "persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 2
},
{
"id": 4,
"title": "مبانی .NET برای مبتدیان",
"description": "این دوره به طراحی و توسعه برنامهها با استفاده از پلتفرم .NET میپردازد و هدف آن آشنایی کاربران با تکنیکها و روشهای عملی در توسعه نرمافزار است. دوره به زبان فارسی ارائه میشود و تمامی جنبههای مهم .NET را برای مبتدیان پوشش میدهد.",
"created_at": "2025-08-13T12:06:52.165753+03:30",
"updated_at": "2025-08-18T13:09:12.999614+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/مبانی_.NET_برای_مبتدیان.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
...
]
GET /courses/courses/{pk}/user_course_progress/{
"course_title": "Python Programming",
"total_lessons": 10,
"completed_lessons": 4,
"progress_percentage": 40.0
}
POST /courses/Certificates/generate_certificate/Request Body
{
"name": "John Doe",
"course_id": 1
}
Response (201 Created)
{
"detail": "Certificate generated successfully!",
"certificate_url": "https://api.tadrisino.org/media/certificates/certificate_1_1.png"
}
POST /courses/exams/{course_id}/generate_exam/Response (200 OK)
{
"exam": [
{
"id": 1,
"question_text": "What is Python?",
"options": ["Option 1", "Option 2", "Option 3", "Option 4"]
}
]
}
POST /courses/exams/{course_id}/submit_exam/Request Body
{
"answers": [
{"question_id": 1, "selected_option": "option_1"},
{"question_id": 2, "selected_option": "option_3"}
]
}
Response (200 OK)
{
"detail": "Exam passed!",
"grade": 85
}
GET /courses/exams/{lesson_id}/Qlist/[{"id":1,"title":"quiz","lesson":{"id":1,"title":"1","description":"English tutorial for beginners","content":"ABCD / دستور زبان ساده\n\nدر این درس، قصد داریم به بررسی مبانی دستور زبان انگلیسی بپردازیم. این مباحث شامل الفبای انگلیسی و نحوه استفاده صحیح از آنها در جملات است. یادگیری این اصول پایهای به شما کمک میکند تا در مکالمات و نوشتارهای روزمره به صورت دقیقتر و موثرتر عمل کنید.\n\n### الفبای انگلیسی\n\nالفبای انگلیسی شامل ۲۶ حرف است که به دو دسته حروف بزرگ (capital letters) و حروف کوچک (lowercase letters) تقسیم میشوند. یادگیری الفبای انگلیسی اولین گام در فراگیری زبان است.\n\n**مثال:**\n\n- حروف بزرگ: A, B, C, D\n- حروف کوچک: a, b, c, d\n\n### ساختار جمله\n\nدر زبان انگلیسی، هر جمله معمولاً شامل سه بخش اصلی است: فاعل (subject)، فعل (verb)، و مفعول (object). ترتیب این اجزا در جمله بسیار مهم است و به فهم بهتر کمک میکند.\n\n**مثال:**\n\n- جمله: \"The cat eats fish.\"\n - فاعل: The cat\n - فعل: eats\n - مفعول: fish\n\n### نکات کاربردی\n\n1. **تمرین تلفظ:**\n - برای بهتر شدن در تلفظ حروف، میتوانید از منابع آنلاین یا اپلیکیشنهای آموزشی استفاده کنید.\n \n2. **نوشتن روزانه:**\n - سعی کنید روزانه چند جمله ساده با استفاده از حروف و کلمات جدیدی که یاد میگیرید بنویسید. این کار به تقویت مهارتهای نوشتاری شما کمک میکند.\n\n3. **خواندن و گوش دادن:**\n - کتابهای ساده یا داستانهای کوتاه بخوانید و به پادکستها یا فایلهای صوتی آموزشی گوش دهید تا به مرور با ساختار جملات و کاربرد صحیح حروف آشنا شوید.\n\n### نتیجهگیری\n\nیادگیری الفبای انگلیسی و اصول اولیه دستور زبان، پایهای محکم برای یادگیری زبان فراهم میکند. با تمرین مداوم و استفاده از منابع آموزشی متنوع، میتوانید مهارتهای زبانی خود را به سطح بالاتری ارتقا دهید.","order":1,"created_at":"2025-08-12T10:41:22.387044+03:30","course":1,"audio":null},"questions":[]},
POST /courses/quizzes/{lesson_id}/submit_answers/Request Body
{
"answers": [
{"questionId": 1, "answer": 2},
{"questionId": 2, "answer": 1}
]
}
Response (200 OK)
{
"message": "Quiz submitted successfully.",
"total_score": 80,
"point_earned" : 0,
"passed": true,
"answers": [
{
"question_id": 1,
"selected_option": "Option 2",
"correct_option": "Option 2",
"is_correct": true
}
],
"characters": {
"main_character": [
{
"character": "B",
"new_mood": "sad",
"reaction_message": "I really thought this time would be different. I’m sorry that you didn’t pass.",
"avatar": "data:image",
"source": "db"
}
],
"relations": {
"character": "A",
"new_mood": "happy",
"reaction_message": "Congrats! You just redefined ‘epic fail.’",
"avatar": "data:image"
}
}
POST /courses/course-generation/generate_gpt_course/Request Body
{
"name": "Machine Learning Basics",
"level": "beginner",
"language": "english",
"category": 1,
"lesson_count": 10
}
Response (201 Created)
{
"id": 15,
"title": "Machine Learning Fundamentals",
"description": "Comprehensive course on ML basics...",
"lessons": [...]
}
GET /courses/course-generation/content-generation/{course_id}/{lesson_id}/GET /courses/course-generation/quizContent/{course_id}/{lesson_id}/GET /courses/course-generation/create_picGET /courses/course-generation/search_for_existence_coursePOST /courses/lesson-tts/generate_voice/Request Body
{
"lesson_id": 1
}
Response (200 OK)
{
"message": "صوت تولید شد.",
"audio_url": "https://api.tadrisino.org/media/lesson_audios/abc123.mp3"
}
GET /courses/lesson-tts/get_voice/?lesson_id=1POST /courses/student-progress/{lesson_id}/complete-lesson/{
"status": "Lesson completed",
"completed_lessons": 1,
"main_character": [
{
"character": "B",
"new_mood": "motivated",
"reaction_message": {
"reaction_message": "Completed another lesson! Bring on the challenges, I'm feeling pumped up and ready to level up!"
},
"avatar": "data:image",
"source": "ai"
}
]
}
Response (200 OK)
{
"status": "Lesson completed",
"completed_lessons": 5,
"main_character": {...}
}
POST /courses/student-progress/{course_id}/complete-course/{
"status": "course completed",
"main_character": [
{
"character": "B",
"new_mood": "motivated",
"reaction_message": {
"reaction_message": "Course_completed! Time to level up and conquer more challenges!"
},
"avatar": "data:image",
"source": "ai"
}
]
}
POST /courses/student-progress/last-completed-lesson/{
"course_id": 1
}
Response :
{
"lesson_id": 1
}
GET /courses/student-progress/streak/[
{
"course__title": "مبانی .NET برای مبتدیان",
"streak": 0
},
{
"course__title": "آموزش مقدماتی پایتون",
"streak": 0
},
{
"course__title": "دوره آموزشی مقدماتی جنگو",
"streak": 4
},
{
"course__title": "Python for Beginners dhdhdhhdhdhdhdh",
"streak": 0
},
{
"course__title": "web",
"streak": 0
},
{
"course__title": "مبانی .NET برای مبتدیان",
"streak": 1
},
{
"course__title": "آموزش پیشرفته جنگو برای مبتدیان",
"streak": 0
},
{
"course__title": "web 123",
"streak": 0
},
{
"course__title": "hii",
"streak": 0
}
]
GET /courses/student-progress/points-earned/{
"total_points_earned": 0
}
POST /courses/enroll/{course_id}/enroll/Response (201 Created)
{
"status": "enrolled successfully",
"triggered": {...}
}
GET /courses/enroll/{course_id}/check_enroll/Response (200 OK)
{
"is_enrolled": true
}
POST /courses/categories/popular-courses/Request Body
{
"category": "programming"
}
GET /courses/Recommend/shuffled_by_user_interests/GET /courses/Recommend/popular_by_category/{
"general": [
{
"id": 7,
"title": "دوره آموزشی مقدماتی جنگو",
"description": "این دوره به منظور آشنایی کامل کاربران با چارچوب وب جنگو طراحی شده است. در این دوره، شما با تکنیکها و تمرینهای عملی لازم برای توسعه وبسایتهای قدرتمند و مقیاسپذیر با استفاده از جنگو آشنا خواهید شد. دوره به زبان فارسی و برای سطح مبتدی تنظیم شده است.",
"created_at": "2025-08-13T12:17:36.646050+03:30",
"updated_at": "2025-08-17T12:48:17.076434+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/دوره_آموزشی_مقدماتی_جنگو.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 4,
"title": "مبانی .NET برای مبتدیان",
"description": "این دوره به طراحی و توسعه برنامهها با استفاده از پلتفرم .NET میپردازد و هدف آن آشنایی کاربران با تکنیکها و روشهای عملی در توسعه نرمافزار است. دوره به زبان فارسی ارائه میشود و تمامی جنبههای مهم .NET را برای مبتدیان پوشش میدهد.",
"created_at": "2025-08-13T12:06:52.165753+03:30",
"updated_at": "2025-08-18T13:09:12.999614+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/مبانی_.NET_برای_مبتدیان.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 6,
"title": "آموزش مقدماتی پایتون",
"description": "این دوره آموزشی طراحی شده است تا دانشجویان را با اصول و تکنیکهای برنامهنویسی با زبان پایتون آشنا کند. این دوره به صورت عملی و کاربردی است و به شرکتکنندگان کمک میکند تا تمامی تکنیکها و شیوههای موجود در برنامهنویسی پایتون را بیاموزند. هدف از این دوره، ایجاد پایهای محکم در برنامهنویسی پایتون و آمادهسازی دانشجویان برای پروژههای واقعی است.",
"created_at": "2025-08-13T12:12:37.593635+03:30",
"updated_at": "2025-08-18T13:09:29.230707+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/آموزش_مقدماتی_پایتون.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 5,
"title": "مبانی .NET برای مبتدیان",
"description": "این دوره به زبان فارسی طراحی شده است تا به افراد مبتدی کمک کند تا با تکنیکها و روشهای عملی مرتبط با .NET آشنا شوند. در این دوره، شما با اصول اولیه .NET آشنا شده و توانایی لازم برای شروع پروژههای ساده را خواهید داشت.",
"created_at": "2025-08-13T12:08:49.888795+03:30",
"updated_at": "2025-08-18T13:09:22.320420+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/مبانی__UcGsZ3Q.NET_برای_مبتدیان.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 21,
"title": "آموزش پیشرفته جنگو برای مبتدیان",
"description": "این دوره به منظور ارائهی یک درک جامع و عملی از تکنیکها و روشهای پیشرفته در جنگو طراحی شده است. هدف اصلی این دوره این است که افراد مبتدی را به سطحی برساند که با ابزارها و تکنیکهای پیشرفتهی جنگو آشنا شوند و بتوانند آنها را در پروژههای خود به کار گیرند.",
"created_at": "2025-08-19T22:46:49.930703+03:30",
"updated_at": "2025-08-19T22:48:22.640111+03:30",
"published": true,
"image_url": "https://api.tadrisino.org/media/images/آموزش_پیشرفته_جنگو_برای_مبتدیان.png",
"enroll_count": 1,
"lesson_count": 10,
"language": "Persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
}
],
"programming": [
{
"id": 2,
"title": "web 123",
"description": "nothing",
"created_at": "2025-08-12T10:37:41.283770+03:30",
"updated_at": "2025-08-20T13:30:55.628435+03:30",
"published": false,
"image_url": "data:image",
"enroll_count": 1,
"lesson_count": 10,
"language": "persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 2
},
{
"id": 3,
"title": "web",
"description": "nothing",
"created_at": "2025-08-12T10:37:42.391041+03:30",
"updated_at": "2025-08-18T13:09:02.721619+03:30",
"published": false,
"image_url": "data:image",
"enroll_count": 1,
"lesson_count": 10,
"language": "persian",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 2
},
{
"id": 1,
"title": "hii",
"description": "hiiii",
"created_at": "2025-08-12T10:37:38.393369+03:30",
"updated_at": "2025-08-28T17:55:45.945390+03:30",
"published": false,
"image_url": "data:image",
"enroll_count": 0,
"lesson_count": 10,
"language": "persian",
"level": "beginner",
"price": "10.00",
"teacher": 1,
"category": 2
}
]
}
GET /courses/Recommend/popular_in_user_categories/GET /courses/Recommend/hot_today/{
"hot_today": [
"مبانی .NET برای مبتدیان"
]
}
POST /courses/course-ratings/{course_id}/set_rate/Request Body
{
"rateDigit": 5
}
GET /courses/Statistics/counters/{
"course_count": 22,
"user_count": 2
}
GET /courses/learning-paths/featured/[
{
"id": 1,
"title": "web development",
"category": "programming",
"description": "with rest api",
"duration": "2 ",
"lessons": 20,
"courses_count": 2,
"enrolCount": true,
"level": "beginner",
"enroll_count": 0,
"popular": false,
"image": "data:image"
}
]
GET /courses/learning-paths/by_category/show the user learning path base on category**Request: **
{
"category_id" : 1
}
**Response (200 OK): **
[
{
"id": 2,
"title": "Traci",
"category": "programming",
"description": "simulation of trafic",
"duration": "2 ",
"lessons": 20,
"courses_count": 2,
"enrolCount": true,
"level": "beginner",
"enroll_count": 0,
"popular": false,
"image": "data:image"
},
...
]
POST /courses/learning-paths/{pk}/enrollment_count/**Response (200 OK) : **
{
"enrollment_count": 1
}
POST /courses/learning-paths/{pk}/enroll/Response (201 Created)
{
"message": "Enrolled successfully",
"character": {...}
}
GET /courses/paths/{id}/generate_exam/{
"exam_questions": [
{
"id": 5,
"question_text": "1",
"options": [
"1",
"1",
"1",
"1"
],
"correct_option": "1"
},
{
"id": 10,
"question_text": "9",
"options": [
"9",
"9",
"9",
"9"
],
"correct_option": "9"
},
...
]
}
GET /courses/paths/{id}/user_progress/**Response (200 OK) : **
{
"enrollment_status": "Enrolled",
"completed_courses":
[
{
"id": 5,
"title": "آشنایی با تکنیکها و روشهای \"Traci 2\""
}
],
"not_completed_courses":
[
{
"id": 6,
"title": "Sumo 2: Techniques and Practical Applications for Beginners"
}
],
"user_progress": 50.0
}
POST /courses/user-notes/create-note/Request Body
{
"course": 1,
"lesson": 1,
"title": "Important Points",
"content": "Note content here..."
}
GET /courses/user-notes/export-notes-pdf/POST /courses/user-notes/get-notes/{
"course" : 1,
"lesson" : 1
}
Response :
[
{
"id": 3,
"user": 1,
"course": 1,
"lesson": 1,
"title": "hiiii",
"content": "yohaaaa",
"created_at": "2025-08-12T15:41:53.741270+03:30",
"updated_at": "2025-08-12T15:46:05.225390+03:30"
}
]
DELETE /courses/user-notes/{pk}/delete-note/{
"message": "Note deleted successfully."
}
PUT /courses/user-notes/{pk}/edit-notes/GET /courses/Recommendation/recommend-courses/[
{
"id": 18,
"title": "Python for Beginners 4",
"description": "Learn Python from scratch with hands-on projects.",
"created_at": "2025-08-19T22:40:59.070736+03:30",
"updated_at": "2025-08-19T22:40:59.070952+03:30",
"published": true,
"image_url": "https://example.com/python-course.png",
"enroll_count": 0,
"lesson_count": 15,
"language": "English",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 16,
"title": "Python for Beginners 4",
"description": "Learn Python from scratch with hands-on projects.",
"created_at": "2025-08-19T22:38:15.685494+03:30",
"updated_at": "2025-08-19T22:38:15.685993+03:30",
"published": true,
"image_url": "https://example.com/python-course.png",
"enroll_count": 0,
"lesson_count": 15,
"language": "English",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
},
{
"id": 19,
"title": "Python for Beginners 4",
"description": "Learn Python from scratch with hands-on projects.",
"created_at": "2025-08-19T22:41:24.075015+03:30",
"updated_at": "2025-08-19T22:41:24.075042+03:30",
"published": true,
"image_url": "https://example.com/python-course.png",
"enroll_count": 0,
"lesson_count": 15,
"language": "English",
"level": "beginner",
"price": "0.00",
"teacher": 1,
"category": 1
}
]
POST /courses/Resume/generate_resume/Request Body (multipart/form-data)
github_url: stringjob_url: stringlanguage: string (default: "en")last_resume: file (PDF, DOCX, TXT)Response (201 Created)
{
"message": "Resume generated and saved.",
"resume_id": 1,
"text": "Generated resume content..."
}
GET /courses/Resume/{pk}/get_pdf/400 Bad Request - Invalid input parameters403 Forbidden - Insufficient permissions/credits404 Not Found - Resource not found500 Internal Server Error - Server error