Skip to content

Latest commit

 

History

History
77 lines (64 loc) · 2.87 KB

README.md

File metadata and controls

77 lines (64 loc) · 2.87 KB

SulkuMail is a modern, cross-platform email client built with Kotlin Multiplatform and Compose, providing a consistent experience across Android, iOS, Desktop, and Server platforms. Project is on very early stages and at first the focus is adding full gmail support to read and delete emails, and later adding other mail providers + sending mails.

🛠Technology Stack

  • Kotlin Multiplatform - Share code between platforms
  • Kotlin Compose - Modern UI toolkit for all platforms
  • Ktor - HTTP client for network requests
  • Koin - Dependency injection
  • Google Credentials Manager & Identity service - Native Android & IOS login
  • Multiplatform Settings - Secure credential storage

Roadmap

  • Add proper support for multiple accounts
  • Add proper mail viewing capabilities
  • Implement secure credential storage
  • Implement local caching for offline access
  • Background synchronization
  • Complete account authentication flows on ios

Images

Currently under work

Account Management (Google)

  • Native Android Login
  • Desktop Login
  • Native IOS Login
  • Get account details, name,email & profile picture

Security & Storage

  • Android (DataStoreSettings)
  • Desktop (DataStoreSettings)
  • IOS (KeyChain)

Mail Functionality

  • Fetching mail logic
  • Delete mail Logic
  • Batch delete mails
  • Mail paginator/infinity scrolling
  • Background tasks for fetching mails
  • Store mails

User Interface

  • Siderbar containing users mail folders, Manage Accounts & Settings at the bottom
  • Basic view to see snippets of fetched mails
  • Complete mail content view with attachments
  • Display Users mail folders & info on sidebar
  • Settings UI
  • ManageAccounts UI (View & manage added Mail accounts)
  • Robust error handling
  • Add multiple gmail accounts

Project Setup

To setup the project do the following steps:

  1. Clone the repository

    git clone https://github.com/Zoltus/SulkuMail
  2. Open project in IntelliJ

  3. Create local.properties in project root directory with:

    sdk.dir=/path/to/your/android/sdk
    GOOGLE_API_SECRET=your_google_client_secret
    GOOGLE_CLIENT_ID=your_google_client_id
    GOOGLE_REDIRECT_URL=http://localhost:8079/callback // This is callback url for the jvm, jvm hosts own http server to receive google auth code, no need to change
    BACKEND_URL=your_backend_url