syncmail

所属分类:Email客户端
开发工具:Dart
文件大小:0KB
下载次数:0
上传日期:2023-09-03 09:42:44
上 传 者sh-1993
说明:  AI电子邮件生成器Flutter应用程序,使用Syncloop构建,
(AI Email Generator Flutter app, built using Syncloop,)

文件列表:
.metadata (1668, 2023-09-03)
analysis_options.yaml (1453, 2023-09-03)
android/ (0, 2023-09-03)
android/app/ (0, 2023-09-03)
android/app/build.gradle (2196, 2023-09-03)
android/app/src/ (0, 2023-09-03)
android/app/src/debug/ (0, 2023-09-03)
android/app/src/debug/AndroidManifest.xml (413, 2023-09-03)
android/app/src/main/ (0, 2023-09-03)
android/app/src/main/AndroidManifest.xml (1736, 2023-09-03)
android/app/src/main/kotlin/ (0, 2023-09-03)
android/app/src/main/kotlin/com/ (0, 2023-09-03)
android/app/src/main/kotlin/com/example/ (0, 2023-09-03)
android/app/src/main/kotlin/com/example/syncloop/ (0, 2023-09-03)
android/app/src/main/kotlin/com/example/syncloop/MainActivity.kt (125, 2023-09-03)
android/app/src/main/res/ (0, 2023-09-03)
android/app/src/main/res/drawable-v21/ (0, 2023-09-03)
android/app/src/main/res/drawable-v21/launch_background.xml (438, 2023-09-03)
android/app/src/main/res/drawable/ (0, 2023-09-03)
android/app/src/main/res/drawable/launch_background.xml (434, 2023-09-03)
android/app/src/main/res/mipmap-hdpi/ (0, 2023-09-03)
android/app/src/main/res/mipmap-hdpi/ic_launcher.png (544, 2023-09-03)
android/app/src/main/res/mipmap-mdpi/ (0, 2023-09-03)
android/app/src/main/res/mipmap-mdpi/ic_launcher.png (442, 2023-09-03)
android/app/src/main/res/mipmap-xhdpi/ (0, 2023-09-03)
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (721, 2023-09-03)
android/app/src/main/res/mipmap-xxhdpi/ (0, 2023-09-03)
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (1031, 2023-09-03)
android/app/src/main/res/mipmap-xxxhdpi/ (0, 2023-09-03)
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (1443, 2023-09-03)
android/app/src/main/res/values-night/ (0, 2023-09-03)
android/app/src/main/res/values-night/styles.xml (995, 2023-09-03)
android/app/src/main/res/values/ (0, 2023-09-03)
android/app/src/main/res/values/styles.xml (996, 2023-09-03)
android/app/src/profile/ (0, 2023-09-03)
android/app/src/profile/AndroidManifest.xml (413, 2023-09-03)
android/build.gradle (592, 2023-09-03)
... ...

# SyncMail: AI Email Generator built using Syncloop SyncMail is an AI email generator that generates email based on subject and keywords provided by the user. It uses Google Palm API to generate the emails. SyncMail adds specifically engineered prompts to the user input to generate the emails. SyncMail's backend APIs are built using [SyncLoop](https://syncloop.com) and it uses Planetscale MySQL as a primary database and Vercel KV Redis database for caching. ## Demo
GIF ![syncmailDemo](https://github.com/WilfredAlmeida/syncmail/assets/60785452/3c8fb5ab-1ee9-4b77-b92c-253acd90de98)
Detailed Video https://youtu.be/hkgr-FWvJqo
App Screenhots ![image](https://github.com/WilfredAlmeida/syncmail/assets/60785452/ad6164bb-3189-48a8-8a0f-912f015b57ae) ![image](https://github.com/WilfredAlmeida/syncmail/assets/60785452/e9d89472-25b1-4cf6-99be-142044e27f85) ![image](https://github.com/WilfredAlmeida/syncmail/assets/60785452/1b295da5-6202-4af5-9e80-f8260316fd77) ![image](https://github.com/WilfredAlmeida/syncmail/assets/60785452/a02e1419-8358-496e-a85f-38ef1b6842de)
### The app has the following features - User Signup and Login - Viewing email prompts - Generating emails - Viewing all generated emails Tech Used: - Mobile: Flutter - Backend: Syncloop - Database: Planetscale MySQL - Caching: Vercel Redis KV ### System Architecture ![syncmail drawio](https://github.com/WilfredAlmeida/syncmail/assets/60785452/7cf2e3b4-f324-4a76-a3bf-28f1fd476e81) ### Database Schema ![SyncMail](https://github.com/WilfredAlmeida/syncmail/assets/60785452/a59d89b0-8301-4f4e-8a1f-2b9078b05438) ## Syncloop Services and APIs The package is named as `chaturmail` in Syncloop dashboard. Here's the exported package [1693724579810.zip](https://github.com/WilfredAlmeida/syncmail/files/12505337/1693724579810.zip) **Adapters** - `/chaturMail/adapter/connection/mydb`: Connection to the MySQL database - `/chaturMail/adapter/createUser`: SQL query for creating user while signup. Input: `{name: string, email: string}`. Output: `{userId: int}` - `/chaturMail/adapter/fetchEmails`: SQL query for fetching all user generated emails. Input: `{userId: int}`. Output: `{emails: [emails]}`, refer `emails` table in db schema for structure. - `/chaturMail/adapter/fetchPrompts`: SQL query for fetching all available prompts. Input: None. Output: `{prompts: [prompts]}`, refer `prompts` table in db schema for structure. - `/chaturMail/adapter/insertGeneratedEmails`: SQL query to insert generated emails into database. Input: `{userId: int, keywords: string, result: string, subject: string}`. Output: None - `/chaturMail/adapter/loginUser`: SQL query to check if users exists. Used for login if user with given email exists. Input: `{email: string}`. Output: `{id: int, name: string}` **APIs** - `POST`: `/chaturMail/email/generateEmail`: Generate email using given subject and prompts. Input: `{keywords: string, promptId: int, subject: string}, {headers.userIdHeaderString: string}`. Output: `{generatedEmail: string}` - `GET`: `/chaturMail/email/getEmails`: Get all emails generated by user. Input: `{userId: int}`, Output: `{emails: [emails]}`, refer `emails` table. - `GET`: `/chaturMail/prompts/getCachedPrompts`: Get prompts cached in the Redis DB. This aims to offload the primary database and provide faster response times. Input: None, Output: `{prompts: [prompts]}`, refer `prompts` table. - `GET`: `/chaturMail/prompts/getPrompts`: Get all prompts from database. Input: None, Output: `{prompts: [prompts]}`, refer `prompts` table. - `POST`: `/chaturMail/user/createUser`: Create a user. Used for signup. Input: `{email: text, name: text}`, Output: None - `POST`: `/chaturMail/user/login`: Login user if user exists. Input: `{email: string}`, Output: `{name: string, id: int}` **Java Services** - `/chaturMail/utils/StringCleaner`: The generated email text has unwanted special characters due to the structure of the prompts. This Java service sanitizes an input string and removes such unwanted characters. Input: `{inputString: string}`, Output: `{outputString: string}` - `/chaturMail/utils/stringToInt`: Converts input string to int. Flutter-Dart doesn't allow int values in request headers, this service parses the numeric string from the headers and converts it into int. Input: `{userIdHeaderString: string}`, Output: `{userIdInt: int}` **Middlewares Used** - `/middleware/pub/client/http/request`: To make HTTP request to Google Palm and Vercel DB APIs. ### API Screenshots
API Screenshots 1. Generate Email `/chaturMail/email/generateEmail` image 2. Get generated emails `/chaturMail/email/getEmails` image 3. Get cached prompts from Redis `/chaturMail/prompts/getCachedPrompts` image 4. Get all prompts `/chaturMail/prompts/getPrompts` image 5. Create user while signup `/chaturMail/user/createUser` image 6. Login user `/chaturMail/user/login` image

近期下载者

相关文件


收藏者