Skip to content

Instantly share code, notes, and snippets.

@Rd4dev
Last active August 19, 2023 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rd4dev/127b7233c367fecd5228c344e433138c to your computer and use it in GitHub Desktop.
Save Rd4dev/127b7233c367fecd5228c344e433138c to your computer and use it in GitHub Desktop.
Google Summer Of Code 2023 Final Submission

Google Summer of Code'2023 - Final Report

Organisation: CATROBAT

Project : πŸ‘‰ Click Here

Hello, I am Rama Devi, aka RD. With a foundation in a Bachelor's degree in Computer Science, I've honed my skills through self-directed learning as a developer. Currently, I'm augmenting my knowledge by pursuing an MBA at Anna University, paralleled by my Master's in Computer Applications (MCA). Fueled by a deep passion for programming, I embarked on my developer journey through web development, progressing into the realm of full-stack MERN development, I've nurtured a strong affection for crafting 3D interactive websites using Three.js. Over the course of the last two years, a deep-seated fondness for meticulously honing optimized solutions has unfurled. This expedition has guided me to fully engage in the sphere of Android development, predominantly utilizing Kotlin, to engineer robust and efficient applications.

During this GSoC duration, I collaborated on an aspiring project within the Catrobat organization known as PAINTROID an open-source graphical paint editor app, allowing setting parts of pictures to transparent, insert Text / Images, add Layers, use Color filling and picking tools, rotate, resize and position elements.

GSOC-logo-catrobat-paintroid

Summary

During the summer of 2023, I had the opportunity to work on implementing the landing page for the Pocket Paint app on the Android Kotlin platform. The landing page serves as an art gallery view, allowing users to preview their saved artwork and easily select projects to continue editing or start new drawings. The design was meticulously aligned with the cohesive Pocket Code design, ensuring both consistency and user familiarity.

Project Highlights

Landing Page Project Tickets

PR Accommodating the Following Tickets: https://github.com/Catrobat/Paintroid/pull/1288

  • Create Landing Page                | Ticket
  • Floating action buttons for landing page         | Ticket
  • Show all projects of the user in the landing page    | Ticket

PR Accommodating the Following Tickets: https://github.com/Catrobat/Paintroid/pull/1291

  • Add main options to landing page           | Ticket

Summary

GSOC-logo-catrobat-paintroid-landing_page

Frontend

  • Designed the Landing Page to Mirror the Pocket Code's Aesthetic
  • Implemented Project Preview Thumbnails
  • Created Projects List Section
    • Project Thumbnail
    • Project Name
    • Project Details
    • CRUD Operations for Projects
  • Integrated Floating Action Buttons
  • Tech Stack: XML

Backend

  • Implemented the Functionality to Save Projects
  • Saved Projects as Catrobat Images
  • Generated Project Images for Thumbnails
  • Enabled Auto-Saving of Existing Projects upon Returning to Home
  • Stored Projects in a Room Database
  • Tech Stack: Kotlin, Room Database

Tests

  • Followed Test-Driven Development Approach
  • Adhered to Clean Code Practices
  • Tech Stack: JUnit, Espresso

My Contributions

Paintroid Contributions [encompassing both GSoC and beyond]

Pull Requests

PR Brief Description Status
#1288 Created Landing Page with Projects List 🚧 In Review
#1291 Add main options to landing page 🚧 In Review
#1275 Spraycan ignores alpha value βœ… Merged
#1217 Fixed MenuFileActivityIntegrationTests βœ… Merged
#1215 Fixed SaveCompressImageIntegrationTests βœ… Merged
#1189 Update app for android 13 ❌ Closed

Mentors

Collaborative Support

Time Management and Achievements

My time management during this journey can be outlined as follows:

Community Bonding Period Coding Period                     
May 5 _______:v: _______ May 29 May 29 ____________________:computer: ______________________ September 4
Period Activities and Achievements
May 5 to May 29 - Worked on the prototype and laid the foundation for initial core functionalities.
May 29 to June 10 - Utilized the prototype and submitted the first PR - PR1288 for the landing page.
June 10 to June 19 - Pushed PR1291 for the Advanced Settings menu.
June 19 to Sep 4 - Focused on bug fixes, testing, refinements and reviewing changes.

Acknowledgments

I want to express my heartfelt gratitude to my mentor, Thorsten Bandel, whose guidance began even before the GSoC period, starting from my initial contributions in January 2023. He provided invaluable support by offering code reviews, assigning tasks, and promptly addressing my queries despite his busy schedule.

I am deeply appreciative of Wolfgang Slany for founding and maintaining innovative projects like Pocket Paint, Luna, and others. Their efforts have created a nurturing environment for creativity and growth.

Massive thanks are due to Konstantin Fellner and Khaliq Nasrella for their contributions in testing the code and providing valuable feedback throughout the process. Their dedication has made the project welcoming for new contributors.

Learning and Enrichment

Contributing to this project has enabled me to gain insights into how organizations manage teams, communications, and tasks within a substantial project. I have witnessed how team members support each other, and I've honed my skills in designing front-end elements and integrating them with the back-end. Most importantly, I've had the opportunity to embrace test-driven development and the CI/CD process, which has exposed me to the intricacies of working on extensive projects.

I am grateful for the flexibility and freedom that allowed me to work comfortably, facilitated by the guidance of my mentor, Thorsten Bandel.

Continuation and Future Contribution

As I move forward, I am keen to maintain a connection with this project, given the invaluable experience it has provided me. I look forward to contributing in any way possible. I extend my gratitude to the remarkable teams at GSoC and Catrobat for this enriching experience.

Connect with meπŸ‘‡

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment