Application Design II Final Task
Melvin Yung Khun Yew | 0357241 | Bachelor of Design (Hons) in Creative Media
MMD 60204 | Application Design II
Week 12 — Week 15
Task 4: Final Project - Completed App
These are the jump links to each part of this portfolio
Instructions
Mr Razif Mohammed, my section lecturer for the Information Design module for this short semester, gives us a heads-up on the upcoming tasks and exercises.
Description
"Students will synthesise the knowledge gained in tasks 1, ,2 and 3 for application in task 4. Students will create and integrate visual assets and refine the prototype into a complete working and functional product experience."
Requirements
1. Flutterflow app building
Work Process
New Feature Addition
Loyalty Rewards Page Design in Figma |
For a start, I began to plan and create the component required for the loyalty reward page, where the users can redeem various vouchers ready to be used using the point system that can be earned through transactions with partnered merchants.
Pages Hierarchy in Flutterflow |
First things first, the main page of the loyalty reward section, where the users can check their point balance, the available vouchers to be redeemed, as well as the section to view the claimed vouchers.
Loyalty Rewards |
I also include a button to let the users check how the point system works in the loyalty rewards feature, which will show up a dialog box using the component and utilizing the parameters to make this possible.
For the voucher grid carousel, I followed what I've learned from Mr Razif during the tutorial class and set up the voucher list as well as the inventory (purchased voucher). Using the grid list, I positioned the list on the screen to centre, and added tap actions on the voucher container that have reference parameters to the Firebase database on the details of the vouchers, so the users can check on each voucher's details on the grid.
Firebase Database for different DataType |
Voucher Details Page
Voucher Details |
But ultimately, what's important is the redeem button positioned at the bottom of the screen, where it will check the voucher price from the Database. By using the conditional value, I made it so that the redeem button will be disabled upon the are insufficient points for the price of the vouchers.
Button disable conditional value |
The text color of the current points will change between green and red to show the claimability of the vouchers. When the user's point is less than the voucher price, it will change to red color and turn green if the point is more than the required voucher price.
Text color conditional value |
If the users claim the vouchers, the redemption success visual will be shown to provide immediate feedback to the users that they have successfully claimed the vouchers. Then, the users will be directed to the voucher page, where they can directly use the voucher immediately by showing the QR code.
Successful redemption |
Use the voucher with the QR code |
Users can also review the vouchers that they have claimed in the My Voucher section on the tab bar, in case they don't use the voucher now and save it for future use.
Viewing claimed vouchers |
Functional Reward Points System
To make this work, I use the database to record the payment amount and save that amount, and transfer it from a double data type to an integer type.
Payment Database |
Functional Wallet Balance
Backend Call Update Document for money balance on Top Up page |
Backend Call Update Document for balance and points on Payment page |
Final Minor Touch Up
Conditional Builder for the visibility icon |
Conditional Value on the txtBalance on the homepage |
Submission
- Adjust screen dimensions to 440 x 956 px or larger (mobile phone size) for an optimal viewing experience.
- You may need to use the inspect mode in Google to scale the screen size, as the responsive UI for tablet and desktop views is disabled, if Flutterflow's Canvaskit isn't working.
Inspect mode to adjust screen dimensions |
Flutterflow Project File
Editor access has been granted to Mr Razif, my lecturer.
My reflections
Wrapping up the Application Design II module has been an eye-opener in transforming visual concepts into working, functional applications. Unlike the previous semester where the focus was on simulating app interfaces, this module pushed me to go beyond the visuals and make every feature work like a real product—especially when integrating with databases and building conditional interactions in Flutterflow.
One of the recurring challenges was linking data correctly from the CMS to ensure that interactions like voucher redemptions worked smoothly. While not overly complex, it consistently tested how well I understood the relationship between frontend components and backend logic. Experimenting with conditional logic—such as toggling the visibility of the account balance—gave me hands-on experience in making the UI feel dynamic and responsive to user inputs.
More importantly, I found myself shifting my mindset from simply designing screens to thinking more deeply about the overall user experience. I became more attentive to details and how users would actually interact with the app. Creating a system where the balance and reward points update correctly after transactions made me appreciate the importance of simulating real-world behavior as accurately as possible.
Throughout the process, I also gained better problem-solving skills, especially when navigating bugs or limitations within Flutterflow. It wasn't always straightforward, but each obstacle helped me think more like a developer—adapting, rethinking, and improving.
If I had more time, I’d definitely want to expand the interactivity across more pages, especially in areas like the profile section. Features like PIN and password changes, bank card integration, or even biometric verification are exciting areas I’d love to explore. I’m also curious about improving responsiveness across various screen sizes—something that would really polish the app’s usability.
Overall, Application Design II gave me a much deeper appreciation for the full app-building process—beyond the UI into real functionality. It’s been a challenging yet rewarding step forward in my journey as a designer and aspiring developer.
Comments
Post a Comment