0% found this document useful (0 votes)
19 views16 pages

Midterm Project - Report Template

Uploaded by

khiemduong0938
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views16 pages

Midterm Project - Report Template

Uploaded by

khiemduong0938
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

CS426 - Mobile Device Application Development

MIDTERM PROJECT
Report

Student Information
● Name: Dương Ngọc Quang Khiêm
● Student ID: 22125037

Project Self Assessment


● Self-assess your score in the evaluation column
● Replace the app design images with your app screenshots
Home

Basic layout 2 2

Create a search bar that allows users to input text and click a search button to 2 2
trigger an action. (such as displaying a dialog with the search text.)

Bottom navigation 5 5

Booking services 5 5

When clicking on one of the booking services in the list -> switch to the 2 2
corresponding booking selection screen.Currently only supports Transport
Booking.
Booking

The layout features 4 booking services in a card view. You can find all the card 5 5
view resources in Figma. Currently only supports Transport Booking

When clicking on one of the booking services in the list -> switch to the 2 2
corresponding booking selection screen.
Transport Booking

Basic layout 2 2
Choose the departure city and arrival city. Allow swap the departure and arrival 5 5
city when hit the swap button.

Allows users to choose the date of departure and return flights. The return flight 5 5
date must be after the departure date

Design and implement an friendly UI that allow users to input the number of 5 5
Passenger & Luggage

Allows users to choose a transportation method. Currently only supports flight 2 2


selection

Click Search to switch to the Transport Flights screen 2 2


Transport Flights

Basic layout 2 1

Click to change flight date, displaying a list of corresponding flights from the 5 0
departure and arrival cities

Display detailed flight list information 5 5

Click on filter icon, switch to Filters screen 2 2


Click on flight details, switch to Select Seats screen 2 2

Transport - Filters

Basic layout 2 1

Allows users to choose departure and arrival times 3 3


Allows users to choose the amount to filter by text input field or slider 5 5

Users can choose specific information fields for sorting. 2 2

Click Reset to reset the default filter information 2 2

Click Done to return to the Transport Flights screen with flights that meet the 5 5
filter information

Transport - Select Seats


Basic layout 2 1

Allows you to select seats for each person in the list 5 5

Displays the same layout as in the design with selected, booked, available 5 5
seats

When selecting a seat, the corresponding selected seat information is 5 5


displayed at the bottom of the screen

Click continue to move to the Boarding pass screen 2 2

Transport - Boarding Pass

Basic layout 5 2.5


Design a user interface that visually represents tickets based on the number of 5 5
people and the selected seats.
Account

Basic layout 2 2
Click on personal information to switch to the personal information screen, 5 5
other cases notify the user that this function will be developed

Account - Personal Information


Basic layout 2 2

Allow user to update their profile picture 3 3

Allow user to edit and update their information 5 5

General application requirements


Manage application lifecycle, application state 20 20
Initialize data for the application 10 10
New features/requirements added by yourself 15 0
Total Min(150, Total score of all requirements above) 150 144,5

Additional Criteria Source code + report + demo lean and clear [-15,+15] +15
Your score: Min(10,(Total + Additional Criteria) / 15) 10

Insights
● Content of New Features: Briefly describe the functionality and purpose of each new feature (if any).
● Techniques Applied: Discuss the specific technical approaches used to implement the application features. Did
you encounter any challenges or require new skills?
In designing the Main Activity, we used Fragments to improve how the app handles navigation between tabs like
home, booking, notifications, and account. This approach made the app more responsive by avoiding unnecessary
reloads of the menu bar and page content, ensuring a smoother user experience. For example, users can
seamlessly access the transport booking feature from both the home and booking tabs without disruption. Similarly,
managing user profiles and editing personal information within the account tab was streamlined within the same
activity setup.

The Flights Activity effectively manages the display of available flights. We optimized user interaction by using a
separate activity for flight filtering in the Filter Activity. This allows users to refine flight options based on date, time,
and price preferences, enhancing the booking process. Each flight listing uses a Flight Adapter to improve
performance by recycling view elements and reducing memory usage.

When users select a flight, they move to the Seat Activity, where 'booked_seats.txt' is used to display available
seats and manage seat selection. Reusing the Flight Adapter here ensured consistent user interface design and
simplified development. The Ticket Activity consolidates booking details into a final ticket format, allowing users to
review and confirm their selections before proceeding. Smooth navigation back to ticket creation ensures a user-
friendly booking experience.
• Implementation Experience: Share your personal experience with implementing this project. What aspects did
you find most enjoyable or challenging? What did you learn from the process?
Implementing this project presented diverse challenges that tested our technical skills and problem-solving abilities.
Designing layouts that are intuitive and visually appealing across various device sizes required careful attention to
detail and frequent revisions. Managing data flow and ensuring consistency between activities, especially during
complex user interactions and background data processes, posed significant challenges.

Adapter usage was crucial in optimizing app performance without sacrificing functionality. Implementing features
like smooth image uploading, including handling permissions and file management, demanded rigorous testing and
refinement. Time constraints added pressure, necessitating efficient bug identification and resolution strategies to
meet project deadlines. Dealing with compile-time errors and runtime crashes required systematic debugging and
error handling approaches.

Learning Experience:
This project has been a transformative learning journey, marked by technical growth and personal achievements.
Collaborating with peers and leveraging resources such as ChatGPT, Stack Overflow, and Android developer
forums created a supportive learning environment. The iterative process of designing, implementing, and refining
features not only enhanced our technical skills but also deepened our understanding of best practices in software
development.

Overcoming challenges, such as resolving persistent bugs and optimizing performance bottlenecks, underscored
the importance of persistence and innovation in app development. Seeing the app function seamlessly and deliver
a superior user experience validated our efforts and emphasized the significance of designing apps with users in
mind.

Key Learnings:
Reflecting on this project, I have gained valuable insights into various aspects of software development. Mastering
Java and XML languages enabled me to implement robust and scalable solutions, while honing research skills
through online resources facilitated quick problem resolution. Effective communication with ChatGPT and
community forums improved my ability to articulate technical questions and leverage collective knowledge
effectively.
Navigating Adapter patterns and data management strategies equipped me with versatile tools for future projects.
The experience of identifying and fixing bugs in real-time scenarios strengthened my troubleshooting skills and
instilled confidence in handling unforeseen challenges. Above all, this project reinforced the importance of
adaptability and perseverance in delivering impactful software solutions.

Navigating the intricacies of Adapter patterns and data management strategies has equipped me with versatile
tools for future projects. The experience of identifying and rectifying bugs in real-time scenarios has fortified my
troubleshooting skills and instilled confidence in handling unforeseen challenges. Above all, this project reinforced
the importance of adaptability and resilience in delivering impactful software solutions.

References
You should list all source codes and/or references that you use in your project in this section.
Any code fragments or libraries that are not yours MUST be explicitly declared in this section.
If you fail/forget to declare those “inherited” resources, you will be considered “cheating”!
All the source code is created by my self with the suggestions and help with bug fixing from chat GPT.
My friends suggest me with the Stack Overflow and Android Developers Forum that might have the answer that I’m
looking for.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy