Skip to article frontmatterSkip to article content

Milestone 3: GUI with Modeling & Architecture

Utah Valley University

Overview

Now that your To-Do List app has a solid requirements foundation and basic CLI MVP, it’s time to enhance its structure and user experience—like architects designing a building for scalability and usability. In this milestone, you’ll refine your existing UML diagrams to incorporate architecture and principles, create wireframes/mockups for a GUI version, set up an MVC architecture in code, apply SOLID principles to refactor your MVP, integrate a basic GUI (e.g., using Tkinter), and validate modularity manually. This builds on UI design, architecture patterns, and design principles, transitioning from CLI to a more robust GUI-enhanced setup without automated testing yet.

By the end, you’ll have updated models, UI prototypes, refactored code following SOLID and MVC with GUI integration, and manual validation, preparing for pattern integration next. Continue using GitHub releases for versioning.


Learning Objectives

Upon successful completion of this milestone, you will be able to:


Tasks and Instructions

1. Team Meetings

Coordinate team efforts through structured meetings.

2. Refine UML Modeling

Update diagrams to align with new architecture and principles—focus on incorporating MVC and SOLID impacts.

3. UI Design Planning

Create visual plans for the GUI to guide implementation.

4. Architecture and Principles Implementation

Restructure code emphasizing modularity and best practices.

5. Manual Validation

Confirm the refactored app functions correctly.

6. Individual Reflections

7. GitHub Releases


Submission Checklist

Submit via Canvas:

A .md file containing:

Repository Documents


Evaluation Rubric (100 Points)

CriteriaPointsDescription
Team Meetings5Detailed, actionable minutes with clear agendas
Refined UML Modeling10Updated use case, class, and sequence diagrams
UI Design Planning15Well-designed wireframes and mockups
Architecture & Principles Implementation50Effective MVC setup, SOLID refactoring, and GUI integration
Manual Validation10Comprehensive scenarios with proof
Individual Reflections10Insightful responses, including principles discussion

Penalties: 20% for missing progress check after first week.


Resources

Textbook

Beginner Friendly Resources

Tutorials

GUI Libraries for Python

Best Practices

Example Folder Structure After MVC Adoption

task_manager_app/
├── src/
│   ├── models/
│   │   └── task.py            # Data models (e.g., Task class)
│   │   ├── task_manager.py    # Manages task storage and operations
│   │   └── ...                # Any additional data models
│   ├── views/
│   │   ├── cli_view.py        # CLI output functions
│   │   └── gui_view.py        # GUI components (e.g., Tkinter windows)
│   │   └── templates/         # Templates for rendering UI (optional, for advanced GUIs)
│   ├── controllers/
│   │   └── task_controller.py   # Business logic
│   │   ├── cli_controller.py    # Controller for CLI
│   │   ├── gui_controller.py    # Controller for GUI
│   │   └── ...                  # Additional controllers if needed
│   ├── utils/                 # Shared utilities
│   │   ├── file_handler.py    # JSON/CSV handling logic
│   │   └── helpers.py         # Helper functions used across the project
│   └── main.py                  # Entry point to run the app (select CLI or GUI)
│   └── config.py                # Configuration and constants
│── tests/                  # Test cases
│   ├── test_task.py         # Tests for Task model
│   ├── test_task_manager.py  # Tests for TaskManager logic
│   ├── test_cli_view.py      # Tests for CLI view
│   ├── test_gui_view.py      # Tests for GUI view
│   └── test_controller.py    # Tests for controllers               
└── docs/                # Documentation
    # Existing docs...
    ├── meeting_minutes/
    │   ├── milestone_1/
    │   ├── milestone_2/
    │   └── milestone_3/
    ...

All Project Milestones

  1. Milestone 1: Project Initiation
  2. Milestone 2: Requirements Engineering
  3. Milestone 3: System Modeling ← Current
  4. Milestone 4: Advanced Features
  5. Milestone 5.1: Final Presentation
  6. Milestone 5.2: Final Submission
  7. Final Project Submission