|
| 1 | +--- |
| 2 | +id: APP-002 |
| 3 | +category: App/Crud |
| 4 | +tags: [entity, crud, pages, navigation, clean-project, run] |
| 5 | +timeout: 10m |
| 6 | +--- |
| 7 | + |
| 8 | +# APP-002: Contact Management (Clean Project) |
| 9 | + |
| 10 | +## Prompt |
| 11 | +This is a new clean Mendix project. Can you create a module Test1 with a domain model for a small contact management app, with overview pages and edit pages to edit the data. Also add the pages to the navigation menu. When done start the app so I can test. |
| 12 | + |
| 13 | +## Expected Outcome |
| 14 | +A new module `Test1` containing a small contact-management domain model, overview + edit pages for each entity, navigation menu entries pointing at the overview pages, and the app running and reachable in the browser. |
| 15 | + |
| 16 | +## Checks |
| 17 | +- module_exists: "Test1" |
| 18 | +- entity_exists: "Test1.Contact" |
| 19 | +- entity_has_attribute: "Test1.Contact.FirstName String" |
| 20 | +- entity_has_attribute: "Test1.Contact.LastName String" |
| 21 | +- entity_has_attribute: "Test1.Contact.Email String" |
| 22 | +- entity_has_attribute: "Test1.Contact.Phone String" |
| 23 | +- page_exists: "Test1.Contact_Overview" |
| 24 | +- page_exists: "Test1.Contact_NewEdit" |
| 25 | +- navigation_has_item: "Test1.Contact_Overview" |
| 26 | +- mx_check_passes: true |
| 27 | +- app_starts: true |
| 28 | + |
| 29 | +## Acceptance Criteria |
| 30 | +- Module `Test1` is created in the clean project (no pre-existing artifacts reused) |
| 31 | +- Domain model has at least a `Contact` entity with sensible attributes (name, email, phone) — additional entities (e.g. `Company`) with associations are acceptable but not required |
| 32 | +- Overview page uses a data grid bound to the entity, with New / Edit / Delete actions wired up |
| 33 | +- Edit page uses a data view with input widgets for each attribute and Save / Cancel buttons |
| 34 | +- Navigation profile (Responsive at minimum) has a menu item pointing at the overview page |
| 35 | +- `mx check` passes with no errors |
| 36 | +- App is started (e.g. `mxcli docker run` or equivalent) and the overview page loads in the browser |
| 37 | + |
| 38 | +## Iteration |
| 39 | + |
| 40 | +### Prompt |
| 41 | +Add a Company entity with an association to Contact, and show the company name as a column in the contact overview. |
| 42 | + |
| 43 | +### Checks |
| 44 | +- entity_exists: "Test1.Company" |
| 45 | +- entity_has_attribute: "Test1.Company.Name String" |
| 46 | +- association_exists: "Test1.Contact_Company" |
| 47 | + |
| 48 | +### Acceptance Criteria |
| 49 | +- Company entity created with a Name attribute |
| 50 | +- Many-to-one association from Contact to Company |
| 51 | +- Contact overview grid shows the company name via the association |
0 commit comments