Bộ sưu tập ChatGPT Prompt dành cho marketing giáo dục.

https://shell-kitty-d11.notion.site/ELECOSYS-COM-T-P-QU-N-L-PROMP-D-NH-CHO-MARKETING-NG-NH-GI-O-D-C-99da6ec5fd3a4b2a8abc8efc15e64719?pvs=4

import React, { useState, useRef, useEffect } from “react” import { Card, CardContent, CardHeader, CardFooter } from “@/components/ui/card” import { Button } from “@/components/ui/button” import { Input } from “@/components/ui/input” import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from “@/components/ui/dialog” import { Label } from “@/components/ui/label” import { ScrollArea } from “@/components/ui/scroll-area” import { Search, LayoutGrid, List, Plus, FolderPlus, Trash2, Copy, ChevronDown, ChevronRight, Upload } from “lucide-react” import { useToast } from “@/components/ui/use-toast” import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from “@/components/ui/select” import { Popover, PopoverContent, PopoverTrigger } from “@/components/ui/popover” import Papa from ‘papaparse’ type Comment = { id: number name: string content: string date: string } type Prompt = { id: number title: string systemRole: string instruction: string category: string subCategory?: string skill?: string tags: string[] comments: Comment[] } type Category = { name: string subCategories: { name: string skills: string[] }[] } const initialCategories: Category[] = [ { name: “Prompt for Highschool Teachers”, subCategories: [ { name: “English Grade 11”, skills: [“Writing”, “Grammar”, “Listening & Speaking”] }, { name: “Mathematics Grade 12”, skills: [“Algebra”, “Calculus”] }, ] }, { name: “Content Marketing”, subCategories: [ { name: “Social Media”, skills: [“Facebook”, “Instagram”, “Twitter”] }, { name: “Blog Writing”, skills: [“SEO”, “Storytelling”] } ] } ] const initialPrompts: Prompt[] = [ { id: 1, title: “English Writing Exercise”, category: “Prompt for Highschool Teachers”, subCategory: “English Grade 11”, skill: “Writing”, systemRole: “Trợ lý học tập cá nhân hóa, giúp học sinh lớp 11 tối ưu hóa kết quả học tập ở môn tiếng Anh.”, instruction: “Hãy giúp tôi lập kế hoạch học tập trong 4 tuần để cải thiện kỹ năng viết tiếng Anh của mình, chuẩn bị cho kỳ thi [IELTS/TOEFL]. Kế hoạch nên bao gồm các bài tập viết hằng ngày, từ vựng cần học và cách tôi có thể tự đánh giá bài viết của mình.”, tags: [“Grade11”, “English”, “Writing”], comments: [] }, { id: 2, title: “Math Problem Solving”, category: “Prompt for Highschool Teachers”, subCategory: “Mathematics Grade 12”, skill: “Problem Solving”, systemRole: “Trợ lý học tập cá nhân hóa, giúp học sinh lớp 12 phát triển kỹ năng giải quyết vấn đề trong môn Toán.”, instruction: “Hãy tạo một bộ 5 bài toán thử thách về hình học không gian, kèm theo hướng dẫn giải từng bước. Mỗi bài toán nên tập trung vào một khía cạnh khác nhau của hình học không gian.”, tags: [“Grade12”, “Math”, “Geometry”], comments: [] }, ] const categoryColors = { “Prompt for Highschool Teachers”: “bg-indigo-500 hover:bg-indigo-600”, “Content Marketing”: “bg-emerald-500 hover:bg-emerald-600”, } const PRESET_PASSWORD = “Elecosys@2024” export default function AdvancedPromptManager() { const [prompts, setPrompts] = useState(initialPrompts) const [categories, setCategories] = useState(initialCategories) const [editingField, setEditingField] = useState<{ id: number | null, field: keyof Prompt | null }>({ id: null, field: null }) const [newPrompt, setNewPrompt] = useState({ id: 0, title: “”, category: “”, subCategory: “”, skill: “”, systemRole: “”, instruction: “”, tags: [], comments: [] }) const [isAddNewOpen, setIsAddNewOpen] = useState(false) const [selectedCategory, setSelectedCategory] = useState(null) const [selectedSubCategory, setSelectedSubCategory] = useState(null) const [selectedSkill, setSelectedSkill] = useState(null) const [password, setPassword] = useState(“”) const [isPasswordDialogOpen, setIsPasswordDialogOpen] = useState(false) const [currentAction, setCurrentAction] = useState<() => void>(() => {}) const [viewMode, setViewMode] = useState<"grid" | "list">(“grid”) const [searchTerm, setSearchTerm] = useState(“”) const [sortBy, setSortBy] = useState<"title" | "category">(“title”) const [isAddCategoryOpen, setIsAddCategoryOpen] = useState(false) const [newCategory, setNewCategory] = useState({ name: “”, subCategories: [{ name: “”, skills: [“”] }] }) const [isImportDialogOpen, setIsImportDialogOpen] = useState(false) const editInputRef = useRef(null) const fileInputRef = useRef(null) const { toast } = useToast() useEffect(() => { if (editingField.id !== null && editingField.field !== null && editInputRef.current) { editInputRef.current.focus() } }, [editingField]) const handleAddComment = (promptId: number, name: string, content: string) => { if (name && content) { const newComment: Comment = { id: Date.now(), name, content, date: new Date().toLocaleString() } setPrompts(prompts.map(prompt => prompt.id === promptId ? { …prompt, comments: […prompt.comments, newComment] } : prompt )) } } const handleEditStart = (id: number, field: keyof Prompt) => { setCurrentAction(() => () => { setEditingField({ id, field }) }) setIsPasswordDialogOpen(true) } const handleEditComplete = (id: number, field: keyof Prompt, value: string) => { setPrompts(prompts.map(prompt => prompt.id === id ? { …prompt, [field]: value } : prompt )) setEditingField({ id: null, field: null }) } const handleAddNew = () => { if (newPrompt.title && newPrompt.category && newPrompt.subCategory && newPrompt.skill && newPrompt.systemRole && newPrompt.instruction) { setPrompts([…prompts, { …newPrompt, id: Date.now() }]) setIsAddNewOpen(false) setNewPrompt({ id: 0, title: “”, category: “”, subCategory: “”, skill: “”, systemRole: “”, instruction: “”, tags: [], comments: [] }) } } const handleDelete = (id: number) => { setCurrentAction(() => () => { setPrompts(prompts.filter(prompt => prompt.id !== id)) }) setIsPasswordDialogOpen(true) } const handlePasswordSubmit = () => { if (password === PRESET_PASSWORD) { currentAction() setIsPasswordDialogOpen(false) setPassword(“”) toast({ title: “Action completed”, description: “The requested action has been performed successfully.”, }) } else { toast({ title: “Incorrect password”, description: “Action not performed.”, variant: “destructive”, }) } } const handleCopy = (prompt: Prompt) => { const textToCopy = `Title: ${prompt.title} Category: ${prompt.category} Sub-category: ${prompt.subCategory} Skill: ${prompt.skill} System Role: ${prompt.systemRole} Instruction: ${prompt.instruction} Tags: ${prompt.tags.join(‘, ‘)}` navigator.clipboard.writeText(textToCopy) .then(() => toast({ title: “Copied to clipboard!”, description: “Prompt details have been copied.” })) .catch(err => { console.error(‘Failed to copy: ‘, err) toast({ title: “Failed to copy”, description: “An error occurred while copying to clipboard.”, variant: “destructive” }) }) } const handleAddCategory = () => { if (newCategory.name && newCategory.subCategories.length > 0) { setCategories([…categories, newCategory]) setIsAddCategoryOpen(false) setNewCategory({ name: “”, subCategories: [{ name: “”, skills: [“”] }] }) } } const handleImportPrompts = (file: File) => { Papa.parse(file, { complete: (results) => { const importedPrompts: Prompt[] = results.data.slice(1).map((row: any, index: number) => ({ id: Date.now() + index, title: row[0], category: row[1], subCategory: row[2], skill: row[3], systemRole: row[4], instruction: row[5], tags: row[6] ? row[6].split(‘,’).map((tag: string) => tag.trim()) : [], comments: [] })) setPrompts([…prompts, …importedPrompts]) setIsImportDialogOpen(false) toast({ title: “Import successful”, description: `${importedPrompts.length} prompts have been imported.`, }) }, header: true, skipEmptyLines: true, }) } const filteredPrompts = prompts .filter(prompt => (!selectedCategory || prompt.category === selectedCategory) && (!selectedSubCategory || prompt.subCategory === selectedSubCategory) && (!selectedSkill || prompt.skill === selectedSkill) ) .filter(prompt => prompt.title.toLowerCase().includes(searchTerm.toLowerCase()) || (prompt.instruction && prompt.instruction.toLowerCase().includes(searchTerm.toLowerCase())) || (prompt.systemRole && prompt.systemRole.toLowerCase().includes(searchTerm.toLowerCase())) || prompt.tags.some(tag => tag.toLowerCase().includes(searchTerm.toLowerCase())) ) .sort((a, b) => { if (sortBy === “title”) { return a.title.localeCompare(b.title) } else { return a.category.localeCompare(b.category) } }) const allTags = Array.from(new Set(prompts.flatMap(prompt => prompt.tags))) const renderCategoryFilters = () => (
{categories.map((category) => ( {category.subCategories.map((subCategory) => ( {subCategory.skills.map((skill) => ( ))} ))} ))}
) return (

ELECOSYS.COM
Prompt Management

setSearchTerm(e.target.value)} className=”pl-10 pr-4 py-2 w-full rounded-none border-2 border-[#003a75] bg-[#001f3f] text-white” />
{allTags.map((tag) => ( ))}
Add New Prompt
setNewPrompt({…newPrompt, title: e.target.value})} />
setNewPrompt({…newPrompt, systemRole: e.target.value})} />
setNewPrompt({…newPrompt, instruction: e.target.value})} />
setNewPrompt({…newPrompt, tags: e.target.value.split(‘,’).map(tag => tag.trim())})} />
Add New Category
setNewCategory({…newCategory, name: e.target.value})} />
{newCategory.subCategories.map((subCat, index) => (
{ const updatedSubCategories = […newCategory.subCategories] updatedSubCategories[index].name = e.target.value setNewCategory({…newCategory, subCategories: updatedSubCategories}) }} />
{subCat.skills.map((skill, skillIndex) => (
{ const updatedSubCategories = […newCategory.subCategories] updatedSubCategories[index].skills[skillIndex] = e.target.value setNewCategory({…newCategory, subCategories: updatedSubCategories}) }} />
))}
))}
Import Prompts
{ const file = e.target.files?.[0] if (file) { setCurrentAction(() => () => handleImportPrompts(file)) setIsPasswordDialogOpen(true) } }} ref={fileInputRef} />

Category

{renderCategoryFilters()} {viewMode === “grid” ? (
{filteredPrompts.map(prompt => (

handleEditStart(prompt.id, ‘title’)} > {editingField.id === prompt.id && editingField.field === ‘title’ ? ( handleEditComplete(prompt.id, ‘title’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”text-xl font-bold bg-[#001f3f] text-white rounded-none” /> ) : prompt.title}

{prompt.category} > {prompt.subCategory} > {prompt.skill}
handleEditStart(prompt.id, ‘systemRole’)} > {editingField.id === prompt.id && editingField.field === ‘systemRole’ ? ( handleEditComplete(prompt.id, ‘systemRole’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”rounded-none bg-[#001f3f] text-white” /> ) : prompt.systemRole}
handleEditStart(prompt.id, ‘instruction’)} > {editingField.id === prompt.id && editingField.field === ‘instruction’ ? ( handleEditComplete(prompt.id, ‘instruction’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”rounded-none bg-[#001f3f] text-white” /> ) : prompt.instruction}
{prompt.tags.map(tag => ( #{tag} ))}

Comments:

{prompt.comments.map(comment => (
{comment.name} {comment.date}

{comment.content}

))}
))}
) : (
{filteredPrompts.map((prompt) => ( ))}
Title Category Sub-category Skill System Role Instruction Actions
handleEditStart(prompt.id, ‘title’)}> {editingField.id === prompt.id && editingField.field === ‘title’ ? ( handleEditComplete(prompt.id, ‘title’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”rounded-none bg-[#001f3f] text-white” /> ) : {prompt.title}} {prompt.category} {prompt.subCategory} {prompt.skill} handleEditStart(prompt.id, ‘systemRole’)}> {editingField.id === prompt.id && editingField.field === ‘systemRole’ ? ( handleEditComplete(prompt.id, ‘systemRole’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”rounded-none bg-[#001f3f] text-white” /> ) : {prompt.systemRole}} handleEditStart(prompt.id, ‘instruction’)}> {editingField.id === prompt.id && editingField.field === ‘instruction’ ? ( handleEditComplete(prompt.id, ‘instruction’, e.target.value)} onBlur={() => setEditingField({ id: null, field: null })} className=”rounded-none bg-[#001f3f] text-white” /> ) : {prompt.instruction}}
)}
Enter Password
setPassword(e.target.value)} />
) }

Những bài viết liên quan

Tổng Hợp IELTS Writing AI Chatbot and Forms

Bạn muốn cải thiện kỹ năng viết của mình cho kỳ thi IELTS? Hãy tìm đến những trợ lý AI và các biểu mẫu đã được thử nghiệm kỹ lưỡng này. Với sự tập trung vào Bài viết Task 2 và các công cụ từ điểm số cho đến phản hồi và lên kế hoạch giảng dạy, những trợ lý AI này cung cấp phản hồi cụ thể và hướng dẫn để giúp người học xác định và sửa lỗi về ngữ pháp, cách diễn đạt và cấu trúc. Với nhiều mô hình AI để lựa chọn, người dùng có thể tìm thấy sự kết hợp hoàn hảo cho phong cách học tập và nhu cầu học tập của riêng họ. Với sự trợ giúp của những công cụ AI này, người học có thể đạt được mức độ chính xác và tự tin cao hơn trong việc viết, mở đường cho hiệu suất và kết quả tốt hơn trong kỳ thi IELTS.

Mẫu CLEAR IELTS Writing Task 2: Mẹo & Chiến Lược Hiệu Quả

Bài đăng “IELTS Writing Task 2 with CLEAR Template: Essential Tips & Strategies” trên WordPress cung cấp cho người học những mẹo và chiến lược quan trọng để đạt điểm cao trong phần Writing Task 2 của kỳ thi IELTS. Với phương pháp CLEAR Template, bài viết giúp người học dễ dàng cấu trúc bài văn của mình một cách rõ ràng và logic. Những điểm nổi bật của bài đăng bao gồm:

1. **Phương pháp CLEAR Template**: CLEAR (Context – Lead-in – Example – Analysis – Resolution) là công cụ hữu ích giúp người học tạo nền tảng vững chắc cho mỗi đoạn văn.
2. **Mẹo và chiến lược**: Bài viết chia sẻ những kỹ thuật viết hiệu quả như cách phát triển ý tưởng, sử dụng từ vựng đa dạng và phân tích vấn đề sâu sắc.
3. **Tính nhất quán và mạch lạc**: Nhấn mạnh tầm quan trọng của việc duy trì sự nhất quán trong lập luận và trình bày rõ ràng để đạt điểm tối đa.

Với những hướng dẫn cụ thể và thực tế, bài đăng này là tài liệu quý báu cho bất cứ ai muốn nâng cao kỹ năng viết IELTS một cách đáng kể.

Phản hồi

vi
×
Copy of EDU MARK BOT PRO
To assist non-expert users in creating educational and marketing content related to English teaching and learning, tailored for blog posts, social media, or specific learning contexts. The chatbot will generate content in Vietnamese with embedded English for relevant language-specific topics.