This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop (JVM), Server.
egoodist is built around a 3-phase roadmap that transforms charity into a daily mental hygiene ritual.
- Welcome Journey: A calming introduction to the "Digital Pushke" concept.
- Budget Slider: Simple setting of monthly limits ($15/month defaulting to $0.50/day).
- Trust Pool: Cause-based selection (Ecology, Animals, etc.) to avoid choice paralysis.
- Payment Mockup: Seamless Apple/Google Pay integration flow.
- Daily Approval: One-tap interaction to confirm daily donations.
- Tangible Impact: Each donation is linked to a specific, tangible outcome (e.g., "Clean the Pacific Ocean").
- Dopamine Hit: Micro-animations and streak tracking to reward the act of giving.
- Humanity Profile: Visualization of total impact, days active, and causes supported.
- Breakdown: Donut charts showing distribution across categories.
- History Ledger: Transparent list of all past donations.
- Viral Sharing: Shareable impact cards for social media.
- Standardized Web Export: Standalone
<wnhlp-payment>web component for third-party charity embedding, implementing ZBP QR and RFC 8905 (payto:) standards. (Learn more)
-
/composeApp is for code that will be shared across your Compose Multiplatform applications.
- commonMain is for code that’s common for all targets.
- androidMain, iosMain, jvmMain for platform-specific implementations.
-
/shared is for low-level business logic and constants shared between client and server.
-
/server is for the Ktor server application.
The app supports multiple languages to reach a global audience:
- English (Default)
- Polish (Polski)
- Belarusian (Беларуская)
./gradlew :composeApp:assembleDebug./gradlew :composeApp:run./gradlew :composeApp:wasmJsBrowserDevelopmentRunTip
Use ./gradlew compressWasmJs to pre-compress production assets using Gzip, Brotli, and Zstd for optimized delivery via Caddy.
./gradlew :server:runCore logic is covered by unit tests:
DonationRecordTest: Validates donation state and formatting.MockDonationGeneratorTest: Ensures correct randomization and stat calculation.
Run tests with:
./gradlew testLearn more about Kotlin Multiplatform, Compose Multiplatform, Kotlin/Wasm…