anitab-org / bridge-in-tech-backend

BridgeInTech (BIT) is an application that allows organizations, mentors and mentees to actively collaborate through mentoring programs. This is the backend client of BridgeInTech.
https://bridgeintech-bit-heroku-psql.herokuapp.com/
GNU General Public License v3.0
24 stars 80 forks source link

Research : Integrate Notifications #250

Open decon-harsh opened 3 years ago

decon-harsh commented 3 years ago

Is your feature request related to a problem? Please describe.

We want to have push notifications enabled and A dedicated section for all the notifications in our web app.

Describe the solution you'd like

Give ideas on how will you do it. Explain your method, list the resources, provide gist or API and model structure if needed.

vivekshotti commented 3 years ago

Hey, I would like to work on this.

mtreacy002 commented 3 years ago

@Vivek-Hotti , can you please give us update on this?

jaivanti commented 3 years ago

Hi. Maybe a way to enable push notification features in web app is downloading a push-notification code from github and setting that up on your local pc. With that, your installing a web server and code some things down in codelab to enable push notifications on that specific platform. A detailed guide is given here from google developer resources: https://developers.google.com/web/fundamentals/codelabs/push-notifications#:~:text=To%20set%20this%20up%20in,every%20time%20the%20page%20reloads.

A better explanation is here too: https://www.sitepoint.com/how-to-use-push-notifications-for-web-applications/

Also, if your looking for a dedicated section for push notification, heres an amazing resource which is giving a pretty good idea using firebase on how to do it: https://www.itwonders-web.com/blog/push-notification-using-firebase-demo-tutorial https://www.codemag.com/article/1901031/Implementing-Push-Notifications-in-Progressive-Web-Apps-PWAs-Using-Firebase

The services helping for push notifications: https://geekflare.com/website-push-notification/

APIS Used for push notification: Notification API and push api https://www.thinktecture.com/en/pwa/push-api/ https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API

mtreacy002 commented 3 years ago

@jaivanti, thank you for your suggestion. However, for future reference if the initial contributor doesn't give their response within 3-4 days, you can request to be assigned to the issue first before making your suggestion πŸ˜‰ . For now, since this is the last day of OSH and @Vivek-Hotti has not given his suggestion, I'll remove him and assign you to this. Can you please put your suggestion inside a google doc and share the editable link here? Also, rather than just giving us the links to discussions on ways to use push notifications, it would be better to give a little explanation (below each link) on how the discussion in the link help/relevant to our project.

jaivanti commented 3 years ago

Thanks for assigning me this issue. I am sharing below the google doc link. Do let me know if it helps! https://docs.google.com/document/d/1PXGVNgxaiLQ_k0oEGRZUbBeJy1VXFVG3CnZKeUxbdUo/edit?usp=sharing

mtreacy002 commented 3 years ago

@jaivanti, can you please share the editable link of the file so that others can participate in the discussion by commenting inside the file? As you can see from the screenshot below it is not editable (top right Request edit access). Thanks beforehand.

Screen Shot 2021-05-01 at 6 25 45 am
jaivanti commented 3 years ago

@mtreacy002 I have change the viewer access to editor access. Can Check the doc linkπŸ‘

mtreacy002 commented 3 years ago

@naveen8801 , thanks. It's accessible now πŸ‘ . Can you please add a brief summary of pros/cons of the methods you pointed out along with a conclusion on your opinion on which method you would prefer out of the options you give?

jaivanti commented 3 years ago

Hi! @mtreacy002 I have added some points on conclusion/opinion of the method what i feel would be perfect to go for. I have not added the pros/cons section as the basic base of all methods is almost same(ie. using Push and Notification API to run javascript codes ) except that they have either used different backend services/ some different frameworks to make their push notification stuff work out. Do let me know if this helps!

mtreacy002 commented 3 years ago

@jaivanti , I'm a bit confused on how this could be implemented using our current architecture (Python at the backend and ReactJS at the frontend). It seems like the Best method to be applied as per your suggestion is by totally creating a new web application using vanilla javascript with the backend using NodeJs and TypeScript. Can you please tell us how our current application will make use of this web you suggested? @decon-harsh and @epicadk , can you please share your opinion on @jaivanti 's suggestion here?

jaivanti commented 3 years ago

Hi @mtreacy002 ... Actually I initially thought maybe we can use and make a javascript based push notification web app and then integrate it with our own backend (python), I didn't look much for react based things, as sometime debugging in react based web apps can get difficult especially dealing with user experience based issues. But then ig maybe having a react.js frontend already and create a new web app with JS and then integration process may become more complex. I will look for some more options related to react.js based push notifications. Thanks!

mtreacy002 commented 3 years ago

@jaivanti , look forward to your findings on Reactjs/Python combo option πŸ˜‰

jaivanti commented 3 years ago

Hi! @mtreacy002 I have added two methods which seemed relevant and uses python backend with react frontend for push notification stuff....Most of the methods on internet are using node.js/JavaScript. I am looking for more combo options of python/react and will keep updating the file. Hope this helps!

mtreacy002 commented 3 years ago

Hi @jaivanti , please provide your review on the extra resources of ReactJs/Python-Flask combo you recently added. An example of this is: For the resource here, it's worth ta take note the limitations of Twillio if we are heading this way (then you can list the limitations and their impact to our application). For Outreach/Research tasks the contributor is expected to give their insights on the methods/resources they're recommending, to support the resources they put forth in the task.

vj-codes commented 3 years ago

@jaivanti any updates ?