Skip to main content

Assignment 9: Integrating Django Web Service with Flutter Application

Platform-Based Programming (CSGE602022) — organized by the Faculty of Computer Science, University of Indonesia, Odd Semester 2023/2024


Assignment Description​

In this assignment, you will integrate the Django services you have created in previous assignments with the Flutter application you created earlier.

The checklist for this assignment is as follows:

  • Ensure the deployment of your Django project is running smoothly.
  • Create a login page in the Flutter project.
  • Integrate the Django authentication system with the Flutter project.
  • Create a custom model according to your Django application project.
  • Create a page containing a list of all items available at the JSON endpoint in Django that you have deployed.
    • Display the name, amount, and description of each item on this page.
  • Create a detail page for each item listed on the Item list page.
    • This page can be accessed by tapping on any item on the Item list page.
    • Display all attributes of your item model on this page.
    • Add a button to return to the item list page.
  • Answer the following questions in the README.md in the root folder (please modify the README.md you previously created; add subheadings for each assignment):
    • Can we retrieve JSON data without creating a model first? If yes, is it better than creating a model before retrieving JSON data?
    • Explain the function of CookieRequest and explain why a CookieRequest instance needs to be shared with all components in a Flutter application.
    • Explain the mechanism of fetching data from JSON until it can be displayed on Flutter.
    • Explain the authentication mechanism from entering account data on Flutter to Django authentication completion and the display of menus on Flutter.
    • List all the widgets you used in this assignment and explain their respective functions.
    • Explain how you implement the checklist above step by step! (not just following the tutorial).
  • Perform add-commit-push to GitHub.

Deadline​

The deadline for Assignment 9 is Wednesday, 22th November 2023, at 12:00 PM.

The teaching assistants will check the last commit of the lab assignment repository, so you do not need to submit the repository link separately.

Bonus​

You will get a bonus score in this assignment if you implement the following features.

  • Implement an account registration feature in the Flutter application.
  • Filter the item list page by only displaying items associated with the logged-in user.