Code Monkey home page Code Monkey logo

project-avocado's People

Contributors

abhibhaw avatar allcontributors[bot] avatar ankank30 avatar asutoshranjan avatar ayyysh04 avatar chinmay-kb avatar designrknight avatar dsc-nitr avatar haru-02 avatar hkp27299 avatar hustleaura avatar mixel2004 avatar nayakastha avatar pratik0197 avatar priya-81199 avatar priyanshu0405 avatar rajnis09 avatar shurtu-gal avatar srirampatibanda avatar thesmader 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

project-avocado's Issues

[url_launcher] When targeting API 30, canLaunch always returns false

Launch URL plugin isn't working!

To Reproduce
Upgrade the Android SDK Version to 30.
Expected behavior
A URL in the default browser should launch.

Tested on:

  • Device: One Plus 8
  • OS: Android 11.0

Additional context

  • Should work on clicking the privacy policy of the side navbar.
  • And the cards of FAQ, Notification, Dev Info etc.

Console Log

E/flutter (14738): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Could not launch https://project-avocado-8b3e1.firebaseapp.com E/flutter (14738): #0 _HomePageState._launchURL (package:scp/HomePage.dart:335:7) E/flutter (14738): <asynchronous suspension> E/flutter (14738): #1 _HomePageState.build.<anonymous closure>.<anonymous closure> (package:scp/HomePage.dart:128:27) E/flutter (14738): #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19) E/flutter (14738): #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38) E/flutter (14738): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24) E/flutter (14738): #5 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11) E/flutter (14738): #6 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5) E/flutter (14738): #7 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:259:7) E/flutter (14738): #8 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27) E/flutter (14738): #9 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:362:20) E/flutter (14738): #10 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22) E/flutter (14738): #11 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11) E/flutter (14738): #12 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7) E/flutter (14738): #13 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7) E/flutter (14738): #14 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7) E/flutter (14738): #15 _rootRunUnary (dart:async/zone.dart:1206:13) E/flutter (14738): #16 _CustomZone.runUnary (dart:async/zone.dart:1100:19) E/flutter (14738): #17 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7) E/flutter (14738): #18 _invoke1 (dart:ui/hooks.dart:265:10) E/flutter (14738): #19 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5) E/flutter (14738):

Flutter Doctor

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [Version 10.0.18363.1198], locale en-IN)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[!] Android Studio (version 4.1.0)
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code (version 1.51.1)
[√] Connected device (1 available)

! Doctor found issues in 1 category.

Revamp Design of Mentor's Detail Page

Describe the solution you'd like
The mentor's page has very basic design as of now. It should be improved to make it consistent with the overall theme of app in other sections

Trim Roll Number in the middleware.

While opening the app for the first time, and while searching for mentors, Roll number has to be entered. If an extra space is present after or before the roll number it's not accepted as a valid one.

Text widget clearing on widget rebuild

Text widget clearing on widget rebuild
The user-data screen in the login flow is the route with the issue. The text widget gets cleared of the data on pressing the keyboard hide button or the continue button.

To Reproduce
Steps to reproduce the behaviour:

  1. Go to user data screen after login
  2. Type something in the text fields
  3. Press the back button below the keyboard
  4. See the error of the text field getting cleared

Expected behaviour
The text field should retain the data even on the widget rebuild.

Smartphone (please complete the following information):

  • Nokia 6.1 Plus
  • Android 9.0
  • v1.0.0

App crashes when a new user taps the appointments widget for the first time

Describe the bug
The app crashes when a new user goes to the appointments page for the first time. A blue colour oval shaped loader appears before the app freezes.

To Reproduce
Steps to reproduce the behaviour:

  1. Clear you ap data and register.
  2. Click on 'Book your Appointment'

Expected behaviour
The app must not crash

Screenshots
WhatsApp Image 2020-12-01 at 11 55 28 AM

Smartphone (please complete the following information):

  • Can be reproduced on any smartphone.
  • Device: [Asus Zenfone max pro m1]
  • OS: [ Android 9.0]

Refactoring and Code Cleanup

Many variables names do not follow Dart's guidelines. Various instances of unused functions and imports. A lot of redundant code is present.

Update Time Table automatically with date

The Time Table of First year seems to be fixed to the Autumn Semester only.

For example, the timings of sections seem to be still in Autumn semester without the sequence being changed.

Can check the present date for whether it is in Spring or Autumn semester and render the timetable accordingly? :)

In app reviews

Description

In app reviews is a relatively new feature to Android where the user can rate our app from the app itself.

Problem

In app reviews should not have a call to action button. Also, the number of times in app reviews can be invoked is regulated by Play services, and can be called only 2-3 times in a year, so we need to call it judiciously

Package

This package can be used https://pub.dev/packages/in_app_review

Id card image upload

Is your feature request related to a problem? Please describe.
Many users books an appointment without actual intention.

Describe the solution you'd like
Making the booking process tougher.

Additional context
The users now need to upload their Id card image so that only verified and intentional user books an appointment.

Later one can even introduce ML kit to verify the users are genuine.

Search in FAQ crashes

If for some reason the internet is down while we are searching something in FAQ, app crashes instantly

Steps to reproduce the behaviour:

  1. Go to FAQ
  2. Let the initial list load
  3. Turn off your Mobile data/WiFi
  4. Try searching for something

If we are already into the FAQ section and then net connection is down, then we just exit the FAQ screen. If net is down in the homepage itself, i.e before tapping onto the FAQ card, the whole app crashes and exits

  • Device: Moto G5+
  • OS: PixelOS(Android 9.0 flavour)

Thing to consider here is that FAQ section has been implemented in Native and integrated into Flutter using Platform channel. Checking for internet availability before sending any request should squash the bug

Accommodate Timetable card for 2 types of timetable

Currently, the app only serves regular timetable, while leaving out the tutorial class timetable. The app should be modified to accommodate both the timetables and designed accordingly

On clicking the "Timetable" card, it splits into two, one for the normal timetable and the other for tutorial classes. Clicking the respective card leads to respective timetables.

Make main.dart de-cluttered

Present main.dart file is too complex. Having the functionality separated would make the code clean and easy to manage

Integrate attendance tracker

  • Users can log their absence(Subject, Date, User ID).
  • Replace ICS remeidal classes timetable with attendance tracker(Timetable card splits into two).

Automatic reset of slots booked weekly

Proposed solution

  1. A Firebase Cloud Functions based function to reset them weekly via an Admin Panel type configuration
  2. An admin app on mobile with similar features

Present Case
A maintainer needs to manually do it by editing the database

Add a Contact via WhatsApp feature

The message button in mentor's details has functionality of sending text messages. Text messages are usually ignored by most. How about adding a contact via WhatsApp feature? That way, the mentees can directly contact their mentors on whatsapp even if their number is not saved.

Test1

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behaviour:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behaviour
A clear and concise description of what you expected to happen.

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

Smartphone (please complete the following information):

  • Device: [e.g. Nokia 6.1 Plus]
  • OS: [e.g. Android 9.0]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Introduction of Chatbot for automated responses on subject syllabus

Is your feature request related to a problem? Please describe.
NITians feel difficult every time to go through the pdf and websites for checking out their syllabus especially the freshers.

Describe the solution you'd like
The chatbot will hence help the students figure out the syllabus just by entering the Subject code or subject name

Describe alternatives you've considered
I am also thinking of making the chatbot respond for common FAQs which are listed by the freshers. It might hence make the chatbot dynamic.

Force update app

Problem

Currently we have over a third of our users in v 2.2, which is considerably old, being used by the non freshers. This is because they are never notified about any update to the app. A simple notification will be discarded easily. Hence, we can have a solution where a popup comes up, forcing user to update the app.

Solution

We can use a mix of remote config and a native updater dialog- https://pub.dev/packages/native_updater

Not able to build debug apk

Describe the bug
The present code on building a debug apk causes an error

To Reproduce
Try to build a debug apk

Blank screen before exiting the app

When we hit the back button from the homepage, we expect to exit the app. Instead it shows a black screen first, then we need to hit the back button again to exit the app

Change App icon in notification

Description

Currently the icon shown in a notification is a grey circle, which is the fallback icon for Android
image

Fix

  • Generate notification icon assets using this nifty tool by Roman Nurik
  • Unzip the file and move each icon to their respective mipmap location
  • Add a <meta-data> inside <application> tag
<meta-data
   android:name="com.google.firebase.messaging.default_notification_icon"
   android:resource="@mipmap/icon_notification" />
  • Icon will be grayscale by default. A color can be applied to icon and the app name text in the notification by declaring another <meta-data>
       <meta-data
          android:name="com.google.firebase.messaging.default_notification_color"
          android:resource="@android:color/green" />

References

Go through this Firebase documentation to learn more about handling FCM Notifications.

Note- Reinstall the app after making the changes to see the effect

Make links intuitive

The links of website and intents that open phone for the call are not intuitive. A demarcation with a colour/text-style would enhance user-experience.

Refer the Developer Info, About ICS Page, Important Docs.

Dynamically Show the information about the members of ICS.

  • Presently, the information about the faculty members and other members of the ICS have been hardcoded. The information may change after one sometime(maybe the faculty members change or the students coordinating may change.) and it may be feasible if we show them dynamically.

  • I would like to propose fetching the information from firebase and rendering the same dynamically.

Refactoring routes

In the current app, while using routes, the app uses strings to mention the specific page and this can cause typos and ultimately errors while coding.

It is better to refactor the code such that we can just declare the string in that specific screen and tap into that constant from anywhere easily thereby reducing typos and errors.

Have the app show the user the network connectivity status

Describe the solution you'd like
Inspiration can be taken from YouTube which shows at the bottom a message when the user goes offline and/or comes back online.

This should be done modular so that it can cover all sections of the app

Configure notification channels

  • Academic and other notifications(Academics for everyone, Other notifications optional).
  • Add option to (un)subscribe to other notifications.
  • Store device tokens in Firestore

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.