"Follow" and "star" us,
Receive the latest information about Amazon Cloud Technology every day!
For the very fulfilling workplace "white-collar elite" , various meetings may be the most troublesome thing. Which meetings will I need to attend in the next few days? Who are the other participants in each meeting? What topic are you going to discuss? Is there anyone who must attend the meeting hasn’t been determined yet? ......All kinds of trivial matters are extremely troublesome!
Although there is a lot to provide related functions schedule management and collaboration software, but this alone how to develop their own set of sounds more style it? And it's also regarded as a hands-on practice for learning new technologies.
this article, let’s take a look at how to use low-code technology to develop a simple and practical meeting management and subscription application with the help of Amazon HoneyCode.
Even if you don't know how to write code at all, you don't even need to write any code, you can quickly and easily complete the "development" task!
demand analysis
For such a conference subscription publishing system, we hope to achieve the following requirements:
For this application, we hope to build it through the following steps:
● Data logic definition
● Business logic definition
● Data filling
● Visual layout adjustment
Data logic definition
First, we need to consider the definitions related to data logic. This application has three data tables, namely: Users table, Meetings table and BookedMeetings table .
The Users table defines the names and corresponding roles of users who use the App to subscribe and publish meetings, as shown below:
As shown in the figure above, the Name column is each user of the App, and its value comes from the system variable $[SYS_USER], and the Role column is the role corresponding to each user. In the App design, the corresponding user is determined according to the role. Conference publishing permissions. The Users table is also the only one of the three tables that needs to be filled out manually.
Meetings Table is a record table of all meetings, which records the detailed content, creator and creation time of each meeting record, as shown below:
The Name column is the conference name, Agenda is the conference subject, and the Location, Date And Time, and Duration columns correspond to the location, time, and duration of the meeting, respectively. The remaining CreateBy and CreateOn are the conference publisher and release date. It should be noted that the Mdate column, whose value comes from the interception of the date part in the Date And Time column, will be used in the APP as a logical judgment condition for whether the meeting is overdue. Its expression is:
=CONCATENATE(MONTH(Meetings[Date And Time]),"/",DAY(Meetings[Date And Time]),"/",YEAR(Meetings[Date And Time]))
The BookedMeetings table is the meeting registration record table, which records the meeting records that the user wants to attend, as shown below:
In the table, the Name column is the user name of the registered meeting, the Meeting column represents the name of the meeting that the user will attend, and the DateTime column represents the time corresponding to the meeting to attend.
Business logic definition
There are two screens in the App, namely MeetingList and BookedMeetings, and there is also a form interface for adding meetings.
The main screen of MeetingList is displayed as follows:
The greeting and current date in the upper right corner of the main screen are dynamically displayed according to the current system time and date.
The user can filter according to the date to display the meetings of the specified date. If the date filter is not used, all meeting records will be displayed. The "Reset Query" button on the right of "Date Query" is used to clear the input in the date filter. The button to add a meeting will only be displayed when the current user's role is Admin.
The following meeting list uses different colors to distinguish whether the meeting has expired, and whether the meeting is registered is distinguished by whether the button of "Participate in the meeting" is displayed. The judgment logic is that if the meeting time in the list is before the current date, it will be displayed with a red background color, otherwise, it will be a green background color. The overdue meeting does not display the button to participate in the meeting and displays the word "Expired". For conferences that have been registered, the button to join the conference is no longer displayed, but the word "registered" is displayed.
Click each record in the meeting list area to display its meeting details, click again to collapse it, as shown below:
Users with the Admin role can post a meeting, click the Add Meeting button on the upper right, and it will jump to the form page, as follows:
The registered meetings are displayed in BookedMeetings on the second screen and can be cancelled, as follows:
data fill
Then start data filling.
step one
First, we need to create a new Workbook, modify the main screen display and add a Block, and then place three DataCells in it, named AppUser, Greeting and TodaysDate. The specific settings are as follows:
Set the initial value of the property of AppUser's DataCell as follows:
Set the initial value of the Greeting's DataCell attribute as follows:
The initial value of the DataCell attribute of TodaysDate is set as follows:
Step two
Then add a second Block, set its DISPLAY property to FALSE, and add a DataCell to it and set the variable named SelectedRow. The function of this DataCell is to save the value of the current row of the list, but the DataCell does not need to be displayed in the UI.
Step three
Add the third Block, and drag in a Date plug-in and a button in USER INPUTS, and modify the display text on the button:
Add ACTION to the button "Reset Query" and modify the variable value of Date INPUT to be empty. The function of this button is to clear the user's input in the date picker plug-in.
Step 4
Add a Column List plug-in and modify the data source filter in its properties. The expression is:
=IF($[Date]="",Meetings,FILTER(Meetings,"Meetings[Mdate]=%",CONCATENATE(MONTH($[Date]),"/",DAY($[Date]),"/",YEAR($[Date]))))
The function of this expression is: if the Date INPUT value is empty, the entire Meetings table will be used as the list data source; otherwise, the value of Data INPUT will be compared with the value of Mdate in the Meetings table, and the matched data row will be used as the list data source.
Step 5
Adjust the page layout and delete the content of the fields that do not need to be displayed. Add two DataCells to the first segment, set their initial values to "registered" and "unregistered" and a button respectively, and modify their display text to "participate" Meeting.
The visibility expression in the "registered" DataCell property is set to:
=FILTER(BookedMeetings,"BookedMeetings[Name]=% AND BookedMeetings[Meeting]=%",$[AppUser],$[Name column data])>0
Its function is to determine whether there is already a registration record of the current user for this meeting in the BookedMeetings table. If it exists, it will display:
The visibility expression in the "Expired" DataCell property is set to:
=DAYS(NOW(),$[Date And Time column data])>0
Its function is to determine the number of days between the current time and the date represented by the Date And Time column data field in the Meetings table. If the result is greater than 0, it means that the current meeting record has expired, then the content of this DataCell will display:
Modify the automation of ACTION in the properties of the "Meeting" button to add an Add Row operation to it. The function of its expression is to write the information about participating in the meeting into the BookedMeetings table.
step six
Insert a new segment above "meeting duration" in the list, and insert a DataCell to display the number of participants.
Set the initial value expression of DataCell as:
=IFERROR(FILTER(BookedMeetings,"BookedMeetings[Meeting]=%",$[Name column data]),0)
The function is to determine the number of the current meeting registered in the BookedMeetings table.
Step Seven
Add a form to provide users with the role of Admin with an entrance to publish a meeting. The page will generate a button and a form screen. Modify the button’s display text to "Add Meeting" and place it behind the "Reset Query" button on the main screen, and Set the visibility expression in the button properties as:
=FINDROW(Users,"Users[Name]=%",$[SYS_USER])[Role]="Admin"
Its function is to match the current system user with the user name in the Users table and obtain its role to determine whether it is Admin.
Set the visibility expression in the properties of the added conference button as:
=FINDROW(Users,"Users[Name]=%",$[SYS_USER])[Role]="Admin"
step eight
Create a second screen BookedMeetings, create a new Screen, and add a Column list plug-in to set its data source expression as:
=FILTER(BookedMeetings,"BookedMeetings[Name]=%",$[SYS_USER])
Its function is to retrieve and display the list of conferences that the current user has registered in the BookedMeetings table.
Adjust the display items in the list and add a button, modify its display text to "Cancel":
Modify the ACTIONS in the properties of the "Cancel" button to add an automation click event, which is used to delete the current row record in the BookedMeetings table.
At this point, the data filling part of the page is designed, and we then begin to adjust the visual layout.
Visual layout adjustment
step one
In the business logic definition chapter, it is mentioned that the background color should be used to distinguish whether each meeting record has expired. The following is the specific implementation.
On the main screen, select the segment where the meeting entry in the meeting list is located, set the condition style in DISPLAY in its properties, and display different colors according to the conditions that satisfy different expressions.
The expression calculates the difference in days between the current date and the date in the Date And Time column data in the Meetings table. If <=0, the meeting is on the same day or a future date, and if the result is >0, the meeting has been Expired. These two expressions set the background color to green and red respectively when the result is TRUE. The final display effect is as follows:
Step two
The detailed content of the meeting will be displayed and retracted in response to the click event of the meeting item. The automation expression is set in the ACTION of the meeting item properties on the main screen to assign the value of the hidden DataCell mentioned in the data filling section above. The function is Let it save the variable value of the current row (THISROW()), and the detailed content under the meeting entry will be judged whether to display according to whether the variable value is equal to THISROW().
step three
Next, set the visibility expression on each ContentBox in the detailed content list under the meeting entry.
Note: The visibility expression will determine whether the value of the SelectedRow DataCell is equal to THISROW(). If the condition is met, it will be displayed, so that when the meeting entry is clicked, the detailed content of the meeting entry will be determined according to whether its value is equal to THISROW(). Decide whether to display the effect.
At this point, the App design steps are all completed, and the user only needs to create three data tables and fill the users and their corresponding roles in the Users table. Each team member can register the meeting he wants to participate in and cancel the registered meeting. The relevant pages are shown as follows:
Summary of this article
According to the creation process of the conference subscription publishing system above, with the help of Amazon Honeycode, users can create their own client programs without any coding.
The user only needs to consider business logic and data sources. The highly customizable UI page and rich drag-and-drop plug-ins support incident response processing, allowing users to arrange and create their own client programs in the way they want. It can also build its own business terminal by integrating with Amazon Cloud Technology's services.
Introduction by the author of this article
Amazon Cloud Technology Professional Services Team Cloud Architecture Consultant
Responsible for cloud architecture consulting, infrastructure modernization and optimization for enterprise-level customers. He has many years of experience in operation and maintenance management in the field of infrastructure and containers, and has a deep understanding of DevOps, continuous delivery and cloud native service frameworks, and operation and maintenance automation.
END
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。