|
| 1 | + |
| 2 | +### GSoC Proposal: API Explorer for API Dash |
| 3 | + |
| 4 | +#### About |
| 5 | + |
| 6 | +**Full Name:** |
| 7 | + Rabbiya Riaz |
| 8 | + |
| 9 | +**Contact Info:** |
| 10 | + |
| 11 | + |
| 12 | +**Discord Handle:** |
| 13 | + rabbiya0453 |
| 14 | + |
| 15 | +**GitHub Profile Link:** |
| 16 | + [https://github.com/rabbiyariaz](https://github.com/rabbiyariaz) |
| 17 | + |
| 18 | +**LinkedIn:** |
| 19 | + [https://www.linkedin.com/in/rabbiya-riaz-4b700224a/](https://www.linkedin.com/in/rabbiya-riaz-4b700224a/) |
| 20 | + |
| 21 | +**Time Zone:** |
| 22 | + GMT+5 (Asia/Karachi) |
| 23 | + |
| 24 | +**Link to Resume:** |
| 25 | + [https://drive.google.com/file/d/1c8MOBYc3hm6UuFkiyQTkK5A-CNzMvLqX/view](https://drive.google.com/file/d/1c8MOBYc3hm6UuFkiyQTkK5A-CNzMvLqX/view) |
| 26 | + |
| 27 | +#### University Info |
| 28 | + |
| 29 | +**University Name:** |
| 30 | + National University of Sciences and Technology (NUST) |
| 31 | + |
| 32 | +**Program Enrolled:** |
| 33 | + BS Computer Science |
| 34 | + |
| 35 | +**Year:** |
| 36 | + 3rd Year |
| 37 | + |
| 38 | +**Expected Graduation Date:** |
| 39 | + June 2026 |
| 40 | + |
| 41 | +#### Motivation & Past Experience |
| 42 | + |
| 43 | +**Have you worked on or contributed to a FOSS project before? Can you attach repo links or relevant PRs?** |
| 44 | + No, I have not contributed to a FOSS project before. However, I am eager to start contributing to the API Dash open-source project and build my experience in the process. |
| 45 | + |
| 46 | +**What is your one project/achievement that you are most proud of? Why?** |
| 47 | + The achievement I’m most proud of is my dedicated progress through Dr. Angela Yu’s “100 Days of Code: The Complete Python Pro Bootcamp” course on Udemy, where I built a variety of real-world projects that significantly honed my technical and problem-solving skills. I worked through the majority of the curriculum, developing tools like: |
| 48 | + - A Spotify playlist automation system (using Selenium and Spotipy to track Billboard’s top songs) |
| 49 | + - A flight deal finder (integrating Amadeus and Sheety APIs) |
| 50 | + - A weather reporting application (via OpenWeather API) |
| 51 | + - A price tracker that sends email alerts when prices drop |
| 52 | + |
| 53 | + This accomplishment is meaningful because it demonstrates consistency and perseverance, deepened my Python expertise, and taught me critical API integration and automation workflows—turning abstract ideas into functional tools. |
| 54 | + |
| 55 | +**What kind of problems or challenges motivate you the most to solve them?** |
| 56 | + I am most motivated by challenges that require critical thinking and the ability to break down complex problems into manageable parts. I enjoy focusing on one problem at a time to devise creative and effective solutions. |
| 57 | + |
| 58 | +**Will you be working on GSoC full-time? In case not, what will you be studying or working on while working on the project?** |
| 59 | + According to the GSoC 2025 timeline, the coding period begins on June 2. My semester is expected to end around that time, which will allow me to commit full-time to GSoC during my summer vacation. |
| 60 | + |
| 61 | +**Do you mind regularly syncing up with the project mentors?** |
| 62 | + Not at all. I believe that regular and clear communication is essential for the success of any project, and I am committed to syncing up with the project mentors on a regular basis. |
| 63 | + |
| 64 | +**What interests you the most about API Dash?** |
| 65 | + I have hands-on experience working with APIs and appreciate the clarity of well-formatted API requests. API Dash stands out because it offers a clean, simple interface that makes it easy for users to understand and work with APIs. Additionally, my experience in web scraping has sparked my interest in automation, and I see API Dash as a great opportunity to further enhance my skills in API management and automation. |
| 66 | + |
| 67 | +**Can you mention some areas where the project can be improved?** |
| 68 | + |
| 69 | + **Advanced Navigation and Filtering:** Develop a sidebar filter with checkboxes for predefined categories (e.g., AI, Finance, Weather, Social Media) and a dynamic search bar that auto-suggests API names or keywords. This ensures users can pinpoint the API they need with minimal effort. |
| 70 | + |
| 71 | + **Streamlined GitHub Workflow:** Enhance the contribution process by integrating GitHub’s API to fetch real-time pull request statuses and comments. For example, a “Contributions” tab on the dashboard could show pending PRs, automated test results from GitHub Actions, and a summary of reviewer comments. |
| 72 | + |
| 73 | +#### Project Proposal Information |
| 74 | + |
| 75 | +##### Proposal Title |
| 76 | + |
| 77 | +**Automated API Explorer and Template Generator for Enhanced API Dash Integration** |
| 78 | + |
| 79 | +##### Abstract |
| 80 | + |
| 81 | +This project proposes to build an automated API Explorer integrated into API Dash to streamline the discovery, testing, and integration of public APIs. The solution will provide a centralized library where users can browse and search a curated set of popular public APIs initially manually added (5–10 APIs), including popular AI APIs from sources like *awesome-generative-ai-apis*. These APIs, organized into predefined categories (based on a subset of categories from *awesome-open-source-flutter-apps*), will come with pre-configured request templates that include authentication placeholders, sample payloads, and expected responses. |
| 82 | + |
| 83 | +In parallel, a backend automation pipeline will be developed to periodically parse API documentation (OpenAPI, HTML, and Markdown formats), auto-tag them using rule-based techniques, enrich the data with metadata, and generate standardized templates. Community feedback via ratings, reviews, and GitHub contributions will ensure that the library remains accurate and up-to-date. This system is designed to reduce manual API configuration, improve onboarding time, and boost testing efficiency. |
| 84 | + |
| 85 | +##### Detailed Description |
| 86 | + |
| 87 | +###### Problem Statement |
| 88 | + |
| 89 | +Developers often face significant delays and errors when manually setting up API tests. Public APIs are documented in a variety of formats, which forces developers to repeatedly interpret and configure each endpoint, resulting in duplicated efforts, increased cognitive load, and inconsistent testing setups. There is no unified system that automatically extracts, categorizes, and standardizes API configurations for one-click import into testing environments. |
| 90 | + |
| 91 | +###### Proposed Solution |
| 92 | + |
| 93 | +The proposed solution consists of three integrated components: |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +###### A. Front-End API Explorer |
| 98 | + |
| 99 | +**Objective:** |
| 100 | +Build a responsive, user-friendly dashboard within API Dash that allows users to easily discover, browse, and import public API endpoints into their testing workspaces. |
| 101 | + |
| 102 | +**Key Features and Design Considerations:** |
| 103 | + |
| 104 | +**Manual Curation (Initial Phase):** |
| 105 | + Start by manually adding 5–10 popular public APIs, including high-demand AI APIs (from *awesome-generative-ai-apis*). |
| 106 | + **Example APIs:** OpenWeatherMap for weather data, Twitter API for social media interactions, and a few AI-related endpoints. |
| 107 | + |
| 108 | +**Data Structure & API Template Specification:** |
| 109 | + **API data** will be stored in a standardized JSON format. |
| 110 | + Each API template will include: |
| 111 | + **Basic Fields:** |
| 112 | + - API Name (e.g., “Twitter API – Post a Tweet”) |
| 113 | + - Category (Predefined: e.g., Social Media, AI, Finance, Weather) |
| 114 | + - Endpoint URL & HTTP Method (e.g., POST `https://api.twitter.com/2/tweets`) |
| 115 | + **Authentication:** |
| 116 | + Type (e.g., Bearer Token) with a placeholder. |
| 117 | + **Payload & Response Examples:** |
| 118 | + Sample payload and expected response formats. |
| 119 | + **Metadata:** |
| 120 | + Descriptions, version info, usage tips, and any constraints. |
| 121 | + |
| 122 | + **UI Design:** |
| 123 | + **Dashboard Layout:** |
| 124 | + Card-based grid display with API cards. |
| 125 | + **Search & Filter:** |
| 126 | + Ability to filter APIs by predefined categories (subset from *awesome-open-source-flutter-apps*), HTTP method, and other attributes. |
| 127 | + **Detailed View:** |
| 128 | + Clicking on a card opens a detailed page with all API template information. |
| 129 | + **Import Functionality:** |
| 130 | + A one-click “Import” button that sends the template (via a POST request) to API Dash’s backend endpoint (e.g., `/workspace/import`), injecting the API configuration into the user's workspace. |
| 131 | + |
| 132 | +--- |
| 133 | + |
| 134 | +###### B. Backend Automation Pipeline |
| 135 | + |
| 136 | +**Objective:** |
| 137 | +Develop a backend service to automate API data extraction, enrichment, categorization, and template generation. |
| 138 | + |
| 139 | +**Modules & Implementation:** |
| 140 | + |
| 141 | + **Parsing Module:** |
| 142 | + **OpenAPI Parsing:** |
| 143 | + Use libraries like `swagger-parser` or `redocly` to extract API details from OpenAPI documents (.json or .yaml). |
| 144 | + **HTML/Markdown Parsing:** |
| 145 | + Utilize BeautifulSoup (for HTML) and Markdown parsers. |
| 146 | + Leverage NLP techniques using Hugging Face Transformers (e.g., BERT) to detect key sections (e.g., "Endpoints," "Authentication") in unstructured documentation. |
| 147 | + |
| 148 | + **Auto-Tagging & Data Enrichment:** |
| 149 | + **Rule-Based Engine:** |
| 150 | + Apply a rules engine (e.g., Python's `rule-engine`) to infer defaults (e.g., `limit=10` for pagination) and enrich data with usage tips. |
| 151 | + **Predefined Categories:** |
| 152 | + APIs will be auto-tagged to a subset of predefined categories (drawn from *awesome-open-source-flutter-apps*), such as AI, Finance, Weather, and Social Media. |
| 153 | + |
| 154 | + **Template Generator:** |
| 155 | + Generate final JSON templates that encapsulate all the parsed and enriched data. |
| 156 | + Ensure the output conforms to the standardized schema for easy import into API Dash. |
| 157 | + |
| 158 | + **Error Handling & Logging:** |
| 159 | + Log parsing errors and enrichment failures using Elasticsearch. |
| 160 | + Implement retry logic (via Celery) for recoverable errors, with a maximum of three attempts. |
| 161 | + |
| 162 | + **Pipeline Scheduling:** |
| 163 | + The pipeline will run periodically (once a week) or on-demand when new APIs are added, ensuring the API library remains up-to-date. |
| 164 | + |
| 165 | + |
| 166 | +###### C. Community Feedback and Version Control |
| 167 | + |
| 168 | +**Objective:** |
| 169 | +Facilitate community curation of the API library through ratings, reviews, and contributions. |
| 170 | + |
| 171 | +**Implementation Details:** |
| 172 | + |
| 173 | + **User Feedback System:** |
| 174 | + Allow users to submit ratings (1–5 stars) and written reviews for each API template. |
| 175 | + Store feedback in PostgreSQL with an appropriate schema and enforce rate limiting (e.g., max 5 reviews per user per hour). |
| 176 | + |
| 177 | + **Contribution Workflow via GitHub:** |
| 178 | + Host the API template library in a public GitHub repository. |
| 179 | + Enable users to propose updates or add new templates via pull requests. |
| 180 | + Utilize GitHub Actions for CI/CD to validate JSON schema compliance and run unit tests on new submissions. |
| 181 | + Manual reviews by maintainers to ensure security and quality. |
| 182 | + **Change Tracking:** |
| 183 | + Maintain version history with changelogs for each API template. |
| 184 | + |
| 185 | +--- |
| 186 | + |
| 187 | +#### 4. Weekly Timeline (Aligned with GSoC) |
| 188 | + |
| 189 | +##### Community Bonding Period (May 8 – June 1) |
| 190 | + |
| 191 | + **Onboarding & Planning:** |
| 192 | + - Familiarize with API Dash’s codebase and contribution guidelines. |
| 193 | + - Research high-demand public APIs (e.g., GitHub, OpenWeather, Stripe, popular AI APIs). |
| 194 | + - Define and validate the JSON schema for API templates. |
| 195 | + - Design initial wireframes for the API Explorer dashboard. |
| 196 | + - Engage with mentors and the community to refine architectural decisions. |
| 197 | + |
| 198 | +##### Coding Phase Begins (June 2) |
| 199 | + |
| 200 | +###### Weeks 1–4 (June 2 – July 1) |
| 201 | +**Milestone:** MVP Frontend and Initial Dataset Complete |
| 202 | + |
| 203 | +- Develop the API Explorer dashboard UI using React and Material-UI. |
| 204 | +- Implement card-based display, search, and filtering features. |
| 205 | +- Manually add 5–10 curated APIs across predefined categories (e.g., AI, Finance, Weather, Social Media). |
| 206 | +- Build the "Import" functionality to allow one-click insertion into the workspace. |
| 207 | +- Finalize and test the initial JSON schema for API templates. |
| 208 | + |
| 209 | +###### Weeks 5–7 (July 2 – July 18) |
| 210 | +**Milestone:** Backend Pipeline Prototype + Midterm Evaluation |
| 211 | + |
| 212 | +- Implement the OpenAPI parser using `swagger-parser`. |
| 213 | +- Develop the HTML/Markdown scraper using BeautifulSoup and NLP models (e.g., BERT). |
| 214 | +- Create the rule-based engine for auto-tagging and data enrichment. |
| 215 | +- Set up PostgreSQL tables for storing enriched API data. |
| 216 | +- Integrate the backend pipeline with the front-end to display generated templates. |
| 217 | +- Prepare a demo for the midterm evaluation, showcasing the complete flow from parsing to importing. |
| 218 | + |
| 219 | +###### Weeks 8–10 (July 19 – August 25) |
| 220 | +**Milestone:** Automation Expansion and Community Features |
| 221 | + |
| 222 | +- Finalize the template generator to produce standardized JSON API templates. |
| 223 | +- Implement the “Import” API endpoint to push templates into the testing environment. |
| 224 | +- Integrate Redis caching for frequently accessed API templates. |
| 225 | +- Develop the user feedback (ratings and reviews) system. |
| 226 | +- Enable GitHub-based contributions with CI/CD via GitHub Actions. |
| 227 | +- Optimize and polish both the backend and frontend components. |
| 228 | +- Conduct usability testing with real users to gather feedback. |
| 229 | + |
| 230 | +##### Final Week (August 26 – September 1) |
| 231 | + |
| 232 | +- Conduct a full QA cycle including integration tests, unit tests, and UX validation. |
| 233 | +- Finalize comprehensive documentation covering the template schema, contribution processes, and developer setup. |
| 234 | +- Submit final code deliverables, evaluation report, and prepare a presentation for final evaluation. |
| 235 | + |
| 236 | +##### Post-Submission (Optional Extensions) |
| 237 | + |
| 238 | +- Monitor community PRs and integrate additional API templates. |
| 239 | +- Extend parser support to additional formats (e.g., GraphQL). |
| 240 | +- Explore machine learning-based classification for undocumented APIs. |
| 241 | +- Further optimize performance and scalability based on user feedback. |
| 242 | + |
0 commit comments