Application Design 1 - Project 3 : Lo-Fi App Design Prototype
18/11/2024 - 9/12/2024 ( Week 5 - Week 10 )
Ho Winnie / 0364866
Application Design 1 / Bachelor's of Design Honors In Creative Media
Project 3 : Lo-Fi App Design Prototype
1. Project 3 : Lo-Fi App Design Prototype
- Onboarding and Log In Screens
- Home Screen featuring the main function on the top , which is the bus booking function, followed by the real time bus updates than the news and annoucements.
- Bottom Navigation bar featuring "Home Page" , " My Ticket " and " My Profile " where the core functionalities of the application are split across these 3 main sections
- Bus Booking Pages - which include input of travel details , bus timing selection page , filter function , seat selection page with indicators , adding of passenger page , redeeming of TBS points and payment page
- Ticket page featuring "Upcoming" and "Past" tickets , each with viewable QR ticket.
- Profile page featuring FAQ which can provide any information help to users
After analyzing competitor apps such as Easybook, I observed that their onboarding process for new users is highly effective. It clearly introduces the app's core functionalities, providing users with a seamless and intuitive introduction. Inspired by this approach, I conducted online research to explore best practices and design principles for onboarding screens. This allowed me to better understand how to create engaging, informative, and user-friendly onboarding experiences that highlight key features and enhance user engagement from the start.
With my prior experience using Figma, I initially assumed that meeting the basic requirement of creating a clickable prototype would be a straightforward task. To push myself further, I decided to challenge my skills by incorporating advanced interactivity into the prototype. This included features like an interactive calendar, a seat selection page, and engaging loading screen animations.
To kick off the design process, I set the frame size to 898 x 350 pixels and established a layout grid with 4 columns, a 16px margin, and an 8px gutter. This structured approach provided a clear visual guideline, making it easier to organize and align design elements. The layout grid not only enhanced the overall aesthetics but also ensured consistency and precision throughout the interface.
| Fig 1.3 Layout Grids |
For iconography, I chose to utilize the "Iconify" plugin, which provides a vast collection of free, high-quality icons suitable for various design needs. While this resource was extremely helpful, I also wanted to incorporate a personal touch into the design.
The onboarding process consists of three dedicated pages that highlight the key functions of the TBS app. Users are given the flexibility to either skip the onboarding entirely and proceed directly to the login page or navigate through each onboarding screen sequentially. This approach ensures a user-friendly experience by accommodating both new users who need guidance and returning users who prefer to get started immediately.
| Fig 1.6 Onboarding Pages |
To maintain consistency in the spacing and alignment of buttons, I utilized Figma's auto-layout feature. This approach allowed for dynamic adjustments, ensuring uniform padding, spacing, and alignment across all buttons. By leveraging auto-layout, I was able to create a more responsive design that adapts seamlessly to changes, enhancing both the visual appeal and the user experience.
| Fig 1.7 Auto Layout of Buttons |
The login page provides users with multiple options for account access. Users can either input their registered email and password or connect their account via social media platforms for a quicker login experience. To enhance interactivity and usability, I designed components like "Email Tabs" and "Password Tabs" with multiple variants, such as selected and unselected states. This dynamic approach ensures visual feedback for user interactions, creating a more intuitive and user-friendly interface.
Since the login page extends beyond the standard screen height, I implemented a vertical scrolling effect to ensure a smooth and seamless user experience. To maintain navigation consistency, I fixed both the header and the bottom navigation bar in place, allowing users to access essential controls without interruption.
For interactive elements like "Active Tickets" and "Events & Announcements," I incorporated horizontal scrolling, enabling users to browse through content intuitively. To achieve this, I created a master frame that contains all the components and nested a smaller frame within it. This nested frame serves as the scrollable container, allowing for vertical scrolling of the entire page while maintaining fixed elements. By properly aligning and structuring the content within these frames, I ensured a clean, functional, and user-friendly interface.
| Fig 1.9 Framed contents to enable scrolling for homepage |
In addition to the main page design, I created reusable components for key interface elements to ensure design consistency and efficiency. These components include the bottom navigation bar, phone status bar, and bus status indicator.
The bottom navigation bar provides users with quick access to essential app sections, enhancing navigation and user flow. By turning it into a component, I can easily apply changes across all screens, ensuring consistency throughout the app.
The phone status bar at the top displays crucial system information like battery life, time, and signal strength, maintaining a familiar experience for users. Designing this as a component allows for easy updates and alignment with the overall app style.
The bus status indicator provides users with real-time updates on bus schedules and availability. By creating it as a component, I was able to ensure visual consistency and enable quick modifications if changes were needed.
These component-based designs contribute to a scalable, cohesive, and user-friendly interface while streamlining the development process.
The core functionalities of the app are centered around the bus booking experience, so I aimed to make it as interactive and user-friendly as possible using Figma. To achieve this, I designed an overlay interface where users can input their arrival and departure destinations.
To create a more immersive and realistic experience, I applied an overlay effect with the input form centered on the screen. The background is dimmed using a 50% opacity black overlay, mimicking the feel of a real mobile phone interface. This approach draws users' attention to the input fields while maintaining a clean and modern aesthetic.
By aligning the overlay to the center and ensuring smooth transitions, I enhanced the user experience, making it feel natural and intuitive. This design choice not only prioritizes usability but also creates a visually appealing and engaging booking process.
| Fig 2.1 Enter Arrival & Departure |
The next key feature in the bus booking experience is the date selection. To ensure an interactive and visually appealing design, I took the initiative to study how to create an interactive calendar in Figma. I referred to a YouTube tutorial, which provided valuable insights on designing dynamic calendar components with multiple states.
The calendar includes three interactive states for each date:
- Default State – The standard appearance of a date when it is not interacted with.
- Hover State – A visual change that occurs when a user hovers over a date, signaling interactivity.
- Selected State – The appearance of a date once it is chosen, making it visually distinct from unselected dates.
To streamline the design process, I created a component with all three states. This allowed for easy reuse and updates throughout the app. I then placed the date selection into a vertical layout that fits seamlessly into the seat selection flow. This logical progression from selecting the date to choosing a seat ensures a smooth and intuitive user experience.
By following the tutorial, I gained a better understanding of Figma's interactive features, and I successfully implemented an engaging, interactive calendar for the TBS app.
Creating an interactive calendar from scratch was a rewarding experience, as it allowed me to deepen my understanding of Figma's interactive components. After designing the calendar with default, hover, and selected states, I placed it into a properly structured frame to ensure seamless alignment and responsiveness within the app's layout.
Once the frame was set up, I conducted thorough user testing on the calendar's functionality. This involved interacting with the different states to ensure smooth transitions and responsiveness. The testing process helped me identify and resolve any inconsistencies, ensuring that users would have a fluid and intuitive experience when selecting dates.
The next step in the booking process is the seat selection page, where I applied a similar approach to the one used for the interactive calendar. By leveraging the same interactive components with default, hover, and selected states, I ensured consistency in user experience and visual design.
To tailor it for the seat selection process, I modified the text details inside each component to reflect the seat numbers instead of calendar dates. This approach allowed for a quicker and more efficient design process, as I could reuse and customize existing components rather than starting from scratch.
The interactive states make it clear to users which seats are available, hovered over, or selected. This design strategy enhances the user experience, providing visual feedback for user actions while maintaining a clean and intuitive layout. By reusing and customizing components, I ensured a consistent design language throughout the app, leading to a more cohesive and user-friendly interface.
| Fig 2.4 Seat Selection Page |
To maintain a clean and organized layout, I used Figma's auto-layout feature to structure the schedule cards. Each card is spaced 22px apart, ensuring consistent alignment and clear separation between individual bus timing options. This layout makes it easy for users to scan the list and select their preferred schedule.
For the Add Passengers and Travel Insurance section, I adopted a click-by-click selection process to create a simple, interactive experience for users. This design allows users to easily input key details for each traveler while also exploring the benefits of travel insurance.
The popup contains key information such as:
- The number of points being redeemed
- The resulting discount on the bus ticket
- A confirmation button to finalize the redemption process
This design ensures that users can easily track progress, redeem points, and receive clear feedback on their rewards. The centered popup and dimmed background help focus the user's attention on the action, creating a smooth, user-friendly experience.
![]() |
| Fig 2.8 Claiming E-Points Screens |
Payment & Loading Screens :
To enhance the user experience, I incorporated micro-interactions by adding a loading animation during the payment processing stage. To achieve this, I turned to YouTube tutorials to learn how to create engaging, smooth animations directly within Figma.
The loading animation adds a sense of responsiveness and reassurance, signaling to users that their payment is being processed. This small but impactful design choice reduces user anxiety during wait times and provides a more polished, professional feel to the app.
- Style & Movement: I designed a simple, modern loading animation, often using rotating circles, progress bars, or bouncing dots — common visual cues that users instantly recognize as "loading" indicators.
- Timing & Duration: The animation is set to loop for a few seconds to simulate real-world payment processing times.
- Feedback & Clarity: Clear, simple text like "Loading Payment..." accompanies the animation to provide context and clarity to the user.
By adding this micro-interaction, I created a more engaging, polished, and professional experience. It reassures users that their payment is in progress and improves the overall perception of the app's speed and reliability.
![]() |
| Fig 2.9 Payment Processing Screens |
Profile & FAQ Pages :
Next, I focused on designing the Profile Page, which serves as a centralized hub for user settings and support. This page is crucial for user experience, as it provides access to essential features like FAQ & Support.
1. FAQ & Support Section
- The FAQ & Support section allows users to quickly find answers to common questions.
- A search bar is prominently displayed at the top, enabling users to search for specific queries instead of scrolling through a list.
- I implemented an accordion-style design for the FAQ, where each question has an arrow drop-down toggle. When users click on the arrow, the answer is revealed below the question. This design keeps the page clean and uncluttered while still allowing access to in-depth information.
- The layout of the Profile Page is simple and intuitive, ensuring users can easily navigate to important features.
- Other profile-related elements, such as account settings, personal information, and log-out options, are neatly grouped for easy access.
- I made use of interactive components, such as clickable FAQ questions and a responsive search bar.
- The drop-down effect for FAQ answers adds an element of interactivity and engagement, making the user experience feel dynamic and modern.
By structuring the Profile Page in this way, users can quickly find the information they need without feeling overwhelmed. The combination of a search bar, drop-down FAQ, and accessible support options ensures that users feel supported and in control of their experience.
| Fig 3.1 My Profile Pages |
Next, I focused on designing the Ticket Pages, ensuring a clear and user-friendly experience for managing both upcoming and past tickets. To prevent confusion, I implemented a tabbed layout that distinctly separates the two categories. This organization allows users to quickly find and review their travel history or check their upcoming trips.
1. Tabbed Navigation (Upcoming & Past Tickets)
- Users can seamlessly switch between Upcoming Tickets and Past Tickets using a simple tab system at the top of the page.
- Upcoming Tickets display current and future bookings, enabling users to stay updated on their next trip.
- Past Tickets show previous trips for reference or record-keeping purposes, enhancing user transparency and accountability.
- Each ticket is displayed as a card-style component that shows key details such as:
- Departure & Arrival Locations
- Date & Time
- Seat Number
- Gate Number
- Booking ID/Reference Number
- The layout is clean and well-structured, making it easy for users to scan for relevant information.
3. QR Code for Tickets
- For upcoming tickets, users can view and download a QR ticket directly from the page.
- This feature allows for easy check-ins and boarding at the bus terminal. Users can save the QR code to their device or present it directly from the app.
- The download button is prominently displayed to ensure accessibility and convenience.
4. Interactive Elements
- Clickable buttons, such as "View Ticket" or "Download QR", provide a seamless and interactive user experience.
- I also considered accessibility by ensuring that interactive buttons have clear labels and adequate spacing to reduce accidental clicks.
By structuring the Ticket Pages with a tabbed layout and an interactive QR ticket system, I created an intuitive, easy-to-use platform for users to manage their bookings.
![]() |
| Fig 3.2 My Ticket Pages |
Finally, I cleaned up the Figma interface and organized all the screens to create a more structured, professional, and user-friendly file. This final step ensures that the design is easy to navigate, collaborate on, and present to users during usability testing.
![]() |
| Fig 3.3 Figma File - Before Cleaning Up |
2.3 Usability Testing
Starting from the home screen, navigate and find the booking bus ticket function. After that, input your travel destinations, select the date "15th February 2024" and key in economy seat class.
You will be directed to the next page which shows the bus timings available. Next, locate the filter option and input the filters as you wish.
Select the first "Sri Maju" bus ticket and proceed to seat selection "3A" . Proceed to checkout page and claim the TBS e-points before making payment.
Once you've completed the payment, you can easily check and download the virtual QR code ticket
| Fig 3.5 Newly added wallet section |
Following Mr. Zeon's feedback, a black header has been added to the TBS Wallet to visually distinguish the title from the rest of the interface. The header prominently displays a bold, centered title such as "TBS Wallet" in contrasting white text for clear readability. This header not only enhances the visual hierarchy but also provides a polished, professional appearance to the wallet section. It seamlessly integrates with the wallet's existing features, ensuring a cohesive and intuitive user experience across all devices.
![]() |
| Fig 3.6 Final wallet and homepage section |
Secondly, I enhanced the calendar date selection section by incorporating the feature to display the cheapest prices available for each date. This addition allows users to quickly identify the most budget-friendly travel options at a glance, improving decision-making and overall usability. Each date in the calendar now dynamically highlights its respective lowest price, ensuring a seamless and user-centric booking experience.
| Fig 3.7 Changes done to calender page |
Thirdly, I enhanced the FAQ & Support section by introducing a Report Issue button. This feature allows users to easily report problems or provide feedback directly from the support page. The button is prominently placed for accessibility and initiates a streamlined process for users to describe their issues, ensuring quick resolution and improved user satisfaction.
| Fig 3.8 Final FAQ page |
Fourthly, I improved the filtered bus section page by ensuring the displayed results dynamically update based on the filters selected by users. This enhancement allows users to view buses that match their specific preferences, such as departure time, price range, or amenities, providing a more personalized and efficient search experience. The filter functionality is responsive and intuitive, ensuring a seamless interaction that helps users find their ideal travel options quickly.
![]() |
| Fig 3.9 Enhanced filter page section |
Lastly, I updated the redeem points section to include a dynamic calculation that shows users how much money they can claim based on the points they choose to redeem. This improvement provides greater transparency and clarity, allowing users to make more informed decisions about their redemptions, enhancing their overall experience with the reward system.
| Fig 4.0 Final redeem points section |
Final Outcome :
Project 3 Low Fidelity Prototype
Youtube Link : https://youtu.be/zjVLCvmYc9Q
Click HERE to view the final low fidelity Figma wireframe
2. Feedback
3. Reflections






Comments
Post a Comment