Git Product home page Git Product logo

oneappflutter's Introduction

One App Flutter

The Official HackRU Flutter App

Feel free to show some ❤️ and ⭐ the repo to support the project.

GitHub closed issues GitHub closed pull requests Github Last Commit Top Language Flutter SDK GitHub contributors GitHub

Description

What is the purpose of this project?

A cross-platform mobile application for hackers, organizers, mentors, and sponsors at the HackRU. HackRU is a 24-hour hackathon at Rutgers University. Hackers would be able to get announcements, a QR code for checking, food, t-shirts, as well as see the schedule and map for the hackathon. Organizers & Volunteers would be able to scan hacker's qr code for check-in, food, t-shirts, etc. In backend, we utilize qr scanning data for analytics that can be used after or even during the hackathon. Any more ideas to expand this project are always welcome.

Inspiration

How did this project come to be?

We had started using an inhouse hybrid mobile application to keep track of analytics to get a better idea of how certain aspects of the hackathon were running such as food consumption and optimization for checkin. This project expanded into a public native mobile application so hackers had easier access to their QR code as well as organizers with their scanners. Additional information of the hackathon were incorporated so that everyone would be able to stay up to date on events that are happeneing wherever they may be in the venue.

Style Guide

Most of the recommended lints directly implement the guidelines set out in Effective Dart. In a few cases the lints are stricter than the style guide for the sake of consistency.

List of Linter Rules

linter:
  rules:
    - always_declare_return_types
    - always_require_non_null_named_parameters
    - annotate_overrides
    - avoid_empty_else
    - avoid_init_to_null
    - avoid_null_checks_in_equality_operators
    - avoid_relative_lib_imports
    - avoid_return_types_on_setters
    - avoid_shadowing_type_parameters
    - avoid_types_as_parameter_names
    - camel_case_extensions
    - curly_braces_in_flow_control_structures
    - empty_catches
    - empty_constructor_bodies
    - library_names
    - library_prefixes
    - no_duplicate_case_values
    - null_closures
    - omit_local_variable_types
    - prefer_adjacent_string_concatenation
    - prefer_collection_literals
    - prefer_conditional_assignment
    - prefer_contains
    - prefer_equal_for_default_values
    - prefer_final_fields
    - prefer_for_elements_to_map_fromIterable
    - prefer_generic_function_type_aliases
    - prefer_if_null_operators
    - prefer_is_empty
    - prefer_is_not_empty
    - prefer_iterable_whereType
    - prefer_single_quotes
    - prefer_spread_collections
    - recursive_getters
    - slash_for_doc_comments
    - type_init_formals
    - unawaited_futures
    - unnecessary_const
    - unnecessary_new
    - unnecessary_null_in_if_null_operators
    - unnecessary_this
    - unrelated_type_equality_checks
    - use_function_type_syntax_for_parameters
    - use_rethrow_when_possible
    - valid_regexps

Enable Dartfmt: (standard Dart formatter)

$ pub global activate dart_style

$ dartfmt <file_name>.dart (for a specific file)

Installation Guide

First, install Flutter and Dart on your machine by following these guidelines: Get Started

  1. git clone https://github.com/HackRU/OneAppFlutter.git
  2. cd OneAppFlutter (find OneAppFlutter directory on your machine)
  3. flutter doctor (make sure everything is installed correctly)
  4. flutter pub get (it's like npm install)
  5. flutter run (it's like npm start)

Want to Contribute?: [Only Open to Rutgers University Students]

  • Creat a new git branch <name-branch> + git commit -am "new updates" + git push origin <name-branch> and then make a pull request.
  • Make sure you follow Style Guides as mentioned above
  • Contributors should also follow Git Style Guide

To learn about Flutter App Development:

Running Backend Tests (HackRU LCS)

  1. also have command line dart installed
  2. setup test users and use the test endpoint in hackru-service
  3. export LCS_USER="<username>" for LCS_USER, LCS_PASSWORD, LCS_USER2, LCS_PASSWORD2
  • lcs user should have the director role
  1. cd lib && dart test.dart

For Users

  • For Android: Search for HackRU app
  • For iOS: Search for HackRU Official app

Follow Us On

oneappflutter's People

Contributors

bhivam avatar dependabot[bot] avatar dhruvilp avatar jscheire avatar man1han avatar mjrb avatar pjprogrammer avatar seantaylorlane avatar shambhavir avatar srnazng avatar tinysheep007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oneappflutter's Issues

Null-safety checks for the entire app

Describe the bug
Currently, the code base doesn't check null errors in utilizing dart null-safety guidelines

Expected behavior
If null value has passed as a parameter, things will break :(

Additional context
Use best practice in flutter/dart null-safety checks (ex: widget?.itemId, kUserId ?? '--', etc)

Fix Timer

Fix it in such a way so we don't have time in negative after Hackathon

Getting Started With Flutter | Material Theme Based

Is your feature request related to a problem? Please describe.
We want to have a getting started project based on Material Design theming so new developers who will be joining the OneApp team could understand the basic layout and architecture of the application

Describe the solution you'd like
Create a simple flutter app which has commonly used Widgets (Button, Card, Container, Image, etc) and let the user change those values (Theme of the application). I will explain in detail when we meet in person.

Additional context
If you have any questions, feel free to ask Dhruvil or Paul.

Integrate App Testing

Is your feature request related to a problem? Please describe.
No way to automatically test the mobile application

Describe the solution you'd like
Add CI to the flutter application

Technical Implementation:
Write a couple of unit/integration tests and create a CI pipeline using Github Actions or Jenkins

Implement new scanning

It will change to

  1. Scan hacker's qr from dashboard (it will contain their email)
  2. Scan a untagged lanyard and use assign endpoint to link it to their account
    It will probably be something like "POST /assign {email, auth_email, token, target_qr}"

Flare Animations

We would like to use Flare (https://www.2dimensions.com/) animations in our app:

Animations for:

  • Login page
  • Navigation Drawer Background
  • Event countdown page
  • Scanner Animation
  • Loading Indicator
  • 3D Floor Map using stack images (maybe)

Filter Announcements by Topic

Describe the solution you'd like
Allow users to filter announcements by topic (ex: food, prizes, tech-talk, etc)

Additional context
Add material choice chips selection one row (make it horizontal scrollview like continuous) below timer banner so users can filter announcements by specific topic

events list

  • get events from day of endpoint
  • use location to get image from assets

double login

if you hit the login button multiple times it will push home onto the navigator multiple times.
when you log out it brings you to the home screen again XD. maybe telling the user things are loading might help this

Update README

Lots of old stuff on the README. Needs new screenshots and descriptions.

Send printer request for check in

Make scanner check if the event is check in and if it is send a request to the printer to print. Optionally the scan be decoupled by using change streams on the printer

Add "Coming Soon..." version of App

Want this coming soon... screen so that we can shut down certain pages of app before the hackathon starts. Will just be based on the dates of the hackathon which are inputted into the app manually. (Maybe change manual input of dates to API call).

Reward for saving plastic

We're thinking of having a setup where a hacker could scan a qr at the water fountain and it would give them credit for reusing a water bottle.

Describe the solution you'd like
We can reuse some components from the QR scanner for event scanning but it should be its own tab. For storing the data we will need a new lcs endpoint, but for now this can be mocked, or use the update endpoint with {$push: {water_score: <the QR code>}}

Additional context
We may not make a new endpoint, there is still some details to be discussed.

Let Design Team Get Involved

Describe the solution you'd like
Create a Material Theme in main.dart and let Design team handle how our app would look like. Probably, make a request to the S3 bucket and fetch app theme from there.

Describe alternatives you've considered
Give them a theme.dart file and let them play around and figure out what they want and then we could simply integrate it.

Additional context
I would suggest creating a Flutter Web Page / HackRU design app and let them try out different things and then get theme.dart whenever they're done.

Settings Page

Is your feature request related to a problem? Please describe.
Have a way to turn on/off push notifications for a particular firebase topic

Describe the solution you'd like
Settings Page

Technical Implementation:

  • Accessible from drawer
  • ListTile CheckBox for subscribing/unsubscribing to different firebase topics

Describe alternatives you've considered
Could have a separate page just dedicated for this

Additional context
More options will be added to Settings Page in the future.

Have something in Events Page that links to Settings Page.

error genorating qr codes for certain users

 ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 4132): The following assertion was thrown during paint():
I/flutter ( 4132): Failed assertion: boolean expression must not be null
I/flutter ( 4132): 
I/flutter ( 4132): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 4132): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 4132): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 4132):   https://github.com/flutter/flutter/issues/new?template=BUG.md
#0      QrPainter.paint (package:qr_flutter/src/qr_painter.dart:71:17)
I/flutter ( 4132): #1      RenderCustomPaint._paintWithPainter (package:flutter/src/rendering/custom_paint.dart:521:13)
I/flutter ( 4132): #2      RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:559:7)
I/flutter ( 4132): #3      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #4      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #5      RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #6      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #7      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #8      _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #9      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #10     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #11     _RenderLayoutBuilder.paint (package:flutter/src/widgets/layout_builder.dart:222:15)
I/flutter ( 4132): #12     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #13     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #14     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #15     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #16     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #17     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #18     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #19     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #20     _RenderListBody&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
I/flutter ( 4132): #21     RenderListBody.paint (package:flutter/src/rendering/list_body.dart:264:5)
I/flutter ( 4132): #22     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #23     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #24     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #25     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #26     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #27     _RenderSingleChildViewport.paint.paintContents (package:flutter/src/widgets/single_child_scroll_view.dart:522:17)
I/flutter ( 4132): #28     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:370:12)
I/flutter ( 4132): #29     PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:394:7)
I/flutter ( 4132): #30     _RenderSingleChildViewport.paint (package:flutter/src/widgets/single_child_scroll_view.dart:526:17)
I/flutter ( 4132): #31     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #32     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 4132): #33     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 4132): #34     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
I/flutter ( 4132): #35     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
I/flutter ( 4132): #36     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #37     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #38     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #39     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #40     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #41     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #42     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #43     RenderPointerListener.paint (package:flutter/src/rendering/proxy_box.dart:2629:11)
I/flutter ( 4132): #44     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #45     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #46     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #47     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #48     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #49     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #50     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #51     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #52     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #53     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #54     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 4132): #55     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 4132): #56     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
I/flutter ( 4132): #57     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
I/flutter ( 4132): #58     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #59     RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:562:11)
I/flutter ( 4132): #60     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #61     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #62     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #63     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #64     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 4132): #65     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 4132): #66     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
I/flutter ( 4132): #67     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
I/flutter ( 4132): #68     _RenderFlex&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
I/flutter ( 4132): #69     RenderFlex.paint (package:flutter/src/rendering/flex.dart:931:7)
I/flutter ( 4132): #70     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #71     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #72     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #73     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #74     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #75     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #76     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #77     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #78     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #79     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #80     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #81     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #82     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:504:11)
I/flutter ( 4132): #83     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #84     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #85     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #86     RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:562:11)
I/flutter ( 4132): #87     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #88     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #89     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #90     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:370:12)
I/flutter ( 4132): #91     RenderPhysicalShape.paint (package:flutter/src/rendering/proxy_box.dart:1830:17)
I/flutter ( 4132): #92     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #93     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #94     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #95     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #96     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #97     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #98     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #99     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #100    RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #101    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #102    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #103    RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 4132): #104    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #105    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #106    _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #107    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #108    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #109    _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #110    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #111    PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 4132): #112    PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 4132): #113    PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
I/flutter ( 4132): #114    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
I/flutter ( 4132): #115    _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #116    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #117    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #118    _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #119    PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:370:12)
I/flutter ( 4132): #120    PaintingContext.pushOpacity (package:flutter/src/rendering/object.dart:492:5)
I/flutter ( 4132): #121    RenderAnimatedOpacity.paint (package:flutter/src/rendering/proxy_box.dart:914:15)
I/flutter ( 4132): #122    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #123    PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 4132): #124    _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 4132): #125    RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2092:7)
I/flutter ( 4132): #126    PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 4132): #127    PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 4132): #128    PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:853:29)
I/flutter ( 4132): #129    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:331:19)
I/flutter ( 4132): #130    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
I/flutter ( 4132): #131    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268:5)
I/flutter ( 4132): #132    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988:15)
I/flutter ( 4132): #133    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928:9)
I/flutter ( 4132): #134    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:840:5)
I/flutter ( 4132): #138    _invoke (dart:ui/hooks.dart:209:10)
I/flutter ( 4132): #139    _drawFrame (dart:ui/hooks.dart:168:3)

Events Page Loading Indicator Keep Loading on Error

Describe the bug
Events Page Loading Indicator Keep Loading on Error

To Reproduce
Go to Events Tab

Expected behavior
Loading Indicator Keep Loading on Error or No-data-found

Fix/Suggestion
Display appropriate error message like we do on the Announcement Tab

QR scanner business logic

Describe the bug
QR Scanner was making 2 requests per scan to the DB (maybe fixed now but double check)

To Reproduce
Steps to reproduce the behavior:

  1. Open the scanner and scan a QR code
  2. Insert a print statement to ensure how many requests we're making per scan

Expected behavior
Should only make 1 request per QR code scan

Additional context
We might implement the BloC pattern for QR Scanner so do research on Flutter BloC and implement it so we could avoid this kind of bugs.

Push Notifications

Is your feature request related to a problem? Please describe.
Users need to be instantly notified when a new announcement has been made. (Especially important issue now that the hackathon is strictly online)

Describe the solution you'd like
Use Firebase to send push notifications whenever a new announcement is made.

Implementation:
Receive push notifications by subscribing to a particular topic

When the app is in the background or terminated, the push notification will show in the notification tray. However, if the app is in the foreground, no notification will show; in this case, use the local notifications in order to mimic the behavior of push notifications.

Describe alternatives you've considered

Additional context

QR User Info

Is your feature request related to a problem? Please describe.
Want to see user info upon scan

Describe the solution you'd like
Once a user is scanned, the scanner person should be able to see user registration status, and name

Timer showing negative time

Describe the bug
Currently, Timer shows negative time so it seems like it didn't stop at the end of the event so fix it.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the "Timer" tab on the home page
  2. See error

Expected behavior
Should stop at 00:00 / when hacking stops. Make this configurable via API or S3 bucket

Additional context
We are planning for using deadline value from the S3 bucket so we could easily fix it whenever needed.

caching events

should probably use a similar stream concept to try loading cache and then network. maybe it might be a good idea to keep an expiration in memory for the event cache and the announcement cache. for announcements lcs will only update every 10 minutes and the events probably wont update that much day of so 30 mins - 10 minute Time To Live should be fine too. @dhruvilp or @SeanTaylorLane let me know what you think about adding TTL to these caches.

Team Builder Integration

Is your feature request related to a problem? Please describe.
Currently, hackers have difficulty finding a team/teammate before or even at the HackRU.

Describe the solution you'd like
We want to provide a platform where they can communicate with each other and create a team. Now, we want to integrate Team Builder in OneApp. HackRU backend team has already created a backend for us so simply utilize it.

Additional context
Designs will be uploaded here soon. If you have any questions about backend services, ask the Backend team on Discord.

Improve Scanner Event Selector

Currently, the user has to open the expandable list, select an event, and then hit the SAVE button. So, make it just one-click selector.

loading indicator on Scanning Page

For scanner, consider pressing QRScanner button -> app asks for permission -> accept -> scanner is on -> don't scan -> press backward button -> loading indicator pops up one on other like 2-3. So can you take a look at it?

Theming

Add in themes to replace all the defaults and constants. This will make it easier to write new UI components and to make things consistent.

Logging Solution

Write or integrate a logger with multiple levels what will make debugging easier. Needs to give some standard info with each log (timestamp, severity, etc).

Disable logout on back button

When you're logged in, clicking the back button pops from the navigation stack. This causes you to go back to the login screen.

I think we should disable this if we can on time.

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.