Good day, I feel so lost, I am trying to get started on my first trial App. I have this far laid out the work flow. I have a case study to follow thru but I am not sure where to start. Can you please give me some pointers. See My case study below. Case: Expense Reporting. Create an application that could be used by any consultancy firm for Expense Reporting. Phase 1: The application should: · Have 2 user roles: o Employee (people creating and submitting expense reports) o Admin (maintain system settings) The admin needs to be able to: o Create new managers and employees (First Name, Last Name, Email Address, User Name, Password) o Select the employees that a manager is responsible for o Create Expense Categories · The user need to be able to: o Change their own password o Create an expense report § Each expense report has unlimited expense items § Each expense item has a date, Rand value and a description § For each expense item the user should be able to select the expense category Phase 2: Extend the system in such a way that it is able to: · Automatically calculate the value of the expense report (sum of all the expense items) Phase 3: · Create the possibility to generate a .pdf document for each expense report. Phase 4: · Add an additional User Role: “Manager” which should be able to: o Approve or decline expense reports for their employees (and ONLY see the expense reports for their employees) § In order to do this, create a new status enumeration in the expense report entity with the following possible values (New, Approved, Declined) o Extend the “Expense report Overview” screen to have 3 tab pages (new, approved and declined expense reports) Phase 5: · Create a web service that enables an external system to retrieve the status of an expense report (add an additional attribute to the expense report entity of type “Auto Number”). The input should be the expense report number, the output the status.
You always start with your domain model. Build the entities and connect them together. Lets start with the expense report. As you say this report could have many expense items. So make the entity ExpenseReport and the entity ExpenseItems and connect the two entities (one report can have many items). Fill the entities with the fields you want them to have.
Expense categories could be an enumeration or an entity of its own. Depends how dynamic the categories are and if you let the user make categories themselves. I would opt for a system where you can add categories after approval of a manager. Otherwise you probably end up with a lot of categories that are almost the same, because every user has a different opinion about them.
For the users you can either set up a module of its own or adept the Administration model. Most of the time I make a own module and let it inherit from system.user (see inherits in the documentation). Create or adept the users and create the different user roles.
Now start building the forms. Think about the user role and the first form your user will see (dependent of the user role). Think about the buttons you want your form to have. Most of the time the standard buttons are not enough. For custom buttons you make microflows to describe what these buttons should do.
I hope this gives you some insight on how to start building your first app. Try the pizza example to get a feel on how to work with Mendix. Good luck.