Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💬 Improve Appwrite Messaging with Socketlabs Adapter #6405

Closed
5 tasks
christyjacob4 opened this issue Oct 1, 2023 · 27 comments
Closed
5 tasks

💬 Improve Appwrite Messaging with Socketlabs Adapter #6405

christyjacob4 opened this issue Oct 1, 2023 · 27 comments
Assignees
Labels
hacktoberfest Issues that can win you some cool swags!

Comments

@christyjacob4
Copy link
Member

💭 Introduction

Having an app is cool, but having integrations is even cooler! 😎 It always brings a smile to my face when a website has the option to sign in with my GitHub account, so I don't have to go over the lengthy process of creating an account… The same can be said about messages! Every app with the option to enable push notifications, email, or SMS notifications gives the users confidence they won't miss anything important. We all have our channels we check the most, and having the ability to connect some app directly in there is always a positive.

Appwrite will use Utopia PHP messaging library to allow developers to get in touch with users using one of its many messaging adapters, such as Email, Discord, or Slack.

Since the messaging library supports adapters, there is always space for more. 😎 Each provider implements a method to send the message to the correct channel (usually using an HTTP request or a library) alongside a few configuration variables and methods to set what the adapter allows.

Your task is to implement support for Socketlabs in the Utopia PHP messaging library. This goes under Email category, so feel free to look at existing ones in the adapters folder. We have prepared detailed documentation on how to add a new messaging adapter. Please read the document and ensure you understand them before working on this issue.

🎯 Requirements

✅ Task Summary

  • Ask to be assigned to the issue.
  • Wait to be assigned.
  • Implement Utopia PHP logger adapter for Email/Socketlabs.
  • Submit a pull request in utopia-php/messaging.
  • Write a blog post on the platform of your choosing on how to integrate and use the adapter you just created.

If you have questions, need any help, or just want to hang out, make sure to join us on our Discord server.

Happy Appwriting!

@christyjacob4 christyjacob4 added the hacktoberfest Issues that can win you some cool swags! label Oct 1, 2023
@Vidip-Ghosh
Copy link

Vidip-Ghosh commented Oct 1, 2023

I would like to work on this issue. Please assign this to me under Hacktoberfest.

@tessamero
Copy link

hi @Vidip-Ghosh , you've been assigned to the issue. Please keep us updated every 3 days so we know you are still working on it, so the issue doesn't get reassigned :)

happy coding 😃

@Vidip-Ghosh
Copy link

hi @Vidip-Ghosh , you've been assigned to the issue. Please keep us updated every 3 days so we know you are still working on it, so the issue doesn't get reassigned :)

happy coding 😃

Yes sure

@Vidip-Ghosh
Copy link

@tessamero I need some guidance to get started with this issue.

@Haimantika
Copy link
Contributor

@tessamero I need some guidance to get started with this issue.

Hi, please ask any queries in our Discord server

@utkershrajvenshi
Copy link

Hi @Haimantika , I'd like to work on this issue next in case of inactivity from the current assignee.

@drraghavendra
Copy link

Hi @Haimantika @christyjacob4 can you assign the issue to me.

@drraghavendra
Copy link

drraghavendra commented Oct 9, 2023

To improve Appwrite Messaging with Socketlabs Adapter,the below insights are represented as follows:

Add support for more Socketlabs features. For example, we could add support for sending transactional emails, tracking email opens and clicks, and managing email templates.
Improve the performance of the adapter. For example, we could optimize the code to send emails more quickly and efficiently.
Make the adapter more user-friendly. For example, you could provide better documentation and tutorials.

Here are some specific ideas for improving the Socketlabs adapter:

Add support for sending transactional emails. This would allow developers to use Appwrite Messaging to send emails that are triggered by specific events, such as when a user signs up for a service or makes a purchase.
Add support for tracking email opens and clicks. This would allow developers to track how their emails are performing and identify areas where they can improve.
Add support for managing email templates. This would allow developers to create and manage reusable email templates that they can use to send emails quickly and easily.
Improve the performance of the adapter by optimizing the code to send emails more quickly and efficiently. For example, the adapter could use batching to send multiple emails at once, or it could use a caching mechanism to store frequently used email addresses.
Make the adapter more user-friendly by providing better documentation and tutorials. The documentation should explain how to use the adapter to send emails, track email opens and clicks, and manage email templates. The tutorials should provide step-by-step instructions on how to perform common tasks, such as sending a welcome email to a new user or tracking email opens for a marketing campaign.

By making these improvements, the Socketlabs adapter can be made more powerful, user-friendly, and efficient. This would benefit all Appwrite developers who need to send emails using their applications.

@Vidip-Ghosh
Copy link

Vidip-Ghosh commented Oct 10, 2023

@Haimantika
I'm sorry for the delay.
I wasn't able to work on this due to some work & also I am contributing to this application for the first time, so I am trying to get familiar with things & understanding requirements.
I'll work on it. Thank you!

@drraghavendra
Copy link

drraghavendra commented Oct 10, 2023

please review the source code #6873 @tessamero

@Haimantika
Copy link
Contributor

please review the source code #6873 @tessamero

Hi, the issue wasn't assigned to you, please do not raise a PR unless the issue is assigned to you. You may close it.

@Haimantika
Copy link
Contributor

@Vidip-Ghosh removing you from the issue then. @utkershrajvenshi you are next in-line, do you want to work on it?

@Haimantika
Copy link
Contributor

Also @drraghavendra we are assigning issues on a first-come, first-serve basis. The issue will go to you, only if @utkershrajvenshi decides to drop off

@utkershrajvenshi
Copy link

Sure @Haimantika , I'll get started on setting up the project locally and aim to provide timely updates

@airwakz
Copy link

airwakz commented Oct 12, 2023

please assign the task to me so that i can start working on this task

@drraghavendra
Copy link

Hey @Haimantika Please assign the issue as I will complete asap

@Haimantika
Copy link
Contributor

Sure @Haimantika , I'll get started on setting up the project locally and aim to provide timely updates

Assigned to you

@utkershrajvenshi
Copy link

UPDATE: Went through the Utopia library and referred to email adapters presently in use. Also, read up on the guide to adding a new messaging adapter. Will be starting on integration shortly.

@Haimantika
Copy link
Contributor

UPDATE: Went through the Utopia library and referred to email adapters presently in use. Also, read up on the guide to adding a new messaging adapter. Will be starting on integration shortly.

Hi @utkershrajvenshi how is the coding going? Any questions?

@utkershrajvenshi
Copy link

Hi @Haimantika . I have been able to build an email adapter referencing sample adapters and SocketLabs API documentation. I need to test my implementation once before raising PR.
Stuck there so will reach out for help in the server.

@utkershrajvenshi
Copy link

Hi @Haimantika . I haven't been able to give time to this issue for the past few days. Requesting you to unassign me and assign this issue to the next contributor in queue.

@drraghavendra
Copy link

drraghavendra commented Oct 25, 2023

@christyjacob4 @Haimantika can you aassign the issue to me.

@Haimantika
Copy link
Contributor

@christyjacob4 @Haimantika can you aassign the issue to me.

You are next in line, assigning it to you

@drraghavendra
Copy link

drraghavendra commented Oct 26, 2023

Integrating SocketLabs with Appwrite Messaging is a multi-step process. Appwrite provides a set of APIs for sending messages, and SocketLabs provides a reliable email delivery platform. Here's a general outline of how you can improve Appwrite Messaging with the SocketLabs adapter:

  1. SocketLabs Account Setup:
  2. Sign up for a SocketLabs account and get your API credentials. You will need your Server ID and Injection API Key.
  3. Appwrite Environment Setup:
  4. Make sure you have Appwrite set up and running. You can use Appwrite's Docker installation or host it on the cloud.
  5. SocketLabs Adapter Implementation:
  6. Create a SocketLabs adapter that connects to their APIs. You may use a library like axios in Node.js to make HTTP requests to SocketLabs.
  7. Appwrite Integration:
  8. Use Appwrite's messaging API to send emails. To do this, you can create a function in your Node.js server that sends emails. In this function, you should use the SocketLabs adapter to send the email via the SocketLabs API. Ensure you handle email templates and content properly.
  9. Error Handling:
  10. Implement error handling and logging for both the Appwrite messaging and the SocketLabs integration. Ensure that you properly handle and report any errors that may occur during the sending process.
  11. Testing:
  12. Test your email sending functionality to make sure it works correctly. Ensure you receive the emails as expected. Consider implementing unit tests to validate the email sending function.
  13. Performance and Scalability:
  14. Optimize the performance of your email sending process, and ensure it is scalable for a large number of email requests.
  15. Monitoring and Analytics:
  16. Implement monitoring and analytics for your email sending process. Tools like Sentry or similar services can help track issues.
  17. Security:
  18. Make sure to securely store your API keys, and follow best practices for handling sensitive data.
  19. Documentation:
  20. Document your integration process, including the setup of SocketLabs, the implementation in your Appwrite project, and how to send emails using your solution.
  21. Remember to continuously monitor your email sending system for reliability, performance, and security. This integration will enable you to send emails using SocketLabs through your Appwrite application.

@drraghavendra
Copy link

By Tomorrow I will provide the Solution @christyjacob4 @Haimantika

@drraghavendra
Copy link

Request you @christyjacob4 to review and check the PR #7032 associated with the above issue

@adityaoberai
Copy link
Member

Closing this issue. Thank you so much for participating in Hacktoberfest 2023! We can't wait to welcome you all during HF 2024! Stay tuned for a lot more amazing issues from the Appwrite team!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hacktoberfest Issues that can win you some cool swags!
Projects
None yet
Development

No branches or pull requests

8 participants