Google Summer of Code 2025 Proposal
ListenBrainz iOS App – Road to Production
Introduction:
Name: Krishna
IRC Nickname: KrishnaCosmic
Email: krishna010320@gmail.com
GitHub: CosmicMagnetar
LinkedIn: https://www.linkedin.com/in/krishna0207/
About Me
My name is Krishna and I am currently in my first year at the Newton School of Technology at Rishihood University where I am studying a four-year B.Tech program in Computer Science with a specialization in Artificial Intelligence and Machine Learning. Music has always been a big part of my life, whether I am listening to music while coding, studying, or just jamming to clear my mind, music helps me stay focused and enhances my experience overall. Before I was aware of GSoC, I had started exploring Swift on my own, and while scrolling through the MetaBrainz projects, I heard about the ListenBrainz iOS app. Learning Swift has given me an opportunity to apply things I am learning in class out in the real world while working on something I actually use. When I first started using ListenBrainz, I had the app set up and connected my Spotify account, but it did not initially update with my listening history, as I had expected. This made me realize how important usability is. I also noticed that the iOS version has fewer features than the other versions of the app, which encouraged me to begin contributing to the project.
I started working on the project in February 2025, diving into the codebase, fixing bugs, and improving the app’s functionality. My main goal with GSoC is to bring the iOS app on par with Android in terms of features, stability, and overall user experience. I’ve been focusing on improving the UI/UX of the app, performance optimizations, and missing feature implementations.
Project Overview
The ListenBrainz iOS app is a great application that is focused on user privacy and is open-source, but does not contain many features that are present in the Android version of the application. Because of the lack of features, many aspects of the iOS experience may feel a little broken for users. My primary goal is to try to fill in that feature gap and align the app for iOS to have a similar experience as with the app for Android. In particular, I want to find a way to support essential functions like music playback, the syncing of listening history, and generally managing playlists appropriately for the user on iOS, as many of these optional features simply aren’t present or are not very effective. I will support playback, seamless history syncing, or any of the other features already present in the Android build for playing music and items not yet implemented for iOS. I will also improve performance and reliability and stability, and overall make sure that menus, tab resizing, etc. and ensure all users can enjoy the application consistently across all iOS devices. Ensuring users have updates is an essential part of my improvement plan. The aim is that users can continuously access new features, improvements and bug fixes frequently, and at no cost for upgrades. This ongoing improvement will help to encourage users to remain with the app, in addition to an overall better experience. By providing the best experience possible on both iOS and Android, I hope to keep high user engagement by providing a uniform experience across platforms.
My Contributions
I have been contributing in open source community since december 2024 and have been learning swift since february 2025:-
My PRs till date:
Organisation | Title | PR Link |
---|---|---|
CircuitVerse | updated Readme.md | updated Readme.md by CosmicMagnetar · Pull Request #705 · CircuitVerse/Interactive-Book · GitHub |
OWasp | Translate Developer Guide to Hindi | #240 Translate Developer Guide to Hindi by CosmicMagnetar · Pull Request #329 · OWASP/www-project-developer-guide · GitHub |
Metabrainz | Display ‘No data available’ message for empty feed’ | Display 'No data available' message for empty feed by CosmicMagnetar · Pull Request #29 · metabrainz/listenbrainz-ios · GitHub |
My Projects till date:
Projects | Description | Projects links |
---|---|---|
Weather App | A simple weather app | GitHub - CosmicMagnetar/Weather-App |
SyncWave | A simple music player for IOS | GitHub - CosmicMagnetar/SyncWave: A simple music player for IOS |
UI/UX Overhaul and Feature Integration
Redesigning the Feed Screen
The Feed screen in the existing iOS app is not as complicated as what users would see on Android. Our objective is to improve the user experience by converting the Feed screen to a multi-tab experience, as seen in Android and creating a slightly different, and more intuitive navigation.
Here’s what we want to include:
-
My Feed: Displays the user’s personal listening history.
-
Follow Listens: Showcases listens from users that the current user follows.
-
Similar Listens: Provides recommendations based on similar listening habits.
Implementation Details:
-
Layout and Navigation: I created a custom horizontal tab bar with buttons for “My Feed”, “Follow Listens” and “Similar Listens.” Tapping a button updates the view using SwiftUI’s NavigationStack, with each view wrapped in a LazyVStack for efficient loading.
-
Dynamic Empty States: Implement conditional views to show context-sensitive messages, such as “No listens recorded this month”, instead of displaying a count like “0 listens this month”.
- Asynchronous Data Handling: Use Combine to throttle API calls, ensuring that data is fetched efficiently without overloading the network.
Enhancing the Profile/Dashboard Experience
The Profile screen will be expanded to offer advanced filtering and detailed statistical insights. New features will include:
-
Timeframe-Based Filters: Options to view statistics for the current month, last week, last year, and global statistics.
-
Interactive Dashboards: Implementation of dynamic charts and graphs for visual representation of listening trends.
Implementation Details:
-
Filtering Mechanism: Implement segmented controls and custom filter components to allow users to switch between various timeframes
-
Data Visualization: Integrate SwiftUI charting libraries (or third-party libraries) to render bar graphs and pie charts.
-
State Management: Ensure data consistency and responsiveness by utilizing a dedicated ViewModel that aggregates statistics and caches results using CoreData.
Revamping the Explore Screen
The Explore screen will be reworked to be both informative and engaging:
-
User Guidance for Empty States: Instead of showing “0 stats,” the app will display a friendly message like “You haven’t listened to any music this year. Start exploring to see your trends.”
-
Interactive Data Presentation: Use animations and transitions to switch between the empty state and populated data views smoothly.
Implementation Details:
-
Conditional UI Elements: Use SwiftUI’s view builders to show different UI components based on whether listening data is available.
-
Mockups Integration: Insert detailed Figma designs and prototypes to illustrate both empty and populated states.
Overhauling Settings and Bug Reporting Features
The Settings screen will be enhanced to offer better user control and proactive error management:
- Permissions Management: List all required permissions with clear rationales. If a permission is denied twice, display an alternative UI guiding users to the device settings.
- Update and Bug Reporting: Add a “Report Bug” button that triggers a log submission process, and integrate update prompts that notify users of the latest app releases.
Implementation Details:
-
UI Components: Build the settings interface using SwiftUI’s Form components and toggles, ensuring a clean and user-friendly design.
-
Backend Integration: Use Alamofire to fetch updated data and manage permission states.
-
Error Logging: Develop a mechanism to capture system logs and attach them to email drafts for bug reporting.
Architectural Framework and Data Flow Design
MVVM Architecture and Data Layer
The app will adhere to the Model-View-ViewModel (MVVM) design pattern, ensuring modularity and maintainability:
-
Model Layer:
- Use Swift structs conforming to Codable to map API data.
- Employ CoreData for local caching and offline support.
-
ViewModel Layer:
- Use Combine in the ViewModel layer to handle state updates.
- Mark properties with @Published so any change automatically updates the UI in real time.
Repository Pattern for Networking and Caching
-
Networking:
-
Implement Alamofire-based repositories that abstract all API calls.
-
Provide error handling and data caching through structured methods.
-
-
Data Flow:
-
Leverage Combine to handle asynchronous data fetching, incorporating techniques like debouncing and throttling to optimize network performance.
-
Define clear API endpoints for tasks such as user authentication, retrieving feed data, and accessing profile information.
-
Code Organization and Folder Structure
-
Project Organization:
-
Models: Data structures and CoreData models.
-
Repositories: Networking logic and caching mechanisms.
-
ViewModels: Business logic and state management.
-
Views: SwiftUI views organized by feature (Feed, Profile, Explore, Settings).
-
Resources: Figma exports, images, and design assets.
-
Tests: Unit tests, UI tests, and integration tests.
-
Detailed Feature Implementation
Enhanced Feed Functionality
-
Tab Configuration:
-
My Feed: Personalized listening history.
-
Follow Feeds: Displays listens from followed users.
-
Similar Listens: Recommendations based on music taste similarity.
-
-
Dynamic States and Error Handling:
-
Use HStack-based navigation for a smooth and flexible tab layout.
-
Show meaningful messages when there’s no data available.
-
Optimize network calls using Combine to ensure real-time updates without overloading requests
-
Advanced Profile and Dashboard Features
-
Time-based filters (this month, last week, last year).
-
Filter to display global listening data.
Revamped Explore Screen
-
Empty State Handling:
- Replace “0 stats” with an explanatory message that guides users on how to populate their listening data.
-
Interactive Elements:
- Use smooth animations to transition between empty and populated states.
Enhanced Settings and Bug Reporting
The Settings section will be overhauled to improve usability and transparency:
-
Permissions Management:
-
Display a list of required permissions with details.
-
Provide alternative flows for denied permissions.
-
-
Update Notifications and Bug Reporting:
-
An update checker that retrieves the latest release from GitHub.
-
Add a “Report Bug” button that initiates log collection and email reporting.
-
Testing, CI/CD, and Quality Assurance Strategy
A strong and maintainable code base for the ListenBrainz iOS app is essential for a production build, so I will be proposing an end-to-end plan that includes unit testing, UI testing, CI, and deployment automation which should establish a high quality code base and hopefully make it easier to provide fast feedback and smoothly integrate interesting feature requests.
Unit Testing & Integration Testing
I will use XCTest as the primary framework for writing unit tests across the Model, Repository, and ViewModel layers.
This will include:
-
ViewModel Testing: Verifying that business logic, state updates, and Combine publishers work as expected. For example, when API responses are received via Alamofire and processed, the ViewModel’s @Published properties should update correctly.
-
Repository Testing: Creating mock API responses to simulate network conditions and verify error handling, caching strategies with CoreData, and proper data transformation.
-
Model Testing: Ensuring that JSON decoding and data structures conform to expected formats, with tests for both valid and erroneous input.
I am also planning to set up integration tests that will cover the entire workflow—from getting data from the ListenBrainz API to displaying it in our SwiftUI views. We might incorporate snapshot testing tools as well to ensure that the user interface looks consistent across various devices.
UI Testing & Beta Testing
For UI testing, I will leverage XCUITest to automate interactions with the app’s UI.
This will include:
-
Testing the navigation flow between key screens such as Feed, Profile/Dashboard, Explore, and Settings.
-
Verifying that dynamic elements (e.g., user statistics, refreshed content) are updated in real time.
-
Conducting accessibility tests to ensure that the app meets standard accessibility guidelines.
I will be running beta testing via TestFlight and inviting community members to participate. I’ll gather feedback to improve the app and address any UI glitches or performance issues before the final launch.
Continuous Integration & Continuous Deployment (CI/CD)
I will integrate CI/CD pipelines using GitHub Actions to maintain a consistently high-quality codebase.
This pipeline will automatically:
-
Build the project on each commit and pull request.
-
Run the full unit and UI test suite, ensuring no regressions occur.
-
Measure code coverage and report results to the development team.
-
Run static code analysis and apply formatting checks to maintain consistent coding standards and improve code quality.
-
Deploying at night to create builds for TestFlight, enabling continuous beta testing and ensuring the app remains always deployable.
By automating these processes, we can swiftly identify and resolve issues, minimizing manual testing efforts and enhancing overall efficiency.
Quality Assurance and Documentation
I willl implement strong quality assurance with automated testing and CI/CD to ensure everything runs smoothly by:
-
Code Reviews: Regular peer check-ins and mentor feedback can help newcomers follow best practices and keep their work well-documented.
-
Documentation: I will create detailed developer documentation, including code comments and MVVM architectural diagrams that show how the Model, ViewModel, Repository, and View layers interact. Mock-ups from Figma will also be included for clear visual references to UI changes..
-
Issue Tracking & Reporting: A process will be established to track bugs and performance issues in GitHub Issues, including log collection, error reproduction, and troubleshooting.
This strategy focuses on creating a high-quality ListenBrainz iOS app through rigorous testing, continuous integration, and thorough documentation, addressing both GSOC project goals and future maintenance opportunities.
Future Enhancements and Post-GSoC Roadmap
Planned Feature Expansions
After the initial production-ready release and additional features can be integrated like:
-
Offline Mode:
- Implement robust local caching and offline functionality.
-
Advanced Integrations:
- Explore integration with the Apple Music API to enhance recommendation capabilities.
-
Universal Search:
- Extend the search functionality to include playlists, albums, and artists comprehensively.
Long-Term Maintenance and Community Contributions
-
Ongoing Support:
- Establish a roadmap for post-GSoC maintenance, including periodic updates and bug fixes.
-
Mentorship and Onboarding:
- Document best practices and onboard new contributors through comprehensive guides and webinars.
-
Community Engagement:
- Continue to participate in community discussions and provide regular updates via GitHub and project blogs.
Implementation Plan & Timeline
Community Bonding Period (May 8 – June 1, 2025)
Week 1 (May 8 – May 14, 2025):
I will engage with the ListenBrainz community by participating in public channels, reviewing existing documentation, and attending weekly meetings. This week, I plan to set up my development environment, review the official Figma designs for the Feed and Profile screens, and draft an architecture diagram using the MVVM pattern. I will include these diagrams—detailing Models, Repository, ViewModels (with Combine), and Views (in SwiftUI)—in my documentation as “Figure 1” and “Figure 2.”
Week 2 (May 15 – May 21, 2025):
I will review the ListenBrainz iOS repository to understand the codebase better and seek community input. This week, I will finalize the technical roadmap and create mockups and flowcharts, along with annotated diagrams for new features like improved statistics on the Profile screen and enhancements to the Explore section.
Week 3 (May 22 – May 27, 2025):
I will update the proposal with feedback, finalize the project roadmap, and share the initial design documents—MVVM diagram, folder structure, and screen mockups—for community input.
Coding Period 1 (June 2 – July 13, 2025)
Week 4 (June 2 – June 8, 2025):
I will start by setting up the project’s core structure:
-
Architecture Implementation: Implement the MVVM pattern by creating Codable Models for CoreData caching and Repository layer for Alamofire network calls, and ViewModels that publish updates with Combine
-
UI Foundation: Create basic versions of the Feed, Profile/Dashboard, Explore, and Settings screens based on the Figma designs, using SwiftUI’s NavigationStack for navigation.
-
Documentation: Incorporate the initial Figma mockups and MVVM diagrams into the technical documentation.
Week 5 (June 9 – June 15, 2025):
-
Design clear UI components for the Feed screen, showcasing “My Feed” and “Follow Feeds” as distinct sections.
-
Improve the Profile screen to eventually include filter options (e.g., statistics for “this month,” “this year,” “last week,” etc.).
-
Integrate preliminary animations and transitions to ensure a smooth user experience.
-
Document any changes by adding updated screenshots from the Figma design.
Week 6 (June 16 – June 22, 2025):
Integrate data and network functionalities:
-
Implement robust API calls using Alamofire ensuring efficient data fetching and error handling.
-
Optimising the API interactions by implementing debouncing or throttling using Combine.
-
Begin local caching using CoreData to improve offline support.
-
Write initial unit tests with XCTest for the Repository and ViewModel layers.
Week 7 (June 23 – June 29, 2025):
Focus on performance and integration:
-
Refine error handling and caching strategies.
-
Polish the integration between the UI and the ViewModel to ensure real-time updates.
-
Continue expanding test coverage and set up a continuous integration pipeline using GitHub Actions to automate builds and tests.
-
Prepare a progress demo with screenshots and updated architecture diagrams for mentor feedback.
Evaluation Phase 1 (June 30 – July 4, 2025):
-
A working prototype that demonstrates the basic MVVM architecture and core screens.
-
Updated Figma mockups and technical diagrams.
-
An overview of initial test results and CI/CD setup.
Coding Period 2 (July 14 – August 25, 2025)
Week 8 (July 14 – July 20, 2025):
-
Expand the Profile screen by integrating filters like “this month” , “this year” , “last week” and “all time” to mirror the Android app’s functionality.
-
Begin implementing additional Feed functionalities such as personalized recommendations and curated content sections.
-
Refine the Explore screen to display contextual messages when no data is available (e.g., “You have not listened to any music this year”).
-
Update the documentation with revised UI screenshots and detailed descriptions of new features.
Week 9 (July 21 – July 27, 2025):
-
Improve network performance by optimizing API call structures and implementing caching strategies.
-
Integrate Combine-based debouncing to minimize redundant API requests.
-
Extend testing to cover new features and ensure stability.
-
Provide a detailed code walkthrough (with architectural diagrams) for mentor review.
Week 10 (July 28 – August 2, 2025):
-
Polish UI animations and transitions for smoother navigation.
-
Optimize CoreData caching to enhance responsiveness and offline functionality.
-
Fine-tune error handling to gracefully manage API failures.
-
Update the project documentation to include additional flowcharts and diagrams demonstrating the enhanced data flow.
Week 11 (August 3 – August 10, 2025):
-
Launch a beta version through TestFlight and collect user feedback.
-
Monitor app performance, collect crash logs, and address any issues identified by testers.
-
Incorporate mentor and community feedback into further refinements.
-
Document beta test results and update the project roadmap if necessary.
Evaluation Phase 2 (August 25 – September 1, 2025):
-
Present a refined version of the app with full UI/UX consistency.
-
Provide detailed test reports and performance metrics.
-
Share updated diagrams, including the complete MVVM architecture and API flow charts.
Final Coding Phase (September 2 – September 20, 2025)
Week 12 (September 2 – September 13, 2025):
-
Complete integration of any remaining features (e.g., enhanced search in Explore, global statistics for the Profile screen).
-
Finalize all API integrations and ensure the app meets Apple’s guidelines.
-
Continue polishing the UI based on final feedback from mentors and beta testers.
Week 13 (September 14 –September 20, 2025):
-
Conduct comprehensive unit, integration, and UI tests to ensure stability.
-
Optimize performance by refining asynchronous processing and caching.
-
Update the CI/CD pipeline with final test configurations.
-
Collect final screenshots and mockups to be included in the submission documentation.
Week 14 (September 21 – September 27, 2025):
-
Ensure that all screens, transitions, and interactions are pixel-perfect and align with the Figma designs.
-
Add any last-minute enhancements, such as improved animations or additional error handling.
-
Finalize the architectural documentation, including all diagrams and a folder structure overview.
Week 15 (September 28 – October 3, 2025):
-
Prepare a comprehensive developer and user documentation package.
-
Create a final demonstration video that showcases the app’s features and improvements.
-
Gather and incorporate any final mentor feedback.
Week 16 (October 4 – October 20, 2025):
-
Perform final rounds of testing across various devices.
-
Polish the UI, fix any remaining issues, and finalize the app’s build.
-
Prepare the final submission package (code, documentation, test reports, and demo video) for the App Store review.
-
Ensure that all CI/CD processes are documented and working as expected.
Buffer Period (October 21 – November 1, 2025)
-
Addressing any bugs or feature requests that arise after launch.
-
Enhancing the app with additional features such as offline support and further integrations (e.g., Apple Music API).
-
Mentoring new contributors and keeping the documentation updated.
-
Engaging with the community through blog posts and webinars to share lessons learned and plans.
Post-GSoC (November 2 – November 5, 2025)
After the official GSoC period, I plan to continue contributing to the ListenBrainz iOS app by:
-
Addressing post-launch issues and refining features.
-
Expanding functionality with offline support and further integrations.
-
Supporting new contributors and keeping documentation current.
-
Actively engaging with the community through technical content and discussions.
Testing & Quality Assurance Strategy
-
Unit Testing:
- Develop comprehensive unit tests for the ViewModel and Repository layers using XCTest.
-
UI Testing:
- Implement UI tests to verify that all screens match the Figma designs and function correctly across multiple devices using SwiftUI previews and XCTest.
-
Beta Testing:
- Utilize TestFlight for a beta testing phase to collect real-user feedback and identify usability issues.
-
CI/CD Integration:
-
Set up automated build and test pipelines using GitHub Actions to ensure continuous integration.
-
Run tests on every commit to catch regressions early.
-
-
Documentation:
-
Produce detailed developer and user documentation, including code comments, user guides, troubleshooting FAQs, and a changelog.
-
Maintain a versioned documentation repository for future updates.
-
Risk Management & Mitigation
UI/UX Consistency:
-
Schedule regular design review meetings with mentors and community members.
-
Consistently reference the Figma mockups and the Android app’s UI to maintain a unified style.
-
Develop a style guide for colors, typography, and layout to ensure consistency across screens.
-
Incorporate early feedback and make iterative improvements.
API Rate Limits & Performance:
-
Implement request throttling to avoid overloading the API.
-
Use caching mechanisms (e.g., CoreData) to store frequently accessed data locally.
-
Leverage Combine is used to debounce and throttle asynchronous API calls.
-
Batch API calls were possible to minimize redundant network requests.
Unexpected Bugs & Crashes:
-
Integrate extensive logging to capture errors and track crashes.
-
Maintain an active bug tracking system using GitHub Issues.
-
Set up a CI/CD pipeline (using GitHub Actions) to automatically run tests on every commit.
-
Develop a rollback plan to revert to the last stable build in case of critical failures.
App Store Compliance:
-
Regularly review Apple’s App Store guidelines for any updates or changes.
-
Conduct pre-submission reviews and comprehensive beta testing via TestFlight.
-
Adjust features and documentation based on feedback from beta testing.
-
Ensure all aspects of the app (UI, functionality, performance) meet Apple’s standards.
Data Integrity & Synchronization:
-
Implement robust validation and conflict resolution strategies in the repository layer.
-
Schedule periodic synchronization routines to ensure local cache consistency with the server.
-
Test data update flows extensively to identify and resolve discrepancies.
Security & Privacy:
-
Enforce HTTPS for all API communications to protect data in transit.
-
Encrypt sensitive local data stored via CoreData or UserDefaults.
-
Follow best practices in authentication, authorization, and secure coding.
-
Regularly perform security audits and code reviews to identify and address vulnerabilities.
User Feedback & Adoption:
-
Establish continuous feedback loops through beta testing and community forums.
-
Monitor user interactions and gather qualitative feedback to refine features.
-
Transparently communicate updates and planned enhancements to build trust and drive adoption.
Community Engagement & Mentorship
-
Regular Updates:
-
Provide weekly progress updates on the MetaBrainz IRC chat and Discord channels.
-
Share early prototypes and design iterations with the community to gather feedback.
-
-
Mentor Collaboration:
- Actively engage with mentors for feedback and guidance; utilize my prior contributions to the ListenBrainz iOS codebase to demonstrate familiarity and commitment.
-
Feedback Integration:
- Schedule review sessions at each milestone to incorporate community and mentor feedback into the development process.
Future Contributions & Long-Term Impact
Even after GSoC ends, I want to continue contributing to ListenBrainz iOS. If for some reason I’m unable to complete certain features during GSoC, they’ll be my first priority afterward. Apart from that, there are a few areas I would like to focus on:
-
Feature Parity with Android – While my GSoC work focuses on bridging the UI gap between iOS and Android, there are still some smaller details and refinements that can enhance the overall experience. I’d like to ensure that both apps feel equally polished.
-
Improving Navigation and UI Consistency – The iOS app should feel as seamless as its Android counterpart. I want to refine transitions, animations, and interactions to make the experience smoother.
-
Dark Mode Enhancements – While the app has dark mode support, I’d like to improve its implementation, ensuring proper contrast, theme consistency, and better readability.
-
Improved Playlist Management UI – Bringing a more user-friendly approach to creating, editing, and managing playlists directly from the app.
-
General UI/UX Refinements – Based on community feedback, I plan to tweak and refine areas like onboarding, player design, and settings to make the app more intuitive and engaging.
Community affinities
What aspects of ListenBrainz interest you the most?
I’m particularly interested in ListenBrainz because it’s evolving into a community-driven platform for music lovers. The way it allows users to share their listening history, discover new music, and get insights into their music taste makes it a unique open-source project.
Programming precedents
When did you first start programming?
I started coding in 6th grade with JavaScript, experimenting with web projects. In 7th grade, I tried Python for scripting and C# and C++ in 8th for game development. After a break, I got back into coding in 12th grade, focusing on web and app development. In February 2025, I learned Swift and began working on iOS development, which allowed me to contribute to the ListenBrainz iOS app. It’s been an exciting journey!
Have you contributed to other open source projects? If so, which projects and can we see some of your code?
Yes! I have contributed to open-source projects, including ListenBrainz iOS. My contributions are mainly focused on improving the UI/UX, fixing bugs, and implementing new features. You can check out my work hereYes, I have contributed to open-source projects, including ListenBrainz iOS. My contributions focus on improving the UI/UX, fixing bugs, and implementing new features. You can check out my work here: KrishnaCosmic and Krishna
Practical requirements
What computer(s) do you have available for working on your SoC project?
I’ll be using my MacBook Pro, which is powered by an Apple M3 chip with 8GB of unified memory. This setup, along with its brilliant Liquid Retina XDR display, is more than capable of handling iOS development smoothly, from compiling code in Xcode to running multiple simulators simultaneously.
How much time do you have available per week, and how would you plan to use it?
I have approximately 40+ hours per week available to dedicate to GSoC. Most of this time will be focused on coding and implementing features, along with additional hours allotted for debugging, discussions, documentation, and community engagement. Since I do not have any significant academic or job-related commitments during the program, I can fully concentrate on delivering my best work.