Archives November 12, 2023

Crafting Clear Paths: A Comprehensive Guide to Defining Requirements for Your Web Application Project

Turns out step one isn’t just step one.

My ChatGPT Prompt

How do I do Step One: Define Requirements

ChatGPT Response

Defining requirements is a crucial step in the project development process, and it involves gathering, documenting, and understanding what your stakeholders (in this case, the guild librarian) need from the web application. Here’s a guide on how to approach this:

  1. Identify Stakeholders:
    • Determine who the key stakeholders are. In this case, it’s likely the guild librarian, but there may be other individuals or groups with a vested interest in the project.
  2. Hold Stakeholder Meetings:
    • Schedule meetings with the stakeholders to discuss the project. During these meetings, ask open-ended questions to encourage discussions about their needs, expectations, and any specific functionalities they envision.
  3. Ask Specific Questions:
    • To gather detailed information, ask specific questions about the equipment tracking system. For example:
      • What types of equipment does the guild have?
      • What information needs to be tracked for each piece of equipment?
      • How should the system handle check-in and check-out processes?
      • Are there specific reports or notifications that would be helpful?
  4. Document Requirements:
    • Document all the information gathered in a structured manner. Create a Requirements Document or use a tool like Confluence, Google Docs, or even a simple spreadsheet. Ensure that the document is clear and accessible to all team members.
  5. Clarify Priorities:
    • Work with the stakeholders to prioritize the identified requirements. This will help you focus on the most critical features and functionalities, especially if there are time or resource constraints.
  6. Verify and Validate Requirements:
    • Once you have a draft of the requirements, go back to the stakeholders to verify and validate the information. This ensures that you’ve captured their needs accurately and haven’t missed anything.
  7. Consider Edge Cases:
    • Think about potential edge cases or scenarios that might not have been explicitly mentioned. Anticipate challenges or exceptions that could occur in real-world usage.
  8. Iterate as Necessary:
    • Requirements gathering is an iterative process. Be prepared to revisit and update the requirements document as the project progresses and new insights emerge.
  9. Create User Stories:
    • Based on the requirements, start creating user stories. User stories represent specific functionalities from an end-user perspective and will be useful when you set up your project management system.
  10. Communicate Clearly:
    • Ensure effective communication between the development team and stakeholders. Clearly articulate what is feasible within the project scope and timeline.

By following these steps, you’ll establish a solid foundation for your project, ensuring that you have a clear understanding of what needs to be built and how it aligns with the expectations of the guild librarian and other stakeholders.

The Results

I have already collected some of the information already. So this is the inventory of what I have, what I think I know, and what I need to follow-up on.

Identify Stakeholders: This is indeed pretty straight forward. The main stakeholder is going to be the guild librarian, but I also want to include the guild’s membership because they are going to be the ones that actually initiate the check-out process.

Hold Stakeholder Meetings: This step is a little over kill for our little group. We only have about 55 members. During a previous meeting with the librarian I feel like we already completed this step. Follow-up meetings will probably need to happen, at least to demonstrate what’s been done in the development and to present my approach to finding the solution that works best for our needs.

Ask Specific Questions:

  • What types of equipment does the guild have? We already have an inventory of the equipment. It includes looms, spinning wheels, and other tools.
  • What information needs to be tracked for each piece of equipment?
    • Where the item is stored?
    • What is Its status?
    • Who has it checked-out if it is checked-out?
    • Is there someone on the waitlist for the equipment?
    • When is it expected to be checked-in?
  • How should the system handle check-in and check-out processes?
    • –> I had to ask a follow up question on this one because this sounded a little vague to me. ChatGPT came back with the following:
      • User Interaction: Through a web form
      • Equipment Identification: Each piece of equipment has a unique serial number (SN)
      • Transaction Logging: Collection of data such as the equipment SN, when it was checked out and to whom.
      • Notification System: Several notifications will be generated for each check-out/in
      • Reservation/Waitlist System: I will need to follow up on the reservation system, but there will need to have a waitlist for items.
      • Overdue Alerts: Lending time is 30-days, but can be re-checked out if there is no waitlist.
      • Access Controls: Only guild members should have access.
      • Integration with Database: The DB should be updated whenever equipment is checked-out/in
  • Are there specific reports or notifications that would be helpful?
    • Yes, the librarian needs to be alerted when the equipment is returned and if the item has a waitlist, the next user is notified that the item is available. 30-Day Check-out renewal sent if no waitlist, otherwise a notification that the item needs to be returned because there is a waitlist.

Document Requirements: Since I already have the project setup with JIRA I will use Confluence to document what those requirements are.

Clarify Priorities: The most important feature for the librarian is to be able to accurately and easily track the check-in of the equipment. There are several other features that need to be developed that will be transparent to the end-users. The stakeholders just want the ability, they are not expecting an iterative process.

Verify and Validate Requirements: Need to do

Consider Edge Cases: The system is pretty straight forward, but some of the other things I can see needing:

  • A way for the members to check the status of the equipment
  • A way to submit a query about the equipment or about the process

Iterate as Necessary: Self-explanatory

Create User Stories: Need to do

Communicate Clearly: Need to create a regular update schedule to let the librarian and officers know the project’s progress.

Next Step(s)

Clearly, I’m going to need to do some documentation and go back to communicate my assumptions with the stakeholders to ensure I’m going in the right direction. I need to add to Confluence and JIRA to track what I’ve been working on and my work with the stakeholders.


Submit Feedback

Crafting Efficiency: Building a Guild Equipment Tracking System with Flask, Firebase, and WordPress

Like I said, I’ve never done something like this before, so I’m going to use ChatGPT as a teacher/project manager. So the first thing I did was told CGPT what it is I want to do, and how I want to use it.

My ChatGPT Prompt

I want to develop a web application for the Fredericksburg spinners and weavers guild called GECACS. It stands for Guild Equipment Check-out and Control System. The guild librarian needs a way to track the guild’s equipment. The guild has equipment stored at the studio and different member’s homes. The librarian needs a way to track the piece of equipment, when it is checked-out/in and to whom. I imagine the app will use Firebase for the databases. I will do coding in Python, and the app will be hosted on our WordPress website. I have never developed a web application and I would like for you the help guide me through the process.

ChatGPT Response

  1. Define Requirements:
    • Collaborate with the guild librarian to define specific requirements for equipment tracking. Understand the necessary features and functionalities.
  2. Database Design (Firebase):
    • Utilize Firebase as the database platform. Design the data structure to accommodate equipment, member details, and transaction records in a NoSQL format.
  3. Choose a Web Framework:
    • Opt for Flask as the web framework for Python, considering your familiarity with the language. This choice aligns well with Firebase for backend development.
  4. Set Up Development Environment:
    • Install necessary tools, including Python, Flask, and Firebase SDK for Python. Configure your virtual environment to manage dependencies.
  5. Coding the Application:
    • Begin building the application by breaking down tasks. Develop routes, set up Firebase connections, and design templates for the frontend.
  6. Database Integration (Firebase):
    • Connect your Flask application to the Firebase NoSQL database. Utilize Firebase SDK or a similar library to facilitate seamless interactions.
  7. User Authentication (Firebase):
    • Implement user authentication using Firebase Authentication to control access. This ensures secure tracking of equipment check-ins and check-outs.
  8. Testing:
    • Regularly test the application, covering various scenarios to ensure its robustness. Test Firebase interactions and authentication thoroughly.
  9. Deployment (WordPress and Firebase Hosting):
    • Deploy the application to your WordPress website. Utilize Firebase Hosting for backend services and consider integrating the frontend into your WordPress site.
  10. User Training:
    • Provide comprehensive training for the guild librarian on how to effectively use the application, emphasizing the new Firebase backend.
  11. Project Management (Jira):
    • Implement a project management system using Jira. Define epics, user stories, and tasks. Choose between Scrum or Kanban based on your team’s preferences. Use Jira to track progress, assign tasks, and facilitate communication.
  12. Maintenance and Updates:
    • Plan for ongoing maintenance and updates. Utilize Jira to track issues, prioritize updates, and ensure the long-term stability of the application.

Next Step

Define Requirements – so let’s get started.

Embarking on the Web Development Journey: GECACS – Weaving a Digital Tapestry for Guild Equipment Management

In this blog series, I’ll delve into the exciting world of web development as I embark on the creation of GECACS (Guild Equipment Check-out and Control System) for the Fredericksburg Spinners and Weavers Guild. I have never developed a web application before, so I’m going to use ChatGPT 3.5 to guild me through the process.

In addition to ChatGPT, some of the other tools I will use include GitHub, JIRA, Google Colab, Google Firebase, Python, and WordPress. Since I like to learn new things, I’m thinking of going with Google’s Firebase Realtime Database for my data handling needs.

Why am I doing this?

Many years ago I elected to use the Forminator plug-in to create a check-out form for our guild members to use when they wanted to check-out equipment. The problem is that there was no way for the member or librarian to document the equipment had been turned back in. Trying to associate the check-out form with a check-in was becoming difficult for our librarian to keep up with. Since I am the guild’s “technology officer” and with my data science background, it seamed like a natural option to develop a solutions that would showcase my current skills and help me develop new ones.