Thanks to visit codestin.com
Credit goes to github.com

Skip to content

An interactive learning platform for mastering TypeScript through hands-on exercises, real-world examples, and interactive quizzes. Visit typescripttutor.arwindpianist.store to start learning!

License

Notifications You must be signed in to change notification settings

Arwindpianist/typescript-tutor

Repository files navigation

TypeScript Tutor

An interactive learning platform for mastering TypeScript through hands-on exercises, real-world examples, and interactive quizzes. Visit typescripttutor.arwindpianist.store to start learning!

πŸš€ Features

  • Interactive Lessons: Learn TypeScript through carefully structured lessons
  • Code Editor: Practice TypeScript directly in your browser with Monaco Editor
  • Progress Tracking: Save your progress locally and track your learning journey
  • Multiple Choice Quizzes: Test your knowledge with interactive quizzes
  • Responsive Design: Learn on any device - mobile, tablet, or desktop
  • Dark Mode: Comfortable viewing experience in any lighting condition
  • Search Functionality: Quickly find lessons and topics
  • Structured Learning Path: Follow a carefully designed curriculum

πŸ› οΈ Technologies Used

Core Technologies

  • Next.js 15: React framework for production
  • TypeScript: For type-safe code
  • React 19: UI library
  • Tailwind CSS: Utility-first CSS framework
  • next-themes: Dark mode support

UI Components

  • Radix UI: Accessible UI components
  • Lucide Icons: Beautiful icons
  • Monaco Editor: Code editor integration
  • React Markdown: Markdown rendering
  • Tailwind Merge: Utility for merging Tailwind classes
  • Class Variance Authority: For component variants

Form Handling & Validation

  • React Hook Form: Form management
  • Zod: Schema validation
  • @hookform/resolvers: Form validation resolvers

Testing

  • Jest: Testing framework
  • React Testing Library: Component testing
  • ts-jest: TypeScript support for Jest

πŸ—οΈ Project Structure

typescript-tutor/
β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”œβ”€β”€ lesson/            # Lesson pages
β”‚   β”œβ”€β”€ roadmap/           # Learning roadmap
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── page.tsx           # Homepage
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ ui/               # UI components
β”‚   β”œβ”€β”€ navigation.tsx    # Navigation bar
β”‚   └── quiz-block.tsx    # Quiz component
β”œβ”€β”€ lib/                  # Utility functions
β”‚   β”œβ”€β”€ lessons.ts        # Lesson data
β”‚   β”œβ”€β”€ progress.ts       # Progress tracking
β”‚   └── types.ts          # TypeScript types
β”œβ”€β”€ public/              # Static assets
└── styles/             # Global styles

πŸš€ Getting Started

Prerequisites

  • Node.js 18 or later
  • npm or yarn

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/typescript-tutor.git
cd typescript-tutor
  1. Install dependencies:
npm install
# or
yarn install
  1. Run the development server:
npm run dev
# or
yarn dev
  1. Open http://localhost:3000 in your browser.

Available Scripts

  • npm run dev: Start development server
  • npm run build: Build for production
  • npm run start: Start production server
  • npm run lint: Run ESLint
  • npm run test: Run tests
  • npm run type-check: Check TypeScript types
  • npm run format: Format code with Prettier

πŸ“š Learning Path

The curriculum is structured into three main difficulty levels:

Beginner

  • Introduction to TypeScript
  • Basic Types
  • Interfaces and Type Aliases
  • Functions and Parameters

Intermediate

  • Advanced Types
  • Generics
  • Type Guards
  • Utility Types

Advanced

  • Decorators
  • Advanced Generics
  • Type System Internals
  • Performance Optimization

πŸ’Ύ Progress Tracking

Your progress is automatically saved in your browser's local storage. This includes:

  • Completed lessons
  • Quiz scores
  • Exercise completions

🎨 Customization

Adding New Lessons

  1. Add lesson data to lib/lessons.ts
  2. Follow the existing lesson structure
  3. Include exercises and quizzes

Modifying Styles

  • Global styles are in app/globals.css
  • Component styles use Tailwind CSS
  • Dark mode styles are handled by next-themes

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

For support, please open an issue in the GitHub repository or contact us at [email protected].

About

An interactive learning platform for mastering TypeScript through hands-on exercises, real-world examples, and interactive quizzes. Visit typescripttutor.arwindpianist.store to start learning!

Resources

License

Stars

Watchers

Forks