Welcome to PolishDom, a platform for learning Polish language through interactive lessons and quizzes. This project combines modern web technologies to create an engaging learning experience. π
- π Multiple question types:
- Multiple choice questions
- Fill-in-the-blank exercises
- True/False questions
- π― Interactive quiz system with:
- Progress tracking
- Score calculation
- Streak counter
- Hint system
- π Audio feedback for correct/incorrect answers
- π± Responsive design with smooth animations
- π Dark/Light mode support
- π Real-time progress tracking
- π Quiz review and reset functionality
- π Theory section with:
- Markdown content support
- Text-to-speech functionality
- Interactive navigation
- β‘ Next.js 15
- βοΈ React 19
- π TypeScript
- π¨ Tailwind CSS with typography plugin
- β¨ Framer Motion for animations
- π€ AI Integration:
- OpenAI
- Anthropic
- Google AI
- π― Radix UI Components
- π React Markdown with GFM support
- π Sonner for toast notifications
- β Zod for schema validation
- Clone the repository:
git clone https://github.com/mirvald-space/app.polishdom.git
cd app.polishdom
- Install dependencies:
npm install
# or
yarn install
# or
pnpm install
-
Set up environment variables:
- Copy
.env.example
to.env
- Add your API keys:
GOOGLE_API_KEY=your_google_api_key ANTHROPIC_API_KEY=your_anthropic_api_key OPENAI_API_KEY=your_openai_api_key
- Copy
-
Start the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
- Open http://localhost:3000 in your browser π
app.polishdom/
βββ app/ # Next.js app directory
β βββ (preview)/ # Preview routes
β βββ api/ # API routes
βββ components/ # React components
β βββ ui/ # UI components
β βββ quiz.tsx # Main quiz component
β βββ quiz-overview.tsx # Quiz review component
β βββ theory.tsx # Theory section component
β βββ question-types.tsx # Question type components
β βββ audio-player.tsx # Audio feedback component
β βββ markdown.tsx # Markdown renderer
βββ lib/ # Utility functions and configurations
β βββ schemas.ts # Zod schemas
β βββ utils.ts # Helper functions
βββ public/ # Static assets
βββ types/ # TypeScript type definitions
Contributions are welcome! Feel free to submit a Pull Request. Let's make this project even better together! πͺ
MIT
PolishDom is designed to make Polish language learning accessible and engaging. The platform provides interactive lessons with theory sections and quizzes to help learners practice and reinforce their knowledge. Whether you're a beginner or looking to improve your Polish skills, PolishDom offers a structured approach to learning. π
Made with β€οΈ by Vadym