Skip to article frontmatterSkip to article content

Generated Project End-User Documentation

Systems produced by Mike are built from a common set of components. Differences between applications—both in appearance and behavior—come from which components were included, how many instances of each were used, how they were customized, and any additional modifications developers made afterward.

We use a CRM application to illustrate what a Mike application consists of and how to use it. (You can view the Mike descriptor the app was generated from in Generated Project Developer Documentation.)

1.CRM System

The CRM (Customer Relationship Management) system supports a hypothetical company’s customer-relationship workflows.

1.1.User menu

When you open the site, a user menu appears in the top-right corner, represented by a stylized person icon; when you’re signed in, it also shows your username next to the icon (see Figure 1.). Its contents depend on whether you’re signed in. Two entries are always available: “Language” and “Dark mode.” The former sets the UI language; the latter toggles the color theme. After enabling dark mode, the menu item changes to “Light mode” to revert to the original theme. When signed in, a “Sign out” option is also shown.

User menu icon

Figure 1.:User menu icon

1.2.Authentication and authorization

Because customer data is sensitive, the system is only usable after signing in, and signed-in users can perform only those actions they are authorized for. (Mike applications typically include auth, but some tasks—or even entire apps—may be accessible without signing in.) After entering the application URL in your browser, the sign-in page opens. Provide your username and password to continue (see Figure 2.).

Login window

Figure 2.:Login window

Self-registration is not available. New users must be added by an existing user with the appropriate privileges, e.g., an admin.

If a user forgets their password, they can request a new one via the Forgot password link. Enter your username or your registered email address; the system will send an email with further steps (see Figure 3.).

Request a new password by providing your username or registered email address

Figure 3.:Request a new password by providing your username or registered email address

That email contains a link that lets you set a new password (see Figure 4.). Enter the new password twice to minimize typos. The page lists password requirements in detail (these can differ by system). Clicking the “eye” icons reveals the typed password—use with care in shared environments.

Setting a new password

Figure 4.:Setting a new password

Afterwards the browser returns to the sign-in screen, where you can log in with the new password.

A left-hand navigation menu appears along the edge of the app (see Figure 5.). You can hide or show it using the “hamburger” icon (three horizontal lines) in the top-left corner.

Below the icon you’ll see a logo and the menu items. Some items go directly to pages (e.g., “User list”); others are groups (e.g., “Marketing”). Click a group name to expand or collapse it. The active page is highlighted.

1.4.Common page layout

1.4.1.Tables

Pages reachable from the navigation menu present data in tabular form with a common structure.

If defined, the page title appears at the top in larger bold type (see Figure 6.).

The “Communication channels” page

Figure 6.:The “Communication channels” page

Next comes + Add new, which creates a new record that will be saved to the database.

The next row contains the column headers (see Figure 7.). Click a header to change the sort direction (ascending, descending, or natural order). Small triangles next to the header show the current direction. If multiple columns are involved, each can have its own sort; tiny numbers to the right of the triangles show the priority of each sort key.

Sorting ascending by partner, then by name

Figure 7.:Sorting ascending by partner, then by name

Reorder columns by dragging and dropping their headers.

You can filter rows by the value of one or more fields. Available filters depend on the field type. For text fields, choose among the options shown in Figure 8.. Open the filter menu by clicking the icon at the left edge of the filter input; it reflects the currently selected mode.

Filtering a text field

Figure 8.:Filtering a text field

For numeric fields, appropriate relational operators are available (see Figure 9.).

Filtering numeric values

Figure 9.:Filtering numeric values

For enumerations (pick-one lists), the options are correspondingly limited (see Figure 10.).

Filtering enumerated values

Figure 10.:Filtering enumerated values

Finally, date/time fields support the filters shown in Figure 11..

Filtering date and time values

Figure 11.:Filtering date and time values

On most pages you can adjust column widths by dragging the gutter between filters; a blue vertical guide appears (see Figure 12.). This works even if filtering is disabled and the filter inputs are hidden.

Adjusting column widths

Figure 12.:Adjusting column widths

Two icons may appear to the right of the filters. The first shows two side-by-side columns (see Figure 13.); click it to choose which columns are visible.

Configuring visible columns

Figure 13.:Configuring visible columns

The second toggles display of inactive entries (see Figure 14.). In some tables, records can be inactivated instead of permanently deleted. Inactive rows are hidden by default but remain in the database; you can reveal them, and they appear with a highlighted background. If the activity field is visible, it will show that the item is inactive and, depending on configuration, the date it was inactivated.

Show inactive entries

Figure 14.:Show inactive entries

Use the trash-can icon at the far right of a row, , to delete or (where allowed) inactivate a record. The confirmation dialog (see Figure 15.) offers both options when possible.

Delete dialog

Figure 15.:Delete dialog

1.4.2.Adding new records

On tabular pages, the + Add new link above the table opens an entry form for the same type of records shown in the list.

Add a new partner

Figure 16.:Add a new partner

1.4.3.Editing records

To edit a row, click the pencil icon at the far right, . This opens the same form used to create records, prefilled with current values, and includes a button to delete the record.

1.4.4.Viewing records

Click the magnifying-glass icon, , to open a read-only detail view. Its layout depends on the specific data.

1.5.Application pages

1.5.1.Communication channels

Manage channels used for contacting customers. Although presented in a table, there is just one column: the channel name. No additional details are available and items cannot be inactivated.

1.5.2.Marketing channels

This page also has a single column—the channel name—but the View action is available. It opens another table for compiling the channel’s budget.

Marketing channel view: assembling the budget

Figure 17.:Marketing channel view: assembling the budget

1.5.3.Products

Lists products. More fields are stored (recurrence, invoice-time value, VAT rate, notes) than are shown in the table (name, price, currency).

1.5.4.Discounts

Lists discounts, each with a name, type (percentage or fixed amount), and value.

1.5.5.Sales representatives

The table shows only the salesperson’s name, but the View action displays their leads in a table (see Figure 18.). That view’s View action links to the same lead-detail view used on the Leads page (see Figure 20.).

Leads assigned to a salesperson

Figure 18.:Leads assigned to a salesperson

1.5.6.Partners

Shows partner data: name, postal address, and tax number. The database also records the VAT ID and billing email address. The detail view additionally lists the partner’s contacts and company-size metrics (year, revenue, profit, headcount) (see Figure 19.).

Partner details

Figure 19.:Partner details

1.5.7.Contacts

Manage contacts associated with partners. The system stores name, email address, phone number, and job title.

1.5.8.Leads

Displays selected lead attributes: sequence number, probability, associated partner, salesperson, creation date, and marketing channel. You can optionally show estimated revenue, expected value, and duration. Editing and deletion are disabled, but the View action opens a two-band detail page (see Figure 20.).

Lead details

Figure 20.:Lead details

The upper band has two parts: on the left, key lead fields; on the right, a tabbed panel where you can review and edit products, contacts, and company-size data in tables. The lower band manages event data.

1.5.9.Users and roles

If the web app includes user management—as it does in the CRM—two related menu items appear: Users and Roles.

Users. Initially you’ll see a single user, the admin, in the familiar table view. By default the admin has all privileges and can invite additional users via + Invite new user, view user details, and edit them. The system stores each user’s unique username and email address, plus real name, assigned roles (a user can hold multiple roles), and—if a user is blocked (temporarily banned)—the date of blocking. Users cannot be deleted, only blocked. The system ensures that at least one admin-privileged user always remains active to unblock others or add new users.

Roles. This page manages the set of roles assignable to users. A role is a named collection of privileges with an expressive name and a unique identifier (a string starting with ROLE_). Privileges fall into four categories: create (CREATE_), delete (DELETE_), update (UPDATE_), and read (READ_). Privileges are defined per entity type stored in the database; for example, CREATE_PARTNER, DELETE_PARTNER, UPDATE_PARTNER, and READ_PARTNER are used to govern partner management.

You can delete a role only if no user currently has it. To remove a role, first unassign it from all users.

The privileges belonging to a role are editable—for example, you can remove specific privileges from a role. The built-in admin role is special: it can’t be deleted nor can any of its privileges be removed.