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

Developing a Collaborative Drawing App with Flutter and Directus #192

Closed
6 tasks done
Tomic-Riedel opened this issue May 19, 2024 · 2 comments
Closed
6 tasks done
Assignees

Comments

@Tomic-Riedel
Copy link

What is your idea?

The idea is to create a collaborative drawing application that allows multiple users to draw on a shared canvas in real-time. This app uses Flutter for a responsive and interactive user interface and Directus as the backend to manage user sessions, drawing data, and real-time synchronization.

Key Features

  1. Real-time Collaboration: Multiple users can draw on the same canvas at the same time.
  2. User Authentication: Secure user login and registration using OAuth or JWT.
  3. Session Management: Create and join drawing sessions, each with a unique ID.
  4. Drawing Tools: Various drawing tools such as pen, eraser, color picker, and shapes.

Detailed Breakdown

  1. Real-time Collaboration
    Use Directus WebSockets to ensure real-time updates. When one user draws on the canvas, the changes are immediately reflected on the canvases of all other users in the session.

  2. User Authentication
    Implement user authentication using Directus' built-in authentication mechanisms. Maybe also add support for OAuth providers for easy sign-in.

  3. Session Management
    Session Creation: Allow users to create new drawing sessions with unique IDs.
    Joining Sessions: Enable users to join existing sessions by entering the session ID.
    Session Persistence: Obviously, the session data needs to be stored in Directus.

  4. Drawing Tools

  • Pen Tool: Different pen sizes and colors.
  • Eraser Tool: Erase parts of the drawing.
  • Shape Tool: Draw basic shapes like lines, rectangles, and circles.
  • Color Picker: Choose colors from a palette.

What are the key takeaways from your post?

1. Understanding Real-time Collaboration:

  • Learn how to implement real-time features using WebSockets, whcih is an important skill for developing interactive applications.

2. Backend Management with Directus:

  • Learn to set up and configure Directus as a backend solution, including creating collections, managing data, and utilizing Directus for user authentication and authorization.
  • Understand how to leverage Directus WebSockets for real-time data synchronization.

Even though this is all part of the documentation, I think it is especially interesting for people coming from Flutter, where Directus is not used a lot.

3. User Authentication and Session Management

4. Full-stack Development Experience:

  • Develop a complete end-to-end project, which improves the reader's skills in both frontend and backend development.
  • Understand the integration process between a Flutter frontend and a Directus backend

Country of residence

Germany

Terms & Conditions

  • You understand that submitting this form does not mean we accept your proposal. We will accept proposals at our discretion.
  • You understand that to be paid you will need to generate an invoice with a 30 day payment term and send it to us once the final draft of your work is accepted (we will share how to do this once finished).
  • You understand that you will require either a bank account in one of the countries listed here (https://help.bill.com/direct/s/article/360007172671).
  • You understand that you need to set up a Directus project by either running locally, self-hosting, or using Directus Cloud, but being a guest author does not entitle you to extended trials or free credit.
  • You understand that you will grant us an unlimited license to post and promote your work as part of this program. You may repost, but using our copy as the canonical source.
  • You are aged 18 or over.
Copy link

Thank you for submitting an idea for our guest blog.

We work through new ideas every few weeks as we put together our content schedule. This means you may not get an immediate response as to whether your idea has been accepted, or any follow-up questions we have to clarify your idea.

If your idea is accepted, we will provide a deadline for first draft and how much we can pay you for the post. You will have a few days to confirm whether you are still able and willing to write the post.

If you have any questions in the meantime, feel free to add a comment to this issue.

@phazonoverload
Copy link
Contributor

Thank you for submitting this idea, but unfortunately we are not accepting it as part of our guest author program. Right now we're focusing on JavaScript/TypeScript content. Please feel free to submit additional ideas in future.

@phazonoverload phazonoverload closed this as not planned Won't fix, can't repro, duplicate, stale May 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants