BaseApp is an example model for MDriven Designer users who want to start with, or merge in, a foundation for user onboarding, administration, email, notifications, scheduled work, and analysis.
BaseApp is an extract from larger models used in projects. Use it as a starting point when its included areas match your application, or merge selected parts into an existing model. It is also listed among the example apps in Documentation:Example Gist.
Choose how to use BaseApp
| Approach | Use it when | Example |
|---|---|---|
| Start from BaseApp | You are creating an application that needs several of the included foundation areas. | Start with its onboarding and user-management structures, then add your application-specific classes and ViewModels. |
| Merge selected parts | You already have a model and need a specific foundation area. | Merge the notification or email-template parts rather than replacing your existing application model. |
BaseApp can be merged with most other example and template models. Review the model after merging and adapt the extracted parts to the conventions and requirements of your application.
Get the model
- Download BaseApp.zip.
- Open the model in MDriven Designer.
- Decide whether you will use it as the starting model or merge the needed sections into an existing model.
- Review the included classes, ViewModels, actions, and settings before adapting them.
- Implement and test the parts that require application-specific behavior, such as user information, email delivery, access rules, and scheduled tasks.
For other ready-to-apply and merge-in examples, see Documentation:Example Gist.
Included model areas
Onboarding and account recovery
BaseApp includes a foundation for onboarding users and handling account-related communication. This area includes support for:
- Sending an email confirmation email.
- Asking a registering user for additional information.
- Sending a welcome email.
- Providing password-reset email and screens.
- Managing logins through SysUsers.
For example, you can adapt the registration flow to collect information required by your application, then use the included confirmation and welcome-email structures as the basis for your own messages.
Debugging and test users
BaseApp includes debugging support for checking application login state and working with test users:
- A global DBG action and dashboard for switching between users and checking login status.
- A dedicated screen for creating fake users for testing.
For example, use the DBG dashboard while testing a role-specific flow: switch to a test user, verify that the expected login state is active, and then test the relevant menus and screens.
Environment settings and access separation
The model includes an implementation intended to manage development, test, and production environments and separate them through different access groups.
For example, adapt the access groups so that users of a test environment do not use the same access grouping as users of the production environment. Confirm your environment-specific rules before deployment.
User modes and administration
BaseApp provides a basis for users to switch modes or roles within an application. It includes an Admin mode for administration menus and test setup.
For example, use Admin mode as the starting point for menus used to prepare test data or administer application settings, then define the access rules required by your application.
Email templates and outgoing-email diagnostics
The email area provides structures for working with outgoing email and editable templates:
- Logging and viewing outgoing emails and problems.
- Email templates, including screens based on editable HTML templates.
- Editing email templates inside the application.
- Flexible ViewModels for merging dynamically edited templates.
A ViewModel is the model structure used to present and interact with data in an application view. For example, adapt a template and its ViewModel so that a welcome email can combine editable HTML with values from the recipient and the event that triggered the email.
Notifications
BaseApp includes a user-notification system for informing users about events in the application. It can send email based on a notification timeout.
For example, use a notification when an event requires a user's attention. If the notification remains unresolved for the configured timeout, adapt the email behavior to notify the user by email.
Server jobs and task scheduling
BaseApp includes screens for modeled scheduled work:
- A view for debugging SysAsync jobs.
- A page for managing the modeled task scheduler.
For example, use the SysAsync debugging view when investigating a background job, and use the task-scheduler page to manage modeled scheduled tasks. Validate each scheduled task's application-specific behavior before relying on it in an environment.
Data analysis
The model contains a complete calendar in the model and database for use as dimensions. It also includes an example of detecting the CodeDress problem.
For example, use the calendar structure as a date dimension when your analysis needs to group information by calendar periods. Review and adapt the CodeDress example to the rules of your own model.
Implementation notes
BaseApp is provided as an extract, not as a finished application. Some features are intended to be completed by subclassing and further implementation before they are ready for use.
Before using a feature in your application:
- Identify the included model elements that support the feature.
- Add the application-specific subclasses, rules, and user-facing behavior it requires.
- Test the feature with representative users and data, including the relevant access groups and environment settings.
- Review email, notification, and background-job behavior in the environment where the application will run.
If you are new to MDriven Designer, start with Documentation:Start Introduction before adapting the model. For related modeling techniques, see Documentation:Derived attributes & associations and Documentation:Derived settable attributes.
