GSoC 2024: Configuration wizard for Picard
Edit: Link to the Document for comments
About Me
- Name: Suryansh Shakya
- IRC nic : null_hawk
- MetaBrainz username : nullhawk
- Email: suryanshsinghshakhya1@gmail.com
- GitHub Profile: nullHawk
- Linked In: Suryansh Shakya
I am Suryansh Shakya, a newcomer at Scaler School of Technology, and I am deeply intrigued by the field of Computer Science and its applications. My aspiration is to eventually become a computer scientist. Presently, I am an active member of the Open Source club at Scaler School of Technology. This club operates under the Innovation Lab, where we focus on developing software solutions to address real-world challenges, both within the college environment and for external entities such as Bhashini, Zolo, Urban Clap, etc. In my spare time, I am enthusiastic about expanding my knowledge by exploring new frameworks, technologies, and research papers. Besides my interests in development and technology, I also have a passion for photography, football, and watching anime ;p.
Why Choose Me?
- I am dedicated to seeking solutions to challenges and continually learning from them.
- I possess previous experience with PyQt and have completed several personal projects using this framework.
- I am actively involved in the MetaBrainz community and have resolved various issues within MusicBrainz Picard, thus gaining familiarity with the codebase
Why MetaBrainz?
- During my childhood, I frequently used MetaBrainz without realizing it was open-source software. I was captivated by how it organized my music collection and added original album covers to the songs. Trust me, it felt like magic at that time!
- As I delved into the codebase and interacted with some of the maintainers on Discourse or tickets, I discovered more about the MetaBrainz Foundation. I found it to be a vibrant and welcoming community for newcomers.
My Contributions to MetaBrainz
- [PICARD-1685] Add ~filesize variable
- Brainstorming Picard future Ideas
- Setup wizard for picard (currently working and proposed as Gsoc Project)
Proposed Project
Project Overview
The Setup Wizard for Picard aims to provide new users with a streamlined and user-friendly interface to configure the software according to their preferences and requirements. This wizard will guide users through the initial setup process, helping them to configure key settings, customize preferences, and familiarize themselves with Picard’s features.
Project Goals:
- User-Friendly Interface: Develop an intuitive and visually appealing interface for the Setup Wizard that guides users step-by-step through the configuration process.
- Configuration Options: Implement options for users to configure basic settings such as preferred music directory locations and file naming conventions.
- Feature Introduction: Introduce users to Picard’s core features and functionalities during the setup process, providing brief explanations and tutorials where necessary.
- Customization: Allow users to customize Picard’s interface layout, keyboard shortcuts, and other preferences to suit their workflow and usage patterns.
- Feedback Mechanism: Incorporate a feedback mechanism within the Setup Wizard to gather user input and suggestions for improving the software.
Plan of Action:
- Research and Planning: Conduct user research to identify common pain points and user preferences. Develop a detailed plan for the Setup Wizard’s features and functionality based on user feedback and requirements.
- Interface Design: Collaborate with in-house UI/UX expert to create wireframes and mockups for the Setup Wizard interface. Iterate on design concepts based on user feedback and usability testing.
- Development: Implement the Setup Wizard functionality within Picard’s codebase using appropriate programming languages and frameworks. Ensure compatibility across different operating systems and versions of Picard.
- Testing and Feedback: Conduct thorough testing of the Setup Wizard to identify and address any bugs, errors, or usability issues. Gather feedback from users through beta testing and iterate on the design and functionality as needed.
- Documentation and Support: Prepare comprehensive documentation and user guides for the Setup Wizard, including tutorials, FAQs, and troubleshooting tips. Provide ongoing support to users and address any questions or concerns related to the Setup Wizard.
UI Mockups:
The scenes are just for illustration and the actual wizard might differ from the initial one.
Timeline
- Pre-Community Bonding Period: Brainstorm on UI and important features that need to be added to the wizard
- Week 1 and 2: Finalizing UI Ideas (I have some ideas to make UI interactive as Window’s first boot screen)
- Week 3: Start writing code for the UI
- Week 4: Add animations and other features
- Week 5 and 6: Add functions to the UI components of the wizard probably we will use Picards executable commands to add functions as mentioned by twodoorcoupe
- Week 7: Finalize the wizard and take feedback from the community.
- Week 8: Make changes if needed.
- Week 9: Cushion period
- Week 10: Cushion period
- Week 11: Cushion period
- Community Bonding Period: Finalize UI mockups and seek mentor feedback.
Other Information
-
The device that I currently use:
- Lenovo Ideapad Flex 5, with AMD Radeon 5500U Processor with Integrated AMD Radeon graphics and 16 GB LPDDR5 RAM running on Windows 11, but for development I use Debian running on WSL 2 in Windows 11 on the same computer.
-
When did I first start programming?
- In 2013 When I was in 3rd Class with a language called LOGO(Logic Oriented Graphics Oriented), then further moved to QBASIC, Visual BASIC .NET, C#, HTML CSS Javascript, Java, and Python.
-
What type of music do I listen to?
- I mostly listen to pop, EDMs, phonk, and sometimes Lo-fi music.
- I also have a taste for Indian Classical music.
-
What aspects of the project I am applying for (e.g., MusicBrainz, AcousticBrainz, etc.) interest me the most?
- MusicBrainz Picard interests me the most
-
Have you ever used MusicBrainz to tag your files?
- I used MusicBrainz Picard in childhood to organize my music directory.
-
Open source projects I have contributed to:
-
What sorts of programming projects have I done in my own time?
- GitHub - nullHawk/Imagit: Image editing software made in JavaFX : Image Editing Software made using JavaFX
- This is image editing software that does simple matrix operations on images like adding filters by changing the values by some factor or rotating the image by multiplying images by eigenvectors. Cropping the image by chopping off some of the values in the matrix.
- GitHub - nullHawk/anonythreads: Anonymous Confession website made in django : Anonymous confession website made using Django
- This website was made by me during an overnight hackathon conducted by our college
- GitHub - nullHawk/NullHawk-s-Play: Music Player made in pyqt5 which feteches music from youtube : Desktop Music Player which fetches data from YT music made using PyQt
- This is a desktop mp3 player that scrapes data from YT Music and plays it on a desktop, It was part of a Hackathon conducted at SST.
- Ediary : Desktop Ediary made in PyQt
- This was my class 11 annual project, although I had made it several time in other languages like VB .NET, and Java Swing in class 8th and class 10th. But this time I added features such as the customized RSA algorithm for encryption and hashing the password making the diary more secure.
- Hangman: A game made in Python using the turtle library, this was the remake of the hangman game that I had previously made using a language called LOGO.
- Bell Program: It was my first major project made in Visual Basic in class 8th. It was a bell program that used the speakers present in every room of our school to ring the bell at the given intervals and also had a mic feature to listen and make announcements at a given time.
- GitHub - nullHawk/Imagit: Image editing software made in JavaFX : Image Editing Software made using JavaFX
-
Tech stacks that I am familiar with:
- Languages:
- Python
- Java
- C
- Javascript
- Bash
- C#
- FrameWorks:
- Desktop Development:
- PyQt
- JavaFx
- Visual Basic .NET
- Web Development:
- Django
- Spring Boot
- Express
- Vanila JS
- Android using Java
- Game Development:
- Pygame
- Unity
- Desktop Development:
- Languages:
-
How much time do you have available, and how would you plan to use it?
- I will be able to commit 30 hrs per week and I have no other commitments during the interval of GSoC