Create application_nikhil_apiauth_and_features.md

currently working
This commit is contained in:
Nikhil
2025-03-25 08:17:58 +05:30
committed by GitHub
parent 8c7b229f59
commit 06d8864ca2

View File

@@ -0,0 +1,112 @@
# APIDash GSoC Proposal
## About Me
**Full Name:** Nikhil Ludder
**Contact Info:**
- **Email:** nikhilljatt@gmail.com
- **Phone:** +91 8708200907
- **Discord Handle:** @badnikhil
- **GitHub:** [badnikhil](https://github.com/badnikhil)
- **Instagram:** [bad.nikhill](https://www.instagram.com/bad.nikhill/)
- **Time Zone:** UTC+5:30 (IST)
---
## University Information
- **University:** Indian Institute of Technology (IIT) Madras
- **Program:** BS in Data Science
- **Year:** 2024
- **Expected Graduation Date:** 2028
---
## Second Institution Information
- **University:** KIET Group of Institutions, Ghaziabad
- **Program:** B.Tech in Computer Science with AI/ML
- **Year:** 2024
- **Expected Graduation Date:** 2028
---
## Motivation & Experience
**Have you worked on or contributed to a FOSS project before?**
Yes, Ive been actively contributing to APIDash! Ive opened 3 pull requests (PRs) and raised 3 issues so far, and Im currently working on 3 additional PRs. This is my first experience contributing to FOSS, and Ive gained a solid understanding of the codebase, especially in preparing for tasks like enhancing authentication support and improving GraphQL features. You can check my work on GitHub: [badnikhil](https://github.com/badnikhil).
**Whats your proudest achievement or project?**
One of my proudest moments was leading a team during a college hackathon to build an API client. It was a time-crunch situation, and we had to deliver a functional tool under tight deadlines. This experience taught me a lot about problem-solving, teamwork, and how to implement APIs effectively. It really sparked my passion for creating developer tools, much like APIDash.
**What kind of problems motivate you the most?**
I get excited about challenges that take complex technology and turn it into something accessible and easy to use. I love working on tools that streamline workflows for developers, like improving APIDashs authentication methods or enhancing its GraphQL capabilities. Solving these problems not only makes life easier for other developers, but it also pushes me to stay sharp and keep learning new technologies like Flutter and Dart.
**Will you be working on GSoC full-time?**
Yes, Ill be working on GSoC full-time. My college vacation overlaps perfectly with the GSoC timeline, and I have support from my institution for such opportunities(leave will be provided if needed), so I can dedicate most of my time to tackle tasks efficiently. Coding is my only hobby, and Im excited to immerse myself fully in this project.
**Do you mind syncing up with mentors regularly?**
Absolutely! I believe regular sync-ups are essential to keep things on track. Im excited to share my progress, discuss challenges, and refine my approach with mentor feedback to ensure the project stays on course.
**What interests you the most about APIDash?**
Im fascinated by how APIDash is built entirely in Flutter, which is a framework Im passionate about. Its potential to become a go-to API client for developers really excites me. The ability to enhance its authentication support and improve GraphQL features aligns perfectly with my interests, and Im eager to contribute to its growth.
**What areas of the project could be improved?**
- **Authentication Support:** Im eager to add more authentication methods like Basic Auth, OAuth 2.0, JWT Bearer, and Digest Auth. This would make APIDash a powerful tool for testing secure APIs. Its something Im passionate about, and Id love to keep exploring ways to improve authentication in the future.
- **GraphQL Enhancements:** I want to make the GraphQL editor more feature-rich, with support for query beautification, schema inspection, and variables, fragments, mutations, and subscriptions. I see a lot of potential in this area and would love to push it forward, making APIDash a top choice for GraphQL developers.
---
## Project Proposal
**Title:** Feature Improvements and Adding Authentication Support in APIDash
**Abstract:**
This project aims to improve APIDash by adding support for multiple API authentication methods and enhancing its GraphQL features. Specifically, Ill focus on adding authentication methods like Basic Auth, OAuth 2.0, JWT Bearer, Digest Auth, and others. Additionally, Ill work on enhancing the GraphQL editor to support query beautification, schema inspection, and variables, fragments, mutations, and subscriptions. I'll also add more widget and integration tests to ensure reliability and quality. With my prior experience in the codebase, Ill begin implementation after initial discussions with mentors and devote 7+ hours a day in the early stages to make efficient progress.
---
## Detailed Description
The project focuses on three main areas:
1. **API Authentication Methods:**
- **Basic Authentication:** Implement username/password encoding in requests.
- **API Key:** Add key-value pair support in headers/query parameters.
- **Bearer Token:** Enable access key (e.g., JWT) authentication.
- **JWT Bearer:** Implement token generation and management.
- **Digest Auth:** Handle nonce-based hash key authentication.
- **OAuth 1.0 & OAuth 2.0:** Integrate OAuth flows with token management.
2. **GraphQL Enhancements:**
- Improve the GraphQL editor with features like query beautification and expand/collapse options.
- Add schema inspection capabilities.
- Support GraphQL variables, fragments, mutations, and subscriptions.
3. **Testing & Quality:**
- Increase code coverage with additional widget and integration tests to ensure stability and reliability.
---
## Weekly Timeline
The project spans 12 weeks, starting in late May 2025. I plan to dedicate around 50+ hours per week in the beginning to efficiently tackle tasks, with flexibility as needed:
- **Week 1:** Discuss with mentors, finalize setup, and outline the implementation plan.
- **Week 2:** Implement Basic Authentication and API Key; submit PRs for review.
- **Week 3:** Add Bearer Token and JWT Bearer; continue refining and submitting PRs.
- **Week 4:** Implement Digest Auth; refine based on mentor feedback.
- **Week 5:** Add OAuth 1.0 and OAuth 2.0; review progress with mentors.
- **Week 6:** Enhance GraphQL editor; start working on beautify and expand/collapse features.
- **Week 7:** Add schema inspection, variables/fragments support.
- **Week 8:** Implement GraphQL mutations and subscriptions; write widget tests.
- **Week 9:** Increase code coverage with integration tests; refine based on feedback.
- **Week 10:** Finalize features and conduct additional testing.
- **Week 11:** Polish documentation and address remaining feedback.
- **Week 12:** Buffer week for delays; submit final deliverables and complete any remaining tasks.
---
## Final Thoughts
Im excited about the opportunity to contribute to APIDash and bring my skills in Flutter, Dart, and API development to enhance the project. Im committed to delivering high-quality code, regular updates, and collaborating closely with mentors to ensure that the project is successful.