New paste Repaste Download
# Chrono Mail - Phase 0 (Proof of Concept)
## Goal
Build a minimal working email client.
Features:
* Google Login
* Generic IMAP Login
* Fetch Inbox
* Read Email
* Send Email
* Download Attachments
* Local Cache
* Offline Reading
* Background Sync (basic)
* Local Notifications
Ignore
* Clean Architecture
* Plugin System
* AI
* Encryption
* Remote Config
* Themes
* Backend
* Advanced UI
---
# Flutter Version
Latest Stable
---
# Packages
## Authentication
```yaml
google_sign_in:
flutter_appauth:
flutter_secure_storage:
```
---
## Email
```yaml
enough_mail:
mailer:
```
---
## State
```yaml
flutter_riverpod:
riverpod_annotation:
riverpod_generator:
```
---
## Database
```yaml
objectbox:
objectbox_flutter_libs:
```
---
## Network
```yaml
dio:
connectivity_plus:
```
---
## Notifications
```yaml
flutter_local_notifications:
workmanager:
```
---
## Utilities
```yaml
logger:
path_provider:
file_picker:
permission_handler:
intl:
uuid:
collection:
```
---
# Folder Structure
```text
lib/
main.dart
app.dart
core/
models/
services/
providers/
pages/
widgets/
database/
```
---
# Models
## EmailAccount
Fields
```
id
email
displayName
provider
accessToken
refreshToken
```
---
## EmailFolder
```
id
name
unreadCount
```
---
## EmailMessage
```
id
folderId
subject
from
to
cc
bcc
body
htmlBody
date
isRead
isStarred
hasAttachment
```
---
## Attachment
```
id
emailId
name
size
mimeType
path
```
---
# Services
## AuthService
Methods
```
loginGoogle()
loginImap()
logout()
refreshToken()
```
---
## MailService
Methods
```
connect()
disconnect()
fetchFolders()
fetchInbox()
fetchMessage()
fetchAttachments()
downloadAttachment()
sendEmail()
delete()
move()
markRead()
search()
idle()
```
---
## DatabaseService
Methods
```
saveEmails()
getEmails()
getEmail()
saveFolders()
saveAttachments()
delete()
clear()
```
---
## NotificationService
Methods
```
initialize()
showNewMail()
```
---
## BackgroundSyncService
Methods
```
start()
stop()
sync()
```
---
# Riverpod Providers
```
authProvider
mailProvider
databaseProvider
notificationProvider
backgroundSyncProvider
```
---
# Pages
```
SplashPage
LoginPage
AccountsPage
InboxPage
EmailViewPage
ComposePage
SettingsPage
```
---
# Flow
```
Splash
Check Login
Login
Fetch Inbox
Save to ObjectBox
Open Inbox
Open Email
Read Body
Compose
Send
```
---
# Sync
Every app launch
```
Connect
Fetch latest emails
Compare IDs
Save new emails
Notify UI
```
---
# Background
Use
```
Workmanager
Run sync
Show Local Notification
```
---
# ObjectBox
Create Boxes
```
Accounts
Folders
Emails
Attachments
```
---
# MVP Checklist
* Google Login
* Generic IMAP Login
* Fetch Inbox
* Read Email
* Compose
* Send Email
* Local Database
* Offline Reading
* Attachment Download
* Background Sync
* Local Notification
---
# Ignore Until Phase 1
* Clean Architecture
* SOLID
* Modularization
* Plugin System
* AI
* Encryption
* Remote Config
* Logging
* Testing
* Animations
* Responsive Layout
* Multiple Accounts
* Threading
* Search
* Themes
* Push Notifications
* Backend
Goal is only to prove that the complete email flow works.
Filename: None. Size: 4kb. View raw, , hex, or download this file.

This paste expires on 2026-06-25 10:26:27.453906+00:00. Pasted through web.