Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

assignment

Latest
Compare
Choose a tag to compare
@Jonas-Lieske Jonas-Lieske released this 12 Nov 18:35
· 8 commits to main since this release

πŸš€ Overview

This Flutter app is designed for the Enterprise Software Development (ESD) workshop to introduce the basics of Flutter and Dart programming. The app, titled "My Favorite Things", allows users to create a list of their favorite items, view details, and add new items. It demonstrates fundamental Flutter concepts like navigation, state management, and UI design.

πŸ› οΈ Task

For the interactive part of the workshop you can clone this repo on Flutlab.io and try to understand or even extend the functionalities. This is your playground to be creative.
The app is designed for ease of understanding and feature richness, rather than strict adherence to best practices.

πŸ’‘ Ideas

Feel free to explore any additions or modifications you desire. If you're looking for inspiration, here are some suggestions:

  • Shopping List Transformation: πŸ›’ Convert the app into a shopping list. Implement features like item deletion, marking items as purchased, and sorting by priority or categories.
  • Personal Diary: πŸ“” Turn it into a personal diary or journal app. Introduce features to add entries with dates, edit entries, and perhaps include mood icons or weather.
  • Task Manager: πŸ“‹ Morph it into a task management app. Add functionalities for setting deadlines, reminders, categorizing tasks, and marking them as complete.
  • Photo Album: πŸ“Έ Convert the app into a photo album. Allow users to add photos, captions, and organize them into albums or by dates.
  • Recipe Book: 🍳 Transform it into a recipe book where users can add, view, and categorize recipes. Include features for ingredients, cooking steps, and preparation time.

πŸ“– Explanation

🌈 Functionalities

  • List Display: πŸ“ The home screen shows a list of favorite items.
  • Navigation: 🚦 Users can navigate between the home screen, details screen, and add item screen.
  • Add New Item: βž• Users can add new items to the list which will be displayed on the home screen.
  • View Details: πŸ” Users can view more details about an item by tapping on it.

πŸ“ File Structure

The project is organized into several directories for clarity and maintainability:

lib/ 
β”œβ”€β”€ main.dart                           # The entry point of the application.
β”œβ”€β”€ models/
β”‚   └── favorite_item.dart              # Defines the FavoriteItem class.
β”œβ”€β”€ screens/
β”‚   β”œβ”€β”€ home_screen.dart                # Home page, displays the list of favorite items.
β”‚   β”œβ”€β”€ details_screen.dart             # Page showing detailed info about a selected item.
β”‚   └── add_item_screen.dart            # Page for adding a new favorite item.
└── widgets/
    └── favorite_item_card.dart         # Reusable widget for displaying an item in the list.

πŸ”§ Code Structure

β”œβ”€β”€ main.dart
β”‚   ▢️ Sets up the MaterialApp
β”‚   ▢️ Defines routes
β”‚   ▢️ Applies the app theme
β”‚
β”œβ”€β”€ models/
β”‚   └── favorite_item.dart
β”‚       ▢️ Contains the model for favorite items
β”‚
β”œβ”€β”€ screens/
β”‚   β”œβ”€β”€ home_screen.dart
β”‚   β”‚   ▢️ Displays a list of items using ListView.builder
β”‚   β”‚   ▢️ Implements navigation to the details and add item screens
β”‚   β”‚
β”‚   β”œβ”€β”€ details_screen.dart
β”‚   β”‚   ▢️ Shows details of a selected item, passed through navigation
β”‚   β”‚
β”‚   └── add_item_screen.dart
β”‚       ▢️ Contains a form to add new items and passes them back to the home screen
β”‚
└── widgets/
    └── favorite_item_card.dart
        ▢️ Custom widget to display each item in a card format