Midterm Project - Report Template
Midterm Project - Report Template
MIDTERM PROJECT
Report
Student Information
● Name: Dương Ngọc Quang Khiêm
● Student ID: 22125037
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
Basic layout 2 1
Click to change flight date, displaying a list of corresponding flights from the 5 0
departure and arrival cities
Transport - Filters
Basic layout 2 1
Click Done to return to the Transport Flights screen with flights that meet the 5 5
filter information
Displays the same layout as in the design with selected, booked, available 5 5
seats
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
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.