diff --git a/src/components/SQLCourseVariant/ChapterRow.tsx b/src/components/SQLCourseVariant/ChapterRow.tsx
index c7c5fcb97..d54cfa81d 100644
--- a/src/components/SQLCourseVariant/ChapterRow.tsx
+++ b/src/components/SQLCourseVariant/ChapterRow.tsx
@@ -119,7 +119,7 @@ export function ChapterRow(props: ChapterRowProps) {
{challenges.map((challenge, index) => (
{challenge.type === 'challenge' ? (
diff --git a/src/components/SQLCourseVariant/SQLCourseVariantPage.tsx b/src/components/SQLCourseVariant/SQLCourseVariantPage.tsx
index e84a79534..a50003903 100644
--- a/src/components/SQLCourseVariant/SQLCourseVariantPage.tsx
+++ b/src/components/SQLCourseVariant/SQLCourseVariantPage.tsx
@@ -1,15 +1,7 @@
import {
- BrainIcon, CodeIcon,
- FileQuestionIcon,
- DatabaseIcon,
- TableIcon,
- LayersIcon,
- GitMergeIcon,
- WrenchIcon,
- BarChartIcon,
- GitBranchIcon,
- ArrowUpDownIcon,
- NotebookTextIcon
+ BrainIcon,
+ CodeIcon,
+ FileQuestionIcon, NotebookTextIcon
} from 'lucide-react';
import { Spotlight } from '../SQLCourse/Spotlight';
import { RoadmapLogoIcon } from '../ReactIcons/RoadmapLogo';
@@ -23,218 +15,7 @@ import { SectionHeader } from './SectionHeader';
import { ChapterRow } from './ChapterRow';
import { BuyButton } from './BuyButton';
import { FAQSection } from './FAQSection';
-
-type ChapterData = {
- icon: React.ReactNode;
- title: string;
- description: string;
- lessonCount: number;
- challengeCount: number;
- lessons: { title: string; type: 'lesson' | 'challenge' | 'quiz' }[];
-};
-
-export const sqlCourseChapters: ChapterData[] = [
- {
- icon:
,
- title: 'Introduction',
- description: 'Get comfortable with database concepts and SQL fundamentals.',
- lessonCount: 4,
- challengeCount: 1,
- lessons: [
- { title: 'Basics of Databases', type: 'lesson' },
- { title: 'What is SQL?', type: 'lesson' },
- { title: 'Types of Queries', type: 'lesson' },
- { title: 'Next Steps', type: 'lesson' },
- { title: 'Introduction Quiz', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'SQL Basics',
- description: 'Master the essential SQL query operations and syntax.',
- lessonCount: 9,
- challengeCount: 7,
- lessons: [
- { title: 'SELECT Fundamentals', type: 'lesson' },
- { title: 'Aliases and Constants', type: 'lesson' },
- { title: 'Expressions in SELECT', type: 'lesson' },
- { title: 'Selecting DISTINCT Values', type: 'lesson' },
- { title: 'Filtering with WHERE', type: 'lesson' },
- { title: 'Sorting with ORDER BY', type: 'lesson' },
- { title: 'Limiting Results with LIMIT', type: 'lesson' },
- { title: 'Handling NULL Values', type: 'lesson' },
- { title: 'Comments', type: 'lesson' },
- { title: 'Basic Queries Quiz', type: 'quiz' },
- { title: 'Projection Challenge', type: 'challenge' },
- { title: 'Select Expression', type: 'challenge' },
- { title: 'Select Unique', type: 'challenge' },
- { title: 'Logical Operators', type: 'challenge' },
- { title: 'Sorting Challenge', type: 'challenge' },
- { title: 'Sorting and Limiting', type: 'challenge' },
- { title: 'Sorting and Filtering', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Manipulating Data',
- description: 'Learn how to modify and manipulate data in your database.',
- lessonCount: 3,
- challengeCount: 3,
- lessons: [
- { title: 'INSERT Operations', type: 'lesson' },
- { title: 'UPDATE Operations', type: 'lesson' },
- { title: 'DELETE Operations', type: 'lesson' },
- { title: 'Data Manipulation Quiz', type: 'quiz' },
- { title: 'Inserting Customers', type: 'challenge' },
- { title: 'Updating Bookstore', type: 'challenge' },
- { title: 'Deleting Books', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Defining Tables',
- description: 'Master database schema design and table management.',
- lessonCount: 9,
- challengeCount: 7,
- lessons: [
- { title: 'Creating Tables', type: 'lesson' },
- { title: 'Data Types in SQLite', type: 'lesson' },
- { title: 'Common Data Types', type: 'lesson' },
- { title: 'More on Numeric Types', type: 'lesson' },
- { title: 'Temporal Data Types', type: 'lesson' },
- { title: 'CHECK Constraints', type: 'lesson' },
- { title: 'Primary Key Constraint', type: 'lesson' },
- { title: 'Modifying Tables', type: 'lesson' },
- { title: 'Dropping and Truncating', type: 'lesson' },
- { title: 'Defining Tables Quiz', type: 'quiz' },
- { title: 'Simple Table Creation', type: 'challenge' },
- { title: 'Data Types Challenge', type: 'challenge' },
- { title: 'Constraints Challenge', type: 'challenge' },
- { title: 'Temporal Validation', type: 'challenge' },
- { title: 'Sales Data Analysis', type: 'challenge' },
- { title: 'Modifying Tables', type: 'challenge' },
- { title: 'Removing Table Data', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Multi-Table Queries',
- description:
- 'Learn to work with multiple tables using JOINs and relationships.',
- lessonCount: 7,
- challengeCount: 10,
- lessons: [
- { title: 'More on Relational Data', type: 'lesson' },
- { title: 'Relationships and Types', type: 'lesson' },
- { title: 'JOINs in Queries', type: 'lesson' },
- { title: 'Self Joins and Usecases', type: 'lesson' },
- { title: 'Foreign Key Constraint', type: 'lesson' },
- { title: 'Set Operator Queries', type: 'lesson' },
- { title: 'Views and Virtual Tables', type: 'lesson' },
- { title: 'Multi-Table Queries Quiz', type: 'quiz' },
- { title: 'Inactive Customers', type: 'challenge' },
- { title: 'Recent 3 Orders', type: 'challenge' },
- { title: 'High Value Orders', type: 'challenge' },
- { title: 'Specific Book Customers', type: 'challenge' },
- { title: 'Referred Customers', type: 'challenge' },
- { title: 'Readers Like You', type: 'challenge' },
- { title: 'Same Price Books', type: 'challenge' },
- { title: 'Multi-Section Authors', type: 'challenge' },
- { title: 'Expensive Books', type: 'challenge' },
- { title: 'Trending Tech Books', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Aggregate Functions',
- description:
- "Analyze and summarize data using SQL's powerful aggregation features.",
- lessonCount: 4,
- challengeCount: 10,
- lessons: [
- { title: 'What is Aggregation?', type: 'lesson' },
- { title: 'Basic Aggregation', type: 'lesson' },
- { title: 'Grouping Data', type: 'lesson' },
- { title: 'Grouping and Filtering', type: 'lesson' },
- { title: 'Aggregate Queries Quiz', type: 'quiz' },
- { title: 'Book Sales Summary', type: 'challenge' },
- { title: 'Category Insights', type: 'challenge' },
- { title: 'Author Tier Analysis', type: 'challenge' },
- { title: 'Author Book Stats', type: 'challenge' },
- { title: 'Daily Sales Report', type: 'challenge' },
- { title: 'Publisher Stats', type: 'challenge' },
- { title: 'High Value Publishers', type: 'challenge' },
- { title: 'Premium Authors', type: 'challenge' },
- { title: 'Sales Analysis', type: 'challenge' },
- { title: 'Employee Performance', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Scalar Functions',
- description:
- 'Master built-in functions for data transformation and manipulation.',
- lessonCount: 6,
- challengeCount: 5,
- lessons: [
- { title: 'What are they?', type: 'lesson' },
- { title: 'String Functions', type: 'lesson' },
- { title: 'Numeric Functions', type: 'lesson' },
- { title: 'Date Functions', type: 'lesson' },
- { title: 'Conversion Functions', type: 'lesson' },
- { title: 'Logical Functions', type: 'lesson' },
- { title: 'Scalar Functions Quiz', type: 'quiz' },
- { title: 'Customer Contact List', type: 'challenge' },
- { title: 'Membership Duration', type: 'challenge' },
- { title: 'Book Performance', type: 'challenge' },
- { title: 'Book Categories', type: 'challenge' },
- { title: 'Monthly Sales Analysis', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Subqueries and CTEs',
- description:
- 'Write complex queries using subqueries and common table expressions.',
- lessonCount: 4,
- challengeCount: 6,
- lessons: [
- { title: 'What are Subqueries?', type: 'lesson' },
- { title: 'Correlated Subqueries', type: 'lesson' },
- { title: 'Common Table Expressions', type: 'lesson' },
- { title: 'Recursive CTEs', type: 'lesson' },
- { title: 'Subqueries Quiz', type: 'quiz' },
- { title: 'Books Above Average', type: 'challenge' },
- { title: 'Latest Category Books', type: 'challenge' },
- { title: 'Low Stock by Category', type: 'challenge' },
- { title: 'Bestseller Rankings', type: 'challenge' },
- { title: 'New Customer Analysis', type: 'challenge' },
- { title: 'Daily Sales Report', type: 'challenge' },
- ],
- },
- {
- icon:
,
- title: 'Window Functions',
- description: 'Advanced analytics and calculations using window functions.',
- lessonCount: 5,
- challengeCount: 7,
- lessons: [
- { title: 'What are they?', type: 'lesson' },
- { title: 'OVER and PARTITION BY', type: 'lesson' },
- { title: 'Use of ORDER BY', type: 'lesson' },
- { title: 'Ranking Functions', type: 'lesson' },
- { title: 'Window Frames', type: 'lesson' },
- { title: 'Window Functions Quiz', type: 'quiz' },
- { title: 'Basic Sales Metrics', type: 'challenge' },
- { title: 'Bestseller Comparison', type: 'challenge' },
- { title: 'Author Category Sales', type: 'challenge' },
- { title: 'Top Authors', type: 'challenge' },
- { title: 'Price Tier Rankings', type: 'challenge' },
- { title: 'Month-over-Month Sales', type: 'challenge' },
- { title: 'Price Range Analysis', type: 'challenge' },
- ],
- },
-];
+import { sqlCourseChapters } from '../SQLCourse/SQLCoursePage';
export function SQLCourseVariantPage() {
return (
@@ -272,19 +53,19 @@ export function SQLCourseVariantPage() {