Skip to content

nnpqo/TechLingo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TechLingo - Learn Technical English Like Duolingo ๐Ÿš€

A modern, interactive web application for learning technical English vocabulary tailored for computer science professionals. Built with React, TypeScript, and Web APIs - completely free and offline-first.

โœจ Features

๐ŸŽฎ Gamified Learning

  • Level Progression: 6 levels from Novato ๐ŸŒฑ to Architect ๐Ÿ—๏ธ
  • XP System: Earn points for every exercise completed
  • Streaks: Build daily learning streaks with fire ๐Ÿ”ฅ multipliers
  • Achievements: Unlock badges as you progress

๐Ÿ“š 6 Technical Areas

  • ๐Ÿ” Cybersecurity - Firewall, encryption, phishing, vulnerabilities
  • ๐ŸŒ Web Frontend - DOM, React, CSS, responsive design
  • โš™๏ธ Backend - APIs, REST, databases, microservices
  • ๐Ÿ—„๏ธ Databases - SQL, schemas, transactions, optimization
  • ๐Ÿš€ DevOps - CI/CD, Docker, Kubernetes, monitoring
  • ๐ŸŒ Networking - Protocols, IP, DNS, VPN, CDN

๐Ÿ—ฃ๏ธ Speech Features (100% Free)

  • Text-to-Speech (TTS): Hear correct pronunciation via Web Speech API
  • Speech Recognition (STT): Practice pronunciation with AI evaluation
  • Pronunciation Scoring: 0-100% accuracy feedback

๐Ÿ’ช Exercise Types

  • Multiple choice questions
  • Fill-in-the-blank code snippets
  • Pronunciation practice
  • Listening & typing
  • Code context reading
  • True/False definitions

๐Ÿ“Š Progress Tracking

  • Activity heatmap (GitHub contributions style)
  • Per-area progress dashboard
  • Detailed statistics by difficulty level
  • Estimated time to next level

โš™๏ธ Customization

  • Light/Dark theme (dark optimized)
  • Sound effects toggle
  • Speech rate adjustment (0.5x to 2x)
  • Accent preference (US/UK English)

๐Ÿ› ๏ธ Tech Stack

  • React 18+ with TypeScript (strict mode)
  • Vite for lightning-fast builds
  • Tailwind CSS for responsive design
  • Framer Motion for smooth animations
  • Zustand for state management
  • React Router v6 for navigation
  • Web Speech API (native browser - no costs!)
  • localStorage for offline persistence

๐Ÿ“ฆ Installation

# Clone the repository
git clone https://github.com/yourusername/techlingo.git
cd techlingo

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

๐Ÿš€ Deployment

TechLingo is optimized for free deployment on Vercel, Netlify, or GitHub Pages:

Vercel (Recommended)

npm i -g vercel
vercel

Netlify

npm i -g netlify-cli
netlify deploy --prod

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ ui/              # Reusable components (Button, Card, Badge, etc)
โ”‚   โ”œโ”€โ”€ layout/          # Header, Sidebar, BottomNav
โ”‚   โ””โ”€โ”€ features/        # PronunciationCard, Exercises, etc
โ”œโ”€โ”€ pages/               # Route pages (Home, Areas, Glossary, Progress)
โ”œโ”€โ”€ hooks/               # Custom hooks (useSpeechSynthesis, useSpeechRecognition)
โ”œโ”€โ”€ store/               # Zustand stores (userStore, lessonStore, settingsStore)
โ”œโ”€โ”€ data/                # Term definitions for all 6 areas (90+ terms)
โ”œโ”€โ”€ types/               # TypeScript interfaces
โ”œโ”€โ”€ utils/               # Helper functions
โ””โ”€โ”€ App.tsx             # Main router

๐Ÿ“ Data Format

Each term includes:

{
  id: string;                    // Unique identifier
  english: string;               // English term
  spanish: string;               // Spanish translation
  phonetic: string;              // IPA notation
  pronunciation_guide: string;   // Spanish pronunciation guide
  definition_en: string;         // Full English definition
  definition_es: string;         // Full Spanish definition
  codeExample?: string;          // Real code where term is used
  contextSentence: string;       // Example sentence
  tags: string[];                // Search tags
  relatedTerms: string[];        // Links to related terms
}

๐ŸŽฏ Key Hooks

useSpeechSynthesis

const { speak, stop, isSupported } = useSpeechSynthesis();
speak("firewall", "en-US"); // Read term aloud

useSpeechRecognition

const { startListening, isListening, isSupported } = useSpeechRecognition();
startListening((result) => {
  console.log(`Score: ${result.score}%`); // 0-100
}, "firewall");

useProgress

const { profile, getLevelInfo, getAreaProgress, getTotalLearned } = useProgress();

๐Ÿ—๏ธ State Management

User Store (Zustand)

  • Profile (name, XP, level, streak)
  • Term progress (times correct/wrong, learned flag)
  • Completed lessons
  • Achievements

Settings Store

  • Theme preference
  • Sound enabled/disabled
  • Speech rate
  • Accent preference

Lesson Store

  • Current lesson state
  • Lives/health
  • XP earned in session
  • Exercise progress

๐Ÿ” Privacy & Offline

โœ… Zero server dependency - all data stored in browser localStorage
โœ… Completely offline - works without internet connection
โœ… No tracking - no analytics or telemetry
โœ… Private - no data shared or uploaded

๐Ÿค Contributing

Contributions welcome! Areas needing help:

  • More exercise types (matching, drag-drop, multiple select)
  • Mobile app (React Native)
  • Additional languages
  • Sound effect library
  • Lesson sequencing algorithm
  • Community term suggestions

๐Ÿ“„ License

MIT License - feel free to use, modify, and distribute

๐Ÿ™ Credits

  • Inspired by: Duolingo's gamification approach
  • Speech API: Browser's native Web Speech API
  • Icons: Lucide React
  • Animations: Framer Motion
  • Styling: Tailwind CSS

๐Ÿ“ง Support

Found a bug or have a feature request? Open an issue on GitHub!


Made with โค๏ธ for tech professionals learning English. Happy learning! ๐Ÿš€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors