Einbürgerungstest is a free, open-source, and user-friendly application for practicing the "Leben in Deutschland" test and the Einbürgerungstest (German naturalization test) created by a foreigner on a voluntary basis.
Website: https://www.ebtest.org/
If you like it, please give it a ⭐ on GitHub!
Disclaimer: The author takes no responsibility for any mistakes or inaccuracies. Pull requests and issues are welcome.
Questions are based on the official dataset from: www.bamf.de – Gesamtfragenkatalog zum Test „Leben in Deutschland“ und zum „Einbürgerungstest“, Stand: 07.05.2025
The app is available as a web application and a mobile app (Android/iOS) built with React and React Native, sharing common logic via Reflex library and a monorepo setup.
- Practice Questions: Over 300 questions categorized by topics like Recht, Gesellschaft und Familie, Staat, Politik, etc.
- Multiple Modes:
- Testing mode for practicing with statistics.
- Review mode for checking answers.
- Favorites: Mark questions as favorites for quick access.
- Vocabulary: Multilingual vocabulary support (English, Russian, Arabic, Turkish) for key terms.
- Offline Support: Works offline after initial load.
- Statistics: Track correct/incorrect answers and accuracy.
- Images: Some questions include illustrative images.
- Categories and Filtering: Browse questions by category or favorites.
- Frontend: React (Web), React Native (Mobile)
- State Management: Reflex (custom state management with events, effects, and subscriptions)
- Build Tools: Vite (Web), Metro (Mobile)
- Package Manager: pnpm
- Testing: Vitest
- Node.js >= 18
- pnpm (install globally:
npm install -g pnpm
) - For mobile: Android Studio (for Android), Xcode (for iOS), CocoaPods (for iOS)
-
Clone the repository:
git clone https://github.com/flexsurfer/einburgerungstest.git cd einburgerungstest
-
Install dependencies:
pnpm install
- Test:
pnpm test
(runs all tests)
- Development:
pnpm dev:web
(runs on http://localhost:4200) - Build:
pnpm build:web
- Start Metro:
pnpm dev:mobile
- Run on Android:
pnpm dev:run-android
- Run on iOS:
pnpm dev:run-ios
- For iOS, ensure Pods are installed:
cd app/mobile/ios && bundle exec pod install
The shared package contains common logic, data, events, and subscriptions used by both web and mobile apps.
- Test shared:
pnpm test:shared
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code passes tests and linting.
Distributed under the MIT License. See LICENSE
for more information.