A mobile application that brings the German Bundestag to citizens' smartphones, allowing them to vote on parliamentary procedures and compare their choices with official results.
- Browse and search official German Bundestag procedures
- Vote on procedures as if you were a member of parliament
- Compare your voting behavior with the community and the Bundestag
- Analyze your agreement with different parties and candidates
- Receive notifications about important parliamentary activities
- React Native with Expo Router
- Apollo GraphQL client
- Styled Components
- TypeScript
- Recoil and Zustand for state management
- E2E testing with Maestro
- CI/CD with GitHub Actions
- Node.js
- pnpm package manager (v9.0.0+) - Install via
corepack enableornpm install -g pnpm - iOS development environment (for iOS)
- Xcode
- CocoaPods
- Android development environment (for Android)
- Android Studio
- Android SDK
-
Clone the repository:
git clone https://github.com/democracy-deutschland/democracy-client.git cd democracy-client -
Install dependencies:
pnpm install
-
Generate GraphQL types:
pnpm codegen
-
Start the development server:
pnpm start
-
Run on specific platforms:
pnpm ios # Run on iOS simulator pnpm android # Run on Android emulator
- Run type checking:
pnpm lint:ts - Run linter:
pnpm lint - Run doctor for Expo issues:
pnpm doctor
The project uses Maestro for end-to-end testing. See Testing Documentation for more information.
Run tests with:
pnpm test:e2e # Run all E2E tests
pnpm test:e2e:smoke # Run smoke tests only
pnpm test:e2e:verification # Run verification flow tests onlyThis project uses fastlane for both iOS and Android deployments.
- For iOS deployment details, see iOS Deployment
- For Android deployment details, see Android Deployment
src/app/- Expo Router app directorycomponents/- Reusable componentsscreens/- Screen componentsapi/- API and state management__generated__/- Generated GraphQL typeshooks/- Custom React hookslib/- Utility functionsdata/- Static data filestypes/- Type definitionsstyles/- Theme and styling configurations
.github/- GitHub workflows and CI configuration.maestro/- E2E testsdeploy/- Deployment configurationsandroid/- Android deployment settings and fastlane setupios/- iOS deployment settings and fastlane setup
assets/- Static assets
For a detailed explanation of the application architecture, see Architecture Documentation.
Apache License 2.0