Giter Site home page Giter Site logo

imgiitroorkee / noticeboard-mobile-app Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 2.8 MB

The official revamped Noticeboard Mobile App of Indian Institute of Technology Roorkee

Home Page: https://channeli.in/noticeboard

Kotlin 0.09% Swift 0.28% Objective-C 0.03% Dart 98.67% Ruby 0.94%
flutter iitr noticeboard channeli mobile-app

noticeboard-mobile-app's Introduction

Noticeboard Mobile App


Download the app!

Click the below links to download.

About the app

The official digital noticeboard of IITR. Provides easy access to the Channel i notices, even from outside the campus or without intranet. You must have a Channel i account to use the app.

Features

  • View notices without having to open Channel i, just login and you are set!
  • Get notified about the latest notices.
  • A separate tab for the ever important placement and intern notices.
  • Use that search bar or filter for more fine results.
  • Bookmark notices on the go!
  • Now after many demands from the iPhone users, noticeboard finally comes on the app store!

Privacy Policy

Link to privacy policy: https://docs.google.com/document/d/1vsbooZi9PIiVIMaLts2wv0tODEJafCaRT41zsENYN3I/edit

Tech Stack

  • Flutter for app code.
  • Firebase for notifications.

Contributing

  • Fork the repository to your account.
  • Branch out to a_meaningful_branch_name.
  • Commit your changes.
  • Add your name to CONTRIBUTORS.md.
  • File a Pull request.
  • Get your pull request merged.

It's that simple!

Credits

noticeboard-mobile-app's People

Contributors

justary27 avatar kmrinal19 avatar sparsh1212 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

noticeboard-mobile-app's Issues

[Feature/Request] Unit testing in noticeboard app

Unit tests make it safer and easier to refactor the code by putting tests into place that make sure refactoring occurs without problems and disruption and it would be great if we can have that in noticeboard app

Back button causing unexpected behaviour

Expected Behavior

Nothing should happen while pressing back after logging out. Nothing should happen when pressing back on the login screen.

Current Behavior

The user is redirected to the home screen while pressing the back button after clicking on logout. Also, pressing the back button on the login page causes the app to enter splash screen forever.

Possible Solution

We need to check the pop option used in navigator routing, as if the stack pops unexpectedly, such errors may occur.

Steps to Reproduce

  1. Go to the Profile Section
  2. Click on Logout
  3. Press Back button

Possible Implementation

Try checking for possible edge cases in routing, and consider adding a conditional before popping off the navigation stack.

Add a queue which stores all the API calls when a device is offline and can be completed once device is back online

Shared Preferences queue for API calls

Is your feature request related to a problem? Please describe.
We show a snack bar currently whenever the device is offline. However, the user is still free to bookmark any open notice or any notices the user sees on the list. But this won't go through, and when the user is back online, and the notices are refetched, the notice will be removed from the bookmarks. To solve such a problem, I propose a queue of API calls the device makes offline. It should be cached and called once the device is back offline.

Describe the solution you'd like
Make a class for interacting with Shared preferences (using secure_storage) on the app, starting in the network interceptor. Once we know the app is online, start hitting all the cached API calls and deque them from the cache.

Fix the problem with displaying pdfs in web views

Currently there's an issue in display of PDFs in the onClick of "View this File" button. Sometimes, the pdfs are displayed, properly and sometimes not. Screenshots of working and not working case attached below.

[Suggested Alternative]
While we figure out the issue we can give a "Download this file" alternative using the open_file package.

API Service doesn't account for socket exceptions (shows generic errors always) leading to bad UX

Expected Behavior

The app shows network error's if any instead of a generic error anytime an exception is raised.

Actual Behavior

The app always shows generic error i.e Error Occoured which is not helpful , leading to bad UX.

Steps to Reproduce

Try refreshing or launching the app without internet connectivity

Suggested Way Ahead

I would like the implementation of a custom EMS (Error Management System) with a stream and an enum for different error types. Can use the network interceptor once implemented for connectivity status (#35 )

Notice state bug

If the notice is opened via a link in the noticeboard app it doesn’t update the status as read for that notice.

Fix Search

Add elastic search for searching notices.

Add required permissions in manifest for android

Detailed Description

The android version of the app has notification permissions off and isn't set as the default app to open deep links. This leads to bad UX. Add required permissions in the Manifest.xml file so that permissions for notifications are requested from the user on launch of the app and the app is set to open deep links by default.

Bumping up flutter sdk version

The following error is observed on changing sdk variable in pubsec.yaml

So, because noticeboard depends on both flutter_form_builder ^6.1.0+1 and flutter_localizations from sdk, version solving failed.```

Bookmark icon isn't highlighted even after bookmarking a notice

After pressing the bookmark button from the notice detail screen and navigating to the home screen, the notice is not shown as bookmarked.

Expected Behavior

After pressing the bookmark button from the notice detail screen and navigating to the home screen, the user should see the notice bookmarked.

Current Behavior

After pressing the bookmark button from the notice detail screen and navigating to the home screen, the notice is not shown as bookmarked.

Possible Solution

We may need to add a call to the bookMarkNotices stream from the notice detail screen so that as soon as the API call returns a 200 status code, the notice is marked as bookmarked.

Steps to Reproduce

  1. Enter a notice by tapping on it
  2. Press the bookmark from within the notice
  3. On navigating back to the home screen, the notice is still not bookmarked and reloading the app fixes the issue

Dockerize the app

Try to add a way to add the flutter version in the image name. (Hint: Read output of flutter --version)

Add docstrings

Long-term issue, will be closed when an acceptable level of docstrings have been added to the codebase.

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.