Assignment for Internship Shortlisting:
Title: Flutter 2D Editing Canvas
Duration: 1 week
Objective: The objective of this assignment is to assess the candidates' proficiency in Flutter development, specifically in creating a 2D editing canvas. The canvas should support basic functionalities like drawing shapes, selecting colors, and importing images.
Requirements:
- Implement a Flutter project that contains a 2D editing canvas.
- Use the provided packages to achieve the following functionalities:
- Draw basic shapes (e.g., lines, circles, rectangles) on the canvas using touch gestures.
- Allow users to select colors from a color picker and use the selected color for drawing.
- Enable importing images from the device's gallery and display them on the canvas.
- Implement the ability to crop the imported images within the canvas using the
image_cropper
package. - Utilize the
provider
package to manage the state of the canvas and its elements. - Integrate HTTP API to fetch image assets and display them on the canvas.
- Save user preferences, such as the last selected color, using the
shared_preferences
package.
Submission Guidelines:
- Fork this repository [[https://github.com/zigyprints/appDevelopmentApplications]].
- Create a branch with your name (e.g., "yourname_assignment").
- Commit your code as you progress with meaningful commit messages.
- Once completed, create a pull request from your branch to the main repository (replace "main repository" with the original repository URL).
- Include a README.md file explaining your approach, challenges faced, and any additional features or improvements you might have added if given more time.
Evaluation Criteria:
- Completion of the specified functionalities and their proper functioning.
- Code quality, organization, and adherence to best practices.
- Effective use of the provided packages and integration of APIs.
- Efficient state management using the
provider
package. - Creativity and attention to detail in UI/UX.
- Clear and concise documentation in the README.md file.
Note: This assignment is designed to be completed within a week. However, feel free to allocate more time if needed. Submit your pull request before the deadline provided to be considered for the internship shortlisting.
Good luck! We look forward to reviewing your work and potentially having you as part of our internship program. If you have any questions during the assignment, don't hesitate to reach out to us for clarification.