Archives November 2023

Mapping Your Project Odyssey: Jira Tasks to Chart the Course for Web App Development

While I have used JIRA in a limited way in the past, I’m still pretty new to the platform. I wanted to see if ChatGPT could help with some of the tasks to make sure I’m hitting all the right points. This way I can get some practice with JIRA and integrating it into my development process. However, since I’m a team of one at the moment, I think some of the really important collaboration features JIRA offers will go to waste.

The first thing I did was to make sure that my JIRA project and my GitHub repo for the project were integrated with each other. I’m using the free version of JIRA, so I can’t actually set permissions for viewing, and you’ll have to forgive me if I don’t want to make everyone on earth an admin, so hopefully the integration with GitHub will serve as a stopgap. In case you’re wondering how things are going, check out the GECACS repo.

In my previous post, Crafting Clear Paths: A Comprehensive Guide to Defining Requirements for Your Web Application Project – My Data Science Journey (myordinaryjourney.com), ChatGPT outlined the steps I should take for developing and capturing system requirements. In this post, I’m going to be adding tasks into JIRA based on Chat’s previous step 1 recommendations.

My ChatGPT Prompt

For step one, can you recommend some JIRA issues I should be tracking?

ChatGPT Response

At the initial stage of defining requirements and planning your project, here are some Jira issues or tasks you might consider tracking:

  1. Epic Creation:
    • Create epics in Jira to represent major themes or sections of your project. For example:
      • Epic 1: Requirement Gathering
      • Epic 2: Database Setup
      • Epic 3: User Authentication
  2. User Stories:
    • Break down your requirements into user stories. These represent specific functionalities or features from a user’s perspective. For instance:
      • Story 1: As a guild librarian, I want to add new equipment to the system.
      • Story 2: As a guild member, I want to check out equipment for use.
      • Story 3: As a guild member, I want to see a history of equipment I’ve checked out.
  3. Technical Tasks:
    • Include technical tasks necessary for setting up your development environment, integrating Firebase, and configuring the backend. For instance:
      • Task 1: Set up Python and Flask development environment.
      • Task 2: Configure Firebase project for the database.
      • Task 3: Implement Firebase user authentication.
  4. Documentation:
    • Track tasks related to documentation, which is crucial for maintaining clear records and instructions for the project. For example:
      • Task 4: Create a requirements document based on stakeholder meetings.
      • Task 5: Draft user documentation for the guild librarian on using the application.
  5. Stakeholder Collaboration:
    • Create tasks related to stakeholder collaboration, such as scheduling meetings and gathering requirements. For instance:
      • Task 6: Schedule meeting with guild librarian to discuss equipment tracking needs.
      • Task 7: Review and validate requirements with stakeholders.
  6. Project Setup:
    • Include tasks related to setting up your project management system and initial configurations. For example:
      • Task 8: Set up Scrum/Kanban board in Jira for project management.
      • Task 9: Define workflow stages for user stories and epics in Jira.
  7. Research and Exploration:
    • Track tasks related to exploring different tools, technologies, or best practices that might be beneficial for your project. For instance:
      • Task 10: Research best practices for Firebase database design.
      • Task 11: Explore Flask extensions for Firebase integration.

These suggested issues and tasks in Jira can serve as a starting point for organizing your project and breaking down the work into manageable components.

The Result

Epic Creation

I just used what Chat gave me for the Epics. I will have to add more when I get to the other steps.

User Stories

In addition to the user stories Chat defined for me, I added:

  • As a guild member, I want to see where I am on the waitlist.
  • As a guild member, I was to reserve a piece of equipment.
  • As a guild librarian, I want to see what equipment is checked out.
  • As a guild librarian, I want to see where each piece of equipment is currently located.

Task Creation

For the most part I used that tasks that Chat recommended. However, I chose to omit the tasks defined in the project setup step, as I’ve already done those. Although thinking about it now, I wonder if I should add them and just mark them complete.

    Next Steps

    My next steps will be to do my task estimation using story points, associating the tasks and user stories with the epics, and creating any additional epics, user stories, or tasks that I may have missed. I will also need to define my sprint length. Right now, in my communications plan, I am set up to do weekly check-ins with the librarian to give status updates. I think I’ll change that to every two weeks so that I can align the communication plan with the sprint length.

    Feedback

    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.