|
| 1 | +# GSoC 2025 Proposal: AI UI Designer for APIs |
| 2 | + |
| 3 | +## About |
| 4 | + |
| 5 | +**Full Name**: Ning Wei |
| 6 | +**Contact Info **: [email protected] |
| 7 | +**Discord Handle**: @allen_wn |
| 8 | +**GitHub Profile**: [https://github.com/AllenWn](https://github.com/AllenWn) |
| 9 | +**LinkedIn**: [https://www.linkedin.com/in/ning-wei-allen0503](https://www.linkedin.com/in/ning-wei-allen0503) |
| 10 | +**Time Zone**: UTC+8 |
| 11 | +**Resume**: https://drive.google.com/file/d/1Zvf1IhKju3rFfnDsBW1WmV40lz0ZMNrD/view?usp=sharing |
| 12 | + |
| 13 | +## University Info |
| 14 | + |
| 15 | +**University**: University of Illinois at Urbana-Champaign |
| 16 | +**Program**: B.S. in Computer Engineering |
| 17 | +**Year**: 2nd year undergraduate |
| 18 | +**Expected Graduation**: May 2027 |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Motivation & Past Experience |
| 23 | + |
| 24 | +1. **Have you worked on or contributed to a FOSS project before?** |
| 25 | +Not yet officially, but I’ve been actively exploring open source projects like API Dash and contributing via discussion and design planning. I am currently studying the API Dash repository and developer guide to prepare for my first PR. |
| 26 | + |
| 27 | +2. **What is your one project/achievement that you are most proud of? Why?** |
| 28 | +I'm proud of building an AI-assisted email management app using Flutter and Go, which automatically categorized and responded to emails using ChatGPT API. It gave me end-to-end experience in integrating APIs, generating dynamic UIs, and designing developer-friendly tools. |
| 29 | + |
| 30 | +3. **What kind of problems or challenges motivate you the most to solve them?** |
| 31 | +I enjoy solving problems that eliminate repetitive work for developers and improve workflow productivity — especially through automation and AI integration. |
| 32 | + |
| 33 | +4. **Will you be working on GSoC full-time?** |
| 34 | +Yes. I will be dedicating full-time to this project during the summer. |
| 35 | + |
| 36 | +5. **Do you mind regularly syncing up with the project mentors?** |
| 37 | +Not at all — I look forward to regular syncs and feedback to align with the project vision. |
| 38 | + |
| 39 | +6. **What interests you the most about API Dash?** |
| 40 | +API Dash is focused on improving the developer experience around APIs, which is something I care deeply about. I love the vision of combining UI tools with AI assistance in a privacy-first, extensible way. |
| 41 | + |
| 42 | +7. **Can you mention some areas where the project can be improved?** |
| 43 | +- More intelligent code generation from API response types |
| 44 | +- Drag-and-drop UI workflow |
| 45 | +- Visual previews and theming customization |
| 46 | +- Integration with modern LLMs for field-level naming and layout suggestions |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## Project Proposal Information |
| 51 | + |
| 52 | +### Proposal Title |
| 53 | + |
| 54 | +AI UI Designer for APIs |
| 55 | + |
| 56 | +# Relevant Issues: [#617] |
| 57 | + |
| 58 | +### Abstract |
| 59 | + |
| 60 | +This project aims to develop an AI-powered assistant within API Dash that automatically generates dynamic user interfaces (UI) based on API responses (JSON/XML). The goal is to allow developers to instantly visualize, customize, and export usable Flutter UI code from raw API data. The generated UI should adapt to the structure of the API response and be interactive, with features like sorting, filtering, and layout tweaking. This tool will streamline frontend prototyping and improve developer productivity. |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +### Detailed Description |
| 65 | + |
| 66 | +The AI UI Designer will be a new feature integrated into the API Dash interface, triggered by a button after an API response is received. It will analyze the data and suggest corresponding UI layouts using Dart/Flutter widgets such as `DataTable`, `Card`, or `Form`. |
| 67 | + |
| 68 | +#### Step 1: Parse API Response Structure |
| 69 | + |
| 70 | +- Focus initially on JSON (XML can be added later) |
| 71 | +- Build a recursive parser to convert the API response into a schema-like tree |
| 72 | +- Extract field types, array/object structure, nesting depth |
| 73 | +- Identify patterns (e.g., timestamps, prices, lists) |
| 74 | + |
| 75 | +#### Step 2: Design AI Agent Logic |
| 76 | + |
| 77 | +- Use a rule-based system to map schema to UI components |
| 78 | + - List of objects → Table |
| 79 | + - Simple object → Card/Form |
| 80 | + - Number over time → Line Chart (optional) |
| 81 | +- Integrate LLM backend (e.g., Ollama, GPT API) to enhance: |
| 82 | + - Field labeling |
| 83 | + - Layout suggestion |
| 84 | + - Component naming |
| 85 | + |
| 86 | +#### Step 3: Generate UI in Flutter |
| 87 | + |
| 88 | +- Dynamically generate: |
| 89 | + - `DataTable`, `Card`, `TextField`, `Dropdown`, etc. |
| 90 | + - Optional chart widgets (e.g., `fl_chart`) |
| 91 | +- Support: |
| 92 | + - Layout rearrangement (form-based or drag-drop) |
| 93 | + - Field visibility toggles |
| 94 | + - Previewing final UI |
| 95 | + |
| 96 | +#### Step 4: Export UI Code |
| 97 | + |
| 98 | +- Export generated layout as Dart code |
| 99 | +- Allow download or copy-to-clipboard |
| 100 | +- Support JSON config export (optional for renderer-based architecture) |
| 101 | + |
| 102 | +#### Step 5: Integrate into API Dash |
| 103 | + |
| 104 | +- Add AI UI Designer button in the API response view |
| 105 | +- Launch UI editing pane inside app |
| 106 | +- Ensure local-only, privacy-friendly execution |
| 107 | +- Write tests, docs, and polish UX |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +## Weekly Timeline (Tentative) |
| 112 | + |
| 113 | +| Week | Milestone | |
| 114 | +|------|-----------| |
| 115 | +| Community Bonding | Join Discord, interact with mentors, finalize approach, get feedback | |
| 116 | +| Week 1–2 | Build and test JSON parser → generate basic schema | |
| 117 | +| Week 3–4 | Implement rule-based UI mapper; generate simple widgets | |
| 118 | +| Week 5–6 | Integrate initial Flutter component generator; allow basic UI previews | |
| 119 | +| Week 7 | Midterm Evaluation | |
| 120 | +| Week 8–9 | Add customization options (visibility, layout) | |
| 121 | +| Week 10 | Integrate AI backend (e.g., Ollama/GPT) for suggestions | |
| 122 | +| Week 11–12 | Add export functions (code, JSON config) | |
| 123 | +| Week 13 | Final polish, tests, docs | |
| 124 | +| Week 14 | Final Evaluation, feedback, and delivery | |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +Thanks again for your time and guidance. I’ve already started studying the API Dash codebase and developer guide, and I’d love your feedback on this plan — does it align with your vision? |
| 129 | +If selected, I’m excited to implement this project. If this idea is already taken, I’m open to switching to another API Dash project that fits my background. |
0 commit comments