Title: The Developmental Journey of an AI-Assisted Auction Website: Lessons, Challenges, and Solutions
Abstract:
This research paper delves into the exploratory journey of using an AI (Artificial Intelligence), specifically ChatGPT, to assist in developing an auction website. Highlighting the iterative process of problem identification, solution finding, and implementation during development, this documentation aims to furnish insights into leveraging AI capabilities while addressing its limitations. Through this, developers and AI enthusiasts can gain a comprehensive understanding of effective collaboration with AI, addressing common pitfalls, and devising solutions during software development.
Introduction
The development of a software application, particularly an auction website, with AI like ChatGPT presents a blend of convenience, innovative solutions, and challenges. The interaction between the developers and AI, as documented in the development log, reveals valuable insights into effectively leveraging AI while acknowledging and circumnavigating its limitations. This paper elucidates the practical aspects, challenges, and solutions encountered during the development journey.
AI-Assisted Software Development: A Development Log Analysis
ChatGPT Interfacing: Simple graphical interface showing ChatGPT providing a code snippet on how an item was purchased through bidding or via "Buy It Now".
The developmental journey transpired through various phases, each entailing specific challenges and solutions, guided, and assisted by ChatGPT. An analysis of the development log reveals key developmental aspects, notably:
2.1. Formulating and Implementing Functionalities
Initially, developers interfaced with ChatGPT to devise functionalities like creating listings, user authentication, bidding, and implementing 'buy it now' features, addressing challenges as they surfaced. To achieve the best results when interfacing with ChatGPT developers must carefully craft prompts to be fed to the ChatGPT that are direct and informative. For example, the following prompt was given to ChatGPT; “Im am providing you code for an auction site that uses Django. I want you to create a nice looking, dynamic front-end UI for the site using Bootsrap5. Modify the base.html file so the header has stylized buttons. The base.html file is pasted below.” This prompt gives a clear task to ChatGPT which also includes the required packages.
2.2. Addressing and Rectifying Errors
The process was punctuated by encounters with errors and unanticipated outcomes, such as the TemplateDoesNotExist error, issues with URL pathing, and errors due to omitted imports, all of which demanded iterative refinement (Rector et al., 2017). In most cases, these issues can be rectified by ChatGPT itself either by editing the previous prompt with more specific guidelines or providing ChatGPT with error messages and asking it to troubleshoot the issues. Once doing this ChatGPT will either correct its own code or guide the developer on how to troubleshoot the issue.
2.3. Enhancing User Experience and Functionality
ChatGPT facilitated the development of functionalities like bid placement, item display, and user profile management, albeit with occasional oversight and subsequent revisions to achieve optimal functionality.
Challenges Encountered and Solutions Derived
Throughout the development, numerous challenges were confronted, stemming from AI limitations, oversight, and unforeseen scenarios, necessitating meticulous problem-solving.
3.1. Forgotten Imports and Misconfigurations
Recurrent issues like forgotten imports and misconfigurations necessitated repeat troubleshooting, highlighting the importance of thorough code review post-AI generation (Cubranic and Murphy, 2003).
3.2. Unanticipated Use-Cases
Certain use-cases, such as varied bidding scenarios, were initially overlooked, demanding subsequent revisions to cater to all user interactions (Pizka and Deissenboeck, 2007).
3.3. Limitations of AI Assistance
Example of error messaging
While ChatGPT assisted in various phases, certain limitations, such as a token limit and the occurrence of hallucinations, warranted manual interventions and adaptations. The token limit is the maximum number of tokens that a language model can process in a single input or response. In the case of ChatGPT 3.5 the token limit is 4096 tokens (Kohn, 2023). "Hallucinations" in the context of large language models like ChatGPT refer to situations where the model generates responses that are incorrect, nonsensical, or unrelated to the input or context (Lutkevich, 2023).
Strategies for Effective AI-Assisted Development
Drawing from the experiences documented, several strategies are discerned to harness AI effectively in software development.
flowchart illustrating the process developers went through when a challenge was identified - from identifying the issue, consulting with ChatGPT, implementing a solution, to validation.
4.1. Iterative Development and Constant Validation
Adopting an iterative approach, coupled with constant validation of implemented functionalities, ensures gradual refinement and robust functionality (Boehm, 1988).
4.2. Thorough Review and Manual Intervention
Even with AI assistance, a thorough review of generated code and readiness to intervene manually is paramount to mitigate oversights and align the code with development goals.
4.3. Anticipating and Planning for Various Use-Cases
A forward-thinking approach to anticipate diverse user interactions and scenarios ensures a more comprehensive and user-friendly application (Wiegers and Beatty, 2013).
4.4. Collaborative Problem-Solving with AI
Adopting a collaborative stance with AI, offering specific problem descriptions, and utilizing generated solutions judiciously facilitate smooth development (Hill et al., 2015). One of ChatGPT’s greatest features is that it references your previous messages and its responses in the active chatlog and utilizes it when giving responses. This feature is vital for our use case of building a fully functioning auction website using 100% AI generated code. We learned early in the development process that having different conversations on different accounts is not useful, as the AI will generate unique responses and code solutions in each conversation even if the prompts are the same. To subvert this, we used a single ChatGPT account for all our development. This allowed us to continually add features to the site, without having to re-explain the project and codebase to the AI.
Conclusion
AI, like ChatGPT, offers a potent ally in software development, if developers engage iteratively, anticipate diverse use-cases, and remain poised for manual interventions and refinements. Through a collaborative and vigilant approach, AI’s capabilities can be effectively harnessed, and its limitations adeptly managed, paving the way for successful software development.
References:
Boehm, B. W. (1988). A Spiral Model of Software Development and Enhancement. ACM SIGSOFT Software Engineering Notes, 11(4), 22-42.
Cubranic, D., & Murphy, G. C. (2003). Automatic bug triage using text categorization. In Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering (pp. 92-97).
Hill, C., Bellamy, R., Erickson, T., & Burnett, M. (2015). Trials and tribulations of developers of intelligent systems: A field study. In 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 162-170). IEEE.
Kohn, R. (2023, March 21). Mastering token limits and memory in CHATGPT and other large language models. Medium. https://medium.com/@russkohn/mastering-ai-token-limits-and-memory-ce920630349a
Lutkevich, B. (2023, June 22). What are AI hallucinations and why are they a problem? TechTarget. WhatIs.com. https://www.techtarget.com/whatis/definition/AI-hallucination
Pizka, M., & Deissenboeck, F. (2007). Comprehensive lifecycle support for virtual software artifacts. In 2007 Future of Software Engineering (pp. 147-159). IEEE Computer Society.
Rector, K., Milne, L., Ladner, R. E., Friedman, B., & Kientz, J. A. (2017). Exploring the Opportunities and Challenges with Exercise Technologies for People who are Blind or Low-Vision. In ASSETS (pp. 32-40).
Wiegers, K. E., & Beatty, J. (2013). Software Requirements. Microsoft Press.