Giter Club home page Giter Club logo

engelsburg-planer's Introduction

Engelsburg-Planer

Successor of the Engelsburg-App. Integrates a lot of new features like notifications, timetable, tasks, grades, etc.

engelsburg-planer's People

Contributors

paexception avatar

Stargazers

 avatar

Watchers

 avatar

engelsburg-planer's Issues

Update theme page to be more user friendly

Describe the solution you'd like

  • Dynamic themeMode selection. E.g. three rounded rects with surface colors of theme which are selectable.
  • Primary and secondary color picker not so many options, e.g. present only 4-5 presets.

Add custom subjects

Describe the solution you'd like
Add an option to add custom subjects

  • pick base subject and the create a custom one

maybe there could be conflicts with names, e.g. that you can rename current subjects. What about created subjects regarding that matter?

Add teacher names

Add teacher names to substitutes and timetable in the subtitle of the listtile.
Fetch teachers on start or updateSubstituteKey and save.

Introduce tests and workflows to run them

https://docs.flutter.dev/testing/overview

Unit tests

Widget tests

Integration tests

other

mock http and api requests for integration testing (https://docs.flutter.dev/cookbook/testing/unit/mocking)

[BUG] TimetablePage - CalendarWeek

Describe the bug
The calenderWeek and dates of the week do not update sometimes.

To Reproduce
Steps to reproduce the behavior:

  1. Click on date and select a date from a different week
  2. Actual timetable gets rebuild, calendarWeek and date not

Expected behavior
CalendarWeek and dates should update to the corresponding timetable which is presented.

[BUG] Fatal Errors on network connectivity issues

Describe the bug
This error occurs in the newest version (1.0.1) when the app does not have network connectivity and the image stream is trying to load the image from the internet. My guess is that the image stream is trying to connect but then the app is suspended resulting in the error.

There's also an error thrown when the http client of the app for the api calls is unexpectedly suspended, probably also when the app is suspended. That error can be reduced with an additional dependency (cupertino_http), but not eliminated. We need to make sure that when the app is suspended the http client is closed or at least catch all the errors.

To Reproduce
More or less unknown.

Expected behavior
That this error is not thrown or gracefully catched.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):
Does appear on both iOS and Android, regardless of the version or smartphone.

Stacktraces

iOS
HttpException: Bad file descriptor, uri = https://engelsburg.smmp.de/files/2024/03/23_Stellenausschreibung_FSJ.jpg. Error thrown resolving a single-frame image stream.

Fatal Exception: FlutterError
0  ???                            0x0 FirebaseCrashlytics.recordError + 119 (firebase_crashlytics.dart:119)
1  ???                            0x0 FirebaseCrashlytics.recordFlutterError + 145 (firebase_crashlytics.dart:145)
2  ???                            0x0 FirebaseCrashlytics.recordFlutterFatalError + 158 (firebase_crashlytics.dart:158)
3  ???                            0x0 FlutterError.reportError + 1181 (assertions.dart:1181)
4  ???                            0x0 ImageStreamCompleter.reportError + 798 (image_stream.dart:798)
5  ???                            0x0 new OneFrameImageStreamCompleter.<fn> + 859 (image_stream.dart:859)

Android
HttpException: Software caused connection abort, uri = https://engelsburg.smmp.de/files/2024/03/23_Schaefer_Hessenmeisterschaft_03_01.jpg. Error thrown resolving a single-frame image stream.

Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: HttpException: Software caused connection abort, uri = https://engelsburg.smmp.de/files/2024/03/23_Schaefer_Hessenmeisterschaft_03_01.jpg. Error thrown resolving a single-frame image stream.
       at FirebaseCrashlytics.recordError(firebase_crashlytics.dart:119)
       at FirebaseCrashlytics.recordFlutterError(firebase_crashlytics.dart:145)
       at FirebaseCrashlytics.recordFlutterFatalError(firebase_crashlytics.dart:158)
       at FlutterError.reportError(assertions.dart:1181)
       at ImageStreamCompleter.reportError(image_stream.dart:798)
       at new OneFrameImageStreamCompleter.<fn>(image_stream.dart:859)

Add task filters

Add some filters for tasks.

  • by subject
  • list by date asc/desc
  • done/undone

Custom order of pages

Add a feature to enable or disable, and sort all available pages. Keep presets (for students, teachers and other) but make them customizable.

I guess this would be blocked by #11

[BUG] SubstituteSettings - Same class multiple times

Describe the bug
In the substituteSettings the same class can get entered multiple times.

To Reproduce
Steps to reproduce the behavior:
Try entering the same class to times.

Expected behavior
The class should only appear one time, the second time the input should be disposed.

Add custom logger implementation

Add a custom logger implementation to allow debugging specific parts of the app in debug mode.
In release mode the logger could redirect all messages that have a specific level to crashlytics.

Remove image of article_extended

Remove the title image because if theres a title image it will be most likely in the content (at the top) itself. Especially for wider screen it will be confusing seeing the same image 3 times.

Rewrite routing

Rewrite some parts of the navigation:

  • Every page needs to have a path
  • Introduce compact widgets for larger layout that will appear as a dialog or sidesheet
  • Strictly use templates to build common parts (e.g. substitute_extended, timetable_extended, task_extended, ....)
  • If needed for a clear structure introduce shellRoutes to the homepage instead of creating streams to communicate

Group substitutes

Group substitutes if they are split and there is no lesson in between. Only possible if they are identical but the lesson.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.