mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 18:57:05 +08:00
Create application_nikhil_apiauth_and_features.md
currently working
This commit is contained in:
@@ -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, I’ve been actively contributing to APIDash! I’ve opened 3 pull requests (PRs) and raised 3 issues so far, and I’m currently working on 3 additional PRs. This is my first experience contributing to FOSS, and I’ve 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).
|
||||
|
||||
**What’s 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 APIDash’s 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, I’ll 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 I’m 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. I’m 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?**
|
||||
I’m fascinated by how APIDash is built entirely in Flutter, which is a framework I’m 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 I’m eager to contribute to its growth.
|
||||
|
||||
**What areas of the project could be improved?**
|
||||
- **Authentication Support:** I’m 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. It’s something I’m passionate about, and I’d 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, I’ll focus on adding authentication methods like Basic Auth, OAuth 2.0, JWT Bearer, Digest Auth, and others. Additionally, I’ll 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, I’ll 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
|
||||
|
||||
I’m excited about the opportunity to contribute to APIDash and bring my skills in Flutter, Dart, and API development to enhance the project. I’m committed to delivering high-quality code, regular updates, and collaborating closely with mentors to ensure that the project is successful.
|
||||
Reference in New Issue
Block a user