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
- Yarn package manager (v1.22.19+)
- 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:
yarn install
-
Generate GraphQL types:
yarn codegen
-
Start the development server:
yarn start
-
Run on specific platforms:
yarn ios # Run on iOS simulator yarn android # Run on Android emulator
- Run type checking:
yarn lint:ts
- Run linter:
yarn lint
- Run doctor for Expo issues:
yarn doctor
The project uses Maestro for end-to-end testing. See Testing Documentation for more information.
Run tests with:
yarn test:e2e # Run all E2E tests
yarn test:e2e:smoke # Run smoke tests only
yarn test:e2e:verification # Run verification flow tests only
This 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