AFK-AlignedFamKernel / afk_monorepo

AFK: Aligned Fam Kernel - Monorepo
https://afk-community.xyz
MIT License
14 stars 34 forks source link

Message private in DM with Screens, components #37

Closed MSghais closed 2 months ago

MSghais commented 2 months ago

Create a screen and components for Private messages between users in DM, with encryption.

It can be split into different issues and PR.

NIP details here:

https://github.com/nostr-protocol/nips/blob/master/17.md

https://github.com/nostr-protocol/nips/blob/master/44.md

https://github.com/nostr-protocol/nips/blob/master/59.md

Related to #38 for hooks and utils

ikemHood commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hey @MSghais, I am ikem Peter. a fullstack software developer with 3+ years of working experience

How I plan on tackling this issue

Here is how i would approach this...

lindsaymoralesb commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi! My name is Lindsay, and I'm a Software Engineer based in Costa Rica. I'm part of Dojo Coding and thanks to that I've already successfully contributed to 4 ODHacks in various projects, feel free to check my profile and contributions. I've been working over the past 4.5 years as a full stack developer, specializing myself in frontend development. I've successfully integrated APIs, developed new features, optimize projects, improving responsiveness, etc with the most known/used FE frameworks such as React, Next, Vue, and Angular. All this experience plus some courses I've taken had helped me master both javascript and typescript languages.

How I plan on tackling this issue

Here's how I would attack the problem:

  1. I already started by checking out the shared NIP details.
  2. Check if there's a figma or something I could base on to build the components and screen.
  3. I like to use the atomic design approach to build apps, but I'd check if that's a possibility in the project.
  4. Start by breaking up the screen into pieces to confirm the exact components that I'd need to build.
  5. Also check the hooks and utils to use them in the components.

I estimate this would take me no longer than three days. Ofc depending on issue #38 and the complexity of the design.

ShantelPeters commented 2 months ago

Hi @MSghais can I work on this

onlydustapp[bot] commented 2 months ago

Hey @ShantelPeters! Thanks for showing interest. We've created an application for you to contribute to AFK - Aligned Fam Kernel. Go check it out on OnlyDust!

Supa-mega commented 2 months ago

HI @MSghais i am a front end developer with 6 years experience and will love the opportunity to be assigned this task

onlydustapp[bot] commented 2 months ago

Hey @Supa-mega! Thanks for showing interest. We've created an application for you to contribute to AFK - Aligned Fam Kernel. Go check it out on OnlyDust!

sajalbnl commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I have 2 years of experience as a front-end developer, with expertise in JavaScript, React.js, CSS, and HTML. I've built full-stack projects like Crypto Bank, handling both front-end and back-end development. My skills in creating responsive, dynamic interfaces make me well-equipped to contribute effectively to your project.

Ugo-X commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

My background and how it can be leveraged: I am a Full Stack blockchain Developer with expertise in Next.js, Nest.js, TypeScript, JavaScript, React, Node.js, Three.js, and Solidity. My journey with OnlyDust hackathons began at Edition 1, and I've since made 47 contributions across 11 projects. With my extensive experience on the OnlyDust platform (profile: https://app.onlydust.com/u/Ugo-X), I've honed my skills in delivering quality solutions under pressure. I bring a unique blend of technical proficiency and user-focused design to every project, whether it's crafting immersive 3D experiences or developing smart contracts. My track record shows I can adapt quickly and contribute effectively to diverse challenges. As we surf through Edition 7, I'm excited to leverage my skills and hackathon experience to push the boundaries of blockchain development. I'm confident in my ability to tackle new challenges and drive innovation in this space.

How I plan on tackling this issue

here's how I would approach this task:

Issue 1: Create a Screen for Private Messages between Users in DM

Description: I will implement a screen that displays private messages between users in a direct messaging (DM) context. This screen will support end-to-end encryption as per the Nostr protocol specifications outlined in the provided NIP details.

Tasks:

  1. I will design the UI layout for the private messages screen, including sections for the list of discussions, the message view, and the message input.
  2. I will implement the main private messages screen component, which will serve as the container for the other sub-components.
  3. I will ensure the screen can handle different states, such as loading, error, and empty message history.
  4. I will integrate the necessary hooks and utility functions to handle the encryption/decryption of messages, as per the Nostr protocol.

Related NIP Details:

Issue 2: Create Components for Private Messages

Description: I will implement the necessary components to display the list of discussions, individual messages, and the scrollable message view within the private messages screen.

Tasks:

  1. I will create a DiscussionList component that displays the list of ongoing private message discussions.
  2. I will implement a MessageItem component to render individual messages, handling the encryption/decryption as needed.
  3. I will develop a MessageView component that manages the scrollable view of the message history, optimizing it for performance.
  4. I will ensure the components work seamlessly together within the main private messages screen.
  5. I will leverage the hooks and utility functions mentioned in the related issue.

Related Issue:

Pull Request (PR) Workflow: By breaking down the task into smaller, manageable issues and following a structured pull request workflow, I can ensure a smooth and organized development process for the private messages feature.

  1. I will create a new branch for the "Private Messages" feature.
  2. I will submit a pull request for the first issue, "Create a Screen for Private Messages between Users in DM".
  3. After the first PR is merged, I will submit a pull request for the second issue, "Create Components for Private Messages".
  4. I will ensure the pull requests include comprehensive tests and documentation for the implemented features.
  5. I will collaborate with the team to address any feedback or reviews during the pull request process.

I can deliver this within 5 days.

Zeegaths commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I write react on blockchain projects

How I plan on tackling this issue

Check existing UI, create new components, match the existing styles while implementing the features

MatiasAchucarro commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a passionate and results-driven web developer, currently deepening my knowledge in web3 technologies, Cairo, and open-source development through Dojo Coding. My skill set includes expertise in JavaScript, React, HTML, CSS, C# with .NET Entity Framework, and more. I also have experience with tools like Git, GitHub, SQL Server, and Postman. My focus has been on building solid web applications, from task lists to full-fledged CRUD systems, with front-end, back-end, and database integration.

This will be my first contribution to the open-source ecosystem, and I am excited to learn and collaborate on innovative projects, particularly those involving Cairo.

How I plan on tackling this issue

First, I’d design the user interface to include a discussion list, message view, and a message input bar. Next, I’d implement the communication with relays using the NIP-17 protocol to handle encrypted message exchange. I’d ensure that the messages follow the event format described in NIP-44 and that data encoding complies with NIP-59. Finally, I’d conduct thorough testing to make sure that messaging and encryption work correctly and seamlessly.

Benjtalkshow commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi @MSghais

I'm interested in tackling the issue of creating a screen and components for private messages between users in direct messages (DM) with encryption, as outlined in related issue #38. This will be my first contribution to this project, but I bring 3 years of experience with Next.js, TypeScript, and advanced frontend development. I have successfully tackled complex tasks in projects like Opscan and the Blink extension. Here is my profile : https://app.onlydust.com/u/Benjtalkshow

How I plan on tackling this issue

1. Create a Private Messaging Screen

2. Implement Components for Discussions and Messages

3. Integrate Encryption Based on NIPs

Technical Steps

  1. Setup and Configuration:
    I will ensure that all necessary libraries and dependencies for encryption and decryption are properly installed and configured.

  2. Component Development:
    I will create React components for the message screen and discussion list, ensuring that they adhere to design guidelines and handle state management effectively.

  3. Encryption Integration:
    I will implement encryption functions based on NIP-44 and integrate them with the messaging system, handling both the encryption of outgoing messages and the decryption of incoming messages.

  4. Testing and Validation:

    • Local Testing:
      I will create a local environment to test the components and encryption functionality, simulating message exchanges to verify that encryption/decryption processes work as expected.

    • Integration Testing:
      I will integrate the new components with existing systems to ensure compatibility and functionality, verifying that encrypted messages are correctly handled and displayed.

    • User Testing:
      I will conduct usability testing to ensure that the messaging interface is intuitive and meets user needs.

josephchimebuka commented 2 months ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hello @msghais I am Joseph Chimebuka I'm a full-stack software developer with 4+ years of experience in crafting innovative products. I've built a range of projects, showcasing my expertise in React, Next.js, and blockchain technologies. I'm also an active contributor onlydust. here's my account https://app.onlydust.com/u/josephchimebuka.

This is my first time on this repo. I would love to contribute

How I plan on tackling this issue

I will create a screen and components for private messaging between users in direct messages (DM), ensuring that all messages are encrypted for securit

onlydustapp[bot] commented 2 months ago

The maintainer MSghais has assigned lindsaymoralesb to this issue via OnlyDust Platform. Good luck!